Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
vnf-onboarding
OSM Packages
Commits
bbdeb1d9
Commit
bbdeb1d9
authored
Nov 04, 2022
by
cubag
Browse files
Adds packages for secure helm EE and update helm EE robot tests
parent
9dc92826
Pipeline
#7965
failed with stage
in 6 minutes and 57 seconds
Changes
34
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
564 additions
and
0 deletions
+564
-0
updated_simple_ee_vnf/helm-charts/eechart/Chart.yaml
updated_simple_ee_vnf/helm-charts/eechart/Chart.yaml
+5
-0
updated_simple_ee_vnf/helm-charts/eechart/source/install.sh
updated_simple_ee_vnf/helm-charts/eechart/source/install.sh
+29
-0
updated_simple_ee_vnf/helm-charts/eechart/source/vnf_ee.py
updated_simple_ee_vnf/helm-charts/eechart/source/vnf_ee.py
+126
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/NOTES.txt
...ted_simple_ee_vnf/helm-charts/eechart/templates/NOTES.txt
+21
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/_helpers.tpl
..._simple_ee_vnf/helm-charts/eechart/templates/_helpers.tpl
+56
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/configmap.yaml
...imple_ee_vnf/helm-charts/eechart/templates/configmap.yaml
+6
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/ingress.yaml
..._simple_ee_vnf/helm-charts/eechart/templates/ingress.yaml
+41
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/service.yaml
..._simple_ee_vnf/helm-charts/eechart/templates/service.yaml
+16
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/serviceaccount.yaml
..._ee_vnf/helm-charts/eechart/templates/serviceaccount.yaml
+8
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/statefulset.yaml
...ple_ee_vnf/helm-charts/eechart/templates/statefulset.yaml
+67
-0
updated_simple_ee_vnf/helm-charts/eechart/templates/tests/test-connection.yaml
.../helm-charts/eechart/templates/tests/test-connection.yaml
+15
-0
updated_simple_ee_vnf/helm-charts/eechart/values.yaml
updated_simple_ee_vnf/helm-charts/eechart/values.yaml
+68
-0
updated_simple_ee_vnf/icons/osm.png
updated_simple_ee_vnf/icons/osm.png
+0
-0
updated_simple_ee_vnf/simple_ee_vnfd.yaml
updated_simple_ee_vnf/simple_ee_vnfd.yaml
+106
-0
No files found.
updated_simple_ee_vnf/helm-charts/eechart/Chart.yaml
0 → 100755
View file @
bbdeb1d9
apiVersion
:
v1
appVersion
:
"
1.0"
description
:
OSM EE helm chart
name
:
eechart
version
:
0.1.0
updated_simple_ee_vnf/helm-charts/eechart/source/install.sh
0 → 100755
View file @
bbdeb1d9
#!/bin/bash
##
# Copyright 2015 Telefonica Investigacion y Desarrollo, S.A.U.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
##
# This script is intended for launching RO from a docker container.
# It waits for mysql server ready, normally running on a separate container, ...
# then it checks if database is present and creates it if needed.
# Finally it launches RO server.
echo
"Sample install.sh from source dir"
# Install libraries
#apt-get install -y ...
# Install library to execute command remotely by ssh
python3
-m
pip
install
asyncssh
updated_simple_ee_vnf/helm-charts/eechart/source/vnf_ee.py
0 → 100755
View file @
bbdeb1d9
##
# Copyright 2019 Telefonica Investigacion y Desarrollo, S.A.U.
# This file is part of OSM
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# For those usages not covered by the Apache License, Version 2.0 please
# contact with: nfvlabs@tid.es
##
import
asyncio
import
logging
import
asyncssh
from
osm_ee.exceptions
import
VnfException
class
VnfEE
:
def
__init__
(
self
,
config_params
):
self
.
logger
=
logging
.
getLogger
(
'osm_ee.vnf'
)
self
.
config_params
=
config_params
async
def
config
(
self
,
id
,
params
):
self
.
logger
.
debug
(
"Execute action config params: {}"
.
format
(
params
))
# Config action is special, params are merged with previous config calls
self
.
config_params
.
update
(
params
)
required_params
=
[
"ssh-hostname"
]
self
.
_check_required_params
(
self
.
config_params
,
required_params
)
yield
"OK"
,
"Configured"
async
def
touch
(
self
,
id
,
params
):
self
.
logger
.
debug
(
"Execute action touch params: '{}', type: {}"
.
format
(
params
,
type
(
params
)))
try
:
self
.
_check_required_params
(
params
,
[
"file-path"
])
# Check if filename is a single file or a list
file_list
=
params
[
"file-path"
]
if
isinstance
(
params
[
"file-path"
],
list
)
else
[
params
[
"file-path"
]]
file_list_length
=
len
(
file_list
)
async
with
asyncssh
.
connect
(
self
.
config_params
[
"ssh-hostname"
],
password
=
self
.
config_params
.
get
(
"ssh-password"
),
username
=
self
.
config_params
.
get
(
"ssh-username"
),
known_hosts
=
None
)
as
conn
:
for
index
,
file_name
in
enumerate
(
file_list
):
command
=
"touch {}"
.
format
(
file_name
)
self
.
logger
.
debug
(
"Execute remote command: '{}'"
.
format
(
command
))
result
=
await
conn
.
run
(
command
)
self
.
logger
.
debug
(
"Create command result: {}"
.
format
(
result
))
if
result
.
exit_status
!=
0
:
detailed_status
=
result
.
stderr
# TODO - ok but with some errors
else
:
detailed_status
=
"Created file {}"
.
format
(
file_name
)
if
index
+
1
!=
file_list_length
:
yield
"PROCESSING"
,
detailed_status
else
:
yield
"OK"
,
detailed_status
except
Exception
as
e
:
self
.
logger
.
error
(
"Error creating remote file: {}"
.
format
(
repr
(
e
)))
yield
"ERROR"
,
str
(
e
)
async
def
mkdir
(
self
,
id
,
params
):
self
.
logger
.
debug
(
"Execute action mkdir params: '{}', type: {}"
.
format
(
params
,
type
(
params
)))
try
:
self
.
_check_required_params
(
params
,
[
"foldername"
])
# Check if filename is a single file or a list
folder_list
=
params
[
"foldername"
]
if
isinstance
(
params
[
"foldername"
],
list
)
else
[
params
[
"foldername"
]]
folder_list_length
=
len
(
folder_list
)
async
with
asyncssh
.
connect
(
self
.
config_params
[
"ssh-hostname"
],
password
=
self
.
config_params
.
get
(
"ssh-password"
),
username
=
self
.
config_params
.
get
(
"ssh-username"
),
known_hosts
=
None
)
as
conn
:
for
index
,
foldername
in
enumerate
(
folder_list
):
command
=
"mkdir {}"
.
format
(
foldername
)
self
.
logger
.
debug
(
"Execute remote command: '{}'"
.
format
(
command
))
result
=
await
conn
.
run
(
command
)
self
.
logger
.
debug
(
"Create command result: {}"
.
format
(
result
))
if
result
.
exit_status
!=
0
:
detailed_status
=
result
.
stderr
# TODO - ok but with some errors
else
:
detailed_status
=
"Created folder {}"
.
format
(
foldername
)
if
index
+
1
!=
folder_list_length
:
yield
"PROCESSING"
,
detailed_status
else
:
yield
"OK"
,
detailed_status
except
Exception
as
e
:
self
.
logger
.
error
(
"Error creating remote folder: {}"
.
format
(
repr
(
e
)))
yield
"ERROR"
,
str
(
e
)
async
def
sleep
(
self
,
id
,
params
):
self
.
logger
.
debug
(
"Execute action sleep, params: {}"
.
format
(
params
))
for
i
in
range
(
3
):
await
asyncio
.
sleep
(
5
)
self
.
logger
.
debug
(
"Temporal result return, params: {}"
.
format
(
params
))
yield
"PROCESSING"
,
f
"Processing
{
i
}
action id
{
id
}
"
yield
"OK"
,
f
"Processed action id
{
id
}
"
@
staticmethod
def
_check_required_params
(
params
,
required_params
):
for
required_param
in
required_params
:
if
required_param
not
in
params
:
raise
VnfException
(
"Missing required param: {}"
.
format
(
required_param
))
updated_simple_ee_vnf/helm-charts/eechart/templates/NOTES.txt
0 → 100755
View file @
bbdeb1d9
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range $host := .Values.ingress.hosts }}
{{- range .paths }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
{{- end }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "eechart.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "eechart.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "eechart.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "eechart.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl port-forward $POD_NAME 8080:80
{{- end }}
updated_simple_ee_vnf/helm-charts/eechart/templates/_helpers.tpl
0 → 100755
View file @
bbdeb1d9
{{
/*
vim
:
set
filetype
=
mustache
:
*/
}}
{
{
/*
Expand
the
name
of
the
chart
.
*/
}
}
{{- define "eechart.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Create
a
default
fully
qualified
app
name
.
We
truncate
at
63
chars
because
some
Kubernetes
name
fields
are
limited
to
this
(
by
the
DNS
naming
spec
).
If
release
name
contains
chart
name
it
will
be
used
as
a
full
name
.
*/
}
}
{{- define "eechart.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{
{
/*
Create
chart
name
and
version
as
used
by
the
chart
label
.
*/
}
}
{{- define "eechart.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{
{
/*
Common
labels
*/
}
}
{{- define "eechart.labels" -}}
app.kubernetes.io/name: {{ include "eechart.name" . }}
helm.sh/chart: {{ include "eechart.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{
{
/*
Create
the
name
of
the
service
account
to
use
*/
}
}
{{- define "eechart.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "eechart.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
updated_simple_ee_vnf/helm-charts/eechart/templates/configmap.yaml
0 → 100755
View file @
bbdeb1d9
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
{{
include "eechart.fullname" .
}}
data
:
{{
(.Files.Glob "source/*").AsConfig | indent 2
}}
updated_simple_ee_vnf/helm-charts/eechart/templates/ingress.yaml
0 → 100755
View file @
bbdeb1d9
{{
- if .Values.ingress.enabled -
}}
{{
- $fullName
:
= include "eechart.fullname" . -
}}
{{
- $svcPort
:
= .Values.service.port -
}}
{{
- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -
}}
apiVersion
:
networking.k8s.io/v1beta1
{{
- else -
}}
apiVersion
:
extensions/v1beta1
{{
- end
}}
kind
:
Ingress
metadata
:
name
:
{{
$fullName
}}
labels
:
{{
include "eechart.labels" . | indent 4
}}
{{
- with .Values.ingress.annotations
}}
annotations
:
{{
- toYaml . | nindent 4
}}
{{
- end
}}
spec
:
{{
- if .Values.ingress.tls
}}
tls
:
{{
- range .Values.ingress.tls
}}
-
hosts
:
{{
- range .hosts
}}
-
{{
. | quote
}}
{{
- end
}}
secretName
:
{{
.secretName
}}
{{
- end
}}
{{
- end
}}
rules
:
{{
- range .Values.ingress.hosts
}}
-
host
:
{{
.host | quote
}}
http
:
paths
:
{{
- range .paths
}}
-
path
:
{{
.
}}
backend
:
serviceName
:
{{
$fullName
}}
servicePort
:
{{
$svcPort
}}
{{
- end
}}
{{
- end
}}
{{
- end
}}
updated_simple_ee_vnf/helm-charts/eechart/templates/service.yaml
0 → 100755
View file @
bbdeb1d9
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
{{
include "eechart.fullname" .
}}
labels
:
{{
include "eechart.labels" . | indent 4
}}
spec
:
type
:
{{
.Values.service.type
}}
ports
:
-
port
:
{{
.Values.service.port
}}
targetPort
:
grpc
protocol
:
TCP
name
:
grpc
selector
:
app.kubernetes.io/name
:
{{
include "eechart.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
updated_simple_ee_vnf/helm-charts/eechart/templates/serviceaccount.yaml
0 → 100755
View file @
bbdeb1d9
{{
- if .Values.serviceAccount.create -
}}
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
name
:
{{
template "eechart.serviceAccountName" .
}}
labels
:
{{
include "eechart.labels" . | indent 4
}}
{{
- end -
}}
updated_simple_ee_vnf/helm-charts/eechart/templates/statefulset.yaml
0 → 100755
View file @
bbdeb1d9
apiVersion
:
apps/v1
kind
:
StatefulSet
metadata
:
name
:
{{
include "eechart.fullname" .
}}
labels
:
{{
include "eechart.labels" . | indent 4
}}
spec
:
serviceName
:
{{
include "eechart.fullname" .
}}
replicas
:
{{
.Values.replicaCount
}}
selector
:
matchLabels
:
app.kubernetes.io/name
:
{{
include "eechart.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
template
:
metadata
:
annotations
:
checksum/config
:
{{
include (print $.Template.BasePath "/configmap.yaml") . | sha256sum
}}
labels
:
app.kubernetes.io/name
:
{{
include "eechart.name" .
}}
app.kubernetes.io/instance
:
{{
.Release.Name
}}
spec
:
imagePullSecrets
:
-
name
:
regcred
serviceAccountName
:
{{
template "eechart.serviceAccountName" .
}}
securityContext
:
{{
- toYaml .Values.podSecurityContext | nindent 8
}}
containers
:
-
name
:
{{
.Chart.Name
}}
securityContext
:
{{
- toYaml .Values.securityContext | nindent 12
}}
image
:
"
{{
.Values.image.repository
}}:{{
.Values.image.tag
}}"
imagePullPolicy
:
{{
.Values.image.pullPolicy
}}
ports
:
-
name
:
grpc
containerPort
:
50051
protocol
:
TCP
resources
:
{{
- toYaml .Values.resources | nindent 12
}}
volumeMounts
:
-
name
:
osm-ee
mountPath
:
/app/storage
-
name
:
osm-ee-source
mountPath
:
/app/EE/osm_ee/vnf
volumes
:
-
name
:
osm-ee-source
configMap
:
name
:
{{
include "eechart.fullname" .
}}
volumeClaimTemplates
:
-
metadata
:
name
:
osm-ee
spec
:
accessModes
:
[
"
ReadWriteOnce"
]
resources
:
requests
:
storage
:
1Gi
{{
- with .Values.nodeSelector
}}
nodeSelector
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.affinity
}}
affinity
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
{{
- with .Values.tolerations
}}
tolerations
:
{{
- toYaml . | nindent 8
}}
{{
- end
}}
updated_simple_ee_vnf/helm-charts/eechart/templates/tests/test-connection.yaml
0 → 100755
View file @
bbdeb1d9
apiVersion
:
v1
kind
:
Pod
metadata
:
name
:
"
{{
include
"eechart.fullname" . }}-test-connection"
labels
:
{{
include "eechart.labels" . | indent 4
}}
annotations
:
"
helm.sh/hook"
:
test-success
spec
:
containers
:
-
name
:
wget
image
:
busybox
command
:
[
'
wget'
]
args
:
[
'
{{
include
"eechart.fullname"
.
}}:{{
.Values.service.port
}}'
]
restartPolicy
:
Never
updated_simple_ee_vnf/helm-charts/eechart/values.yaml
0 → 100755
View file @
bbdeb1d9
# Default values for eechart.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount
:
1
image
:
repository
:
illoret/grpcee
tag
:
latest
pullPolicy
:
IfNotPresent
imagePullSecrets
:
[]
nameOverride
:
"
"
fullnameOverride
:
"
"
serviceAccount
:
# Specifies whether a service account should be created
create
:
false
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name
:
podSecurityContext
:
{}
# fsGroup: 2000
securityContext
:
{}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service
:
type
:
ClusterIP
port
:
50050
ingress
:
enabled
:
false
annotations
:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts
:
-
host
:
chart-example.local
paths
:
[]
tls
:
[]
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources
:
{}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector
:
{}
tolerations
:
[]
affinity
:
{}
updated_simple_ee_vnf/icons/osm.png
0 → 100644
View file @
bbdeb1d9
54.6 KB
updated_simple_ee_vnf/simple_ee_vnfd.yaml
0 → 100644
View file @
bbdeb1d9
vnfd
:
description
:
A VNF consisting of 1 VDU with cloud-init, and a monitoring ee
df
:
-
id
:
default-df
instantiation-level
:
-
id
:
default-instantiation-level
vdu-level
:
-
number-of-instances
:
1
vdu-id
:
mgmtVM
vdu-profile
:
-
id
:
mgmtVM
min-number-of-instances
:
1
lcm-operations-configuration
:
operate-vnf-op-config
:
day1-2
:
-
config-access
:
ssh-access
:
default-user
:
ubuntu
required
:
true
config-primitive
:
-
execution-environment-primitive
:
touch
execution-environment-ref
:
monitor
name
:
touch
parameter
:
-
data-type
:
STRING
default-value
:
/home/ubuntu/touched
name
:
file-path
-
execution-environment-primitive
:
mkdir
execution-environment-ref
:
monitor
name
:
mkdir
parameter
:
-
data-type
:
STRING
default-value
:
/home/ubuntu/newfolder
name
:
foldername
-
execution-environment-primitive
:
sleep
execution-environment-ref
:
monitor
name
:
sleep
execution-environment-list
:
-
external-connection-point-ref
:
vnf-mgmt-ext
helm-chart
:
eechart
id
:
monitor
id
:
simple_ee-vnf
initial-config-primitive
:
-
execution-environment-ref
:
monitor
name
:
config
parameter
:
-
name
:
ssh-hostname
value
:
<rw_mgmt_ip>
-
name
:
ssh-username
value
:
ubuntu
-
name
:
ssh-password
value
:
osm2020
seq
:
1
-
execution-environment-ref
:
monitor
name
:
touch
parameter
:
-
name
:
file-path
value
:
/home/ubuntu/first-touch
seq
:
2
ext-cpd
:
-
id
:
vnf-mgmt-ext
int-cpd
:
cpd
:
mgmtVM-eth0-int
vdu-id
:
mgmtVM
id
:
simple_ee-vnf
mgmt-cp
:
vnf-mgmt-ext
product-name
:
simple_ee-vnf
sw-image-desc
:
-
id
:
ubuntu18.04
image
:
ubuntu18.04
name
:
ubuntu18.04
vdu
:
-
cloud-init-file
:
cloud-config.txt
id
:
mgmtVM
int-cpd
:
-
id
:
mgmtVM-eth0-int
virtual-network-interface-requirement
:
-
name
:
mgmtVM-eth0
position
:
1
virtual-interface
:
type
:
PARAVIRT
name
:
mgmtVM
sw-image-desc
:
ubuntu18.04
virtual-compute-desc
:
mgmtVM-compute
virtual-storage-desc
:
-
mgmtVM-storage
version
:
1.0
virtual-compute-desc
:
-
id
:
mgmtVM-compute
virtual-cpu
:
num-virtual-cpu
:
1
pinning
:
policy
:
static
thread-policy
:
PREFER
virtual-memory
:
mempage-size
:
LARGE
numa-enabled
:
true
numa-node-policy
:
mem-policy
:
STRICT
node
:
-
id
:
1
node-cnt
:
1
size
:
1.0
virtual-storage-desc
:
-
id
:
mgmtVM-storage
size-of-storage
:
20
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment