CDS can be deployed to minikube .
Rough outline of steps.
...
clone OOM repo (git clone "https://gerrit.onap.org/r/oom")
...
Code Block |
---|
cds-blueprints-processor:
dmaapEnabled: false
global:
nodePortPrefix: 302
nodePortPrefixExt: 304
repository: nexus3.onap.org:10001
readinessRepository: oomk8s
readinessImage: readiness-check:2.0.2
loggingRepository: docker.elastic.co
loggingImage: beats/filebeat:5.5.0
persistence:
enabled: true
storageClass: standard
##mountPath: /dockerdata-nfs |
...
Code Block |
---|
mariadb-galera:
config:
userName: sdnctl
userPassword: sdnctl
mariadbRootPassword: sdnctl
mysqlDatabase: sdnctl
nameOverride: cds-db
service:
name: cds-db
portName: cds-db
replicaCount: 1
persistence:
enabled: true
storageClass: standard
mountSubPath: cds/data |
...
Code Block |
---|
kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods --resource=statefulset --resource=deployment
kubectl create rolebinding pod-reader-binding --role pod-reader --serviceaccount=default:default --namespace=default |
just like all other ONAP components.
Install Kubernetes, kubectl and Helm clients according to instructions here.
Storage Class
In minikube mariadb-galera has problems to deploy because of persistence problems:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
2019-08-23 6:26:17 140342013503744 [Note] mysqld (mysqld 10.1.24-MariaDB) starting as process 1 ...
2019-08-23 6:26:17 140342013503744 [Note] WSREP: Read nil XID from storage engines, skipping position init
2019-08-23 6:26:17 140342013503744 [Note] WSREP: wsrep_load(): loading provider library '/usr/lib64/galera/libgalera_smm.so'
2019-08-23 6:26:17 140342013503744 [Note] WSREP: wsrep_load(): Galera 25.3.20(r3703) by Codership Oy <info@codership.com> loaded successfully.
2019-08-23 6:26:17 140342013503744 [Note] WSREP: CRC-32C: using hardware acceleration.
2019-08-23 6:26:17 140342013503744 [Note] WSREP: Found saved state: 00000000-0000-0000-0000-000000000000:-1, safe_to_bootsrap: 1
2019-08-23 6:26:17 140342013503744 [ERROR] WSREP: Requested size 134219048 for '/var/lib/mysql//galera.cache' exceeds available storage space 0: 28 (No space left on device)
at galerautils/src/gu_fdesc.cpp:FileDescriptor():101
2019-08-23 6:26:17 140342013503744 [ERROR] WSREP: wsrep::init() failed: 7, must shutdown
2019-08-23 6:26:17 140342013503744 [ERROR] Aborting |
You can check which storageclass you'll need by using "kubectl get sc":
When deploying cds or other ONAP components needing mariadb-galera, override "global.persistence.storageClass" with correct storage class.
Deploy CDS
Run Helm commands on oom/kubernetes directory after charts are packages according to instructions here. For Frankfurt release `--set global.masterPassword=random` is required in the following commands.
Code Block |
---|
helm upgrade --install dev ./onap --namespace onap \
--set cds.enabled=true \
--set mariadb-galera.enabled=true \
--set cds.cds-blueprints-processor.dmaapEnabled=false \
--set global.persistence.storageClass=standard |
Deploy CDS with more overrides e.g. different image versions
Code Block |
---|
helm upgrade --install dev ./onap --namespace onap \
--set cds.enabled=true \
--set mariadb-galera.enabled=true \
--set cds.cds-blueprints-processor.dmaapEnabled=false \
--set global.persistence.storageClass=standard \
--set cds.cds-blueprints-processor.image=onap/ccsdk-blueprintsprocessor:0.7.0-STAGING-latest \
--set cds.cds-command-executor.image=onap/ccsdk-commandexecutor:0.7.0-STAGING-latest \
--set cds.cds-ui.image=onap/ccsdk-cds-ui-server:0.7.0-STAGING-latest \
--set global.pullPolicy=IfNotPresent |
Normally Helm charts (e.g. image versions) should be kept completely in sync with related software version, but for CDS this has not been the case. This also leads to problems that CDS may not work in the Kubernetes (where is should be run). Developers, please test CDS daily in the Kubernetes and update OOM git repo for Helm charts changes.
Result
As end result you should see CDS pods running. Note that "cds-sdc-listener" POD will never get up with this setup because it's dependent on SDC.
Code Block |
---|
$ kubectl -n onap get pod
NAME READY STATUS RESTARTS AGE
dev-cds-blueprints-processor-5f9866676c-292j2 1/1 Running 0 23m
dev-cds-command-executor-5f58579c64-hswxj 1/1 Running 0 23m
dev-cds-db-0 1/1 Running 0 23m
dev-cds-sdc-listener-84c59d9dbd-89lmf 0/1 Init:0/1 2 23m
dev-cds-ui-5b669bf7dc-kjzzh 1/1 Running 0 23m
|
Port forwarding for external access to CDS-UI
Ports can be forwarded e.g. to access the CDS-UI from another machine. To forward the CDS-UI Port use the following command.
Code Block |
---|
kubectl port-forward dev-cds-ui-5b669bf7dc-kjzzh -n onap --address 0.0.0.0 3000:3000 |
Take care to provide the right pod name and port number. The port of CDS-UI can be displayed by:
Code Block |
---|
kubectl -n onap get pod dev-cds-ui-5b669bf7dc-kjzzh --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}' |
Afterwards the CDS-UI should be accessable externally.
...
Code Block |
---|
helm upgrade -i minikubecds . -f /location/to/cds.overrides |
...