0% found this document useful (0 votes)
10 views

Dc Micro Service Invest Notes

The document outlines the process for building and deploying the Distributed Cloud application using Docker and Helm. It includes steps for building required packages, container images, disabling service management, and configuring the platform setup. Additionally, it provides commands for managing the deployment and accessing service endpoints in the OpenStack environment.

Uploaded by

Enzo Candotti
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Dc Micro Service Invest Notes

The document outlines the process for building and deploying the Distributed Cloud application using Docker and Helm. It includes steps for building required packages, container images, disabling service management, and configuring the platform setup. Additionally, it provides commands for managing the deployment and accessing service endpoints in the OpenStack environment.

Uploaded by

Enzo Candotti
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 9

#

# DC Services Containerization
#

https://review.opendev.org/c/openstack/project-config/+/911946

# Build Required Packages


build-pkgs --parallel 10 -p cgcs-patch,cgts-client,distributedcloud-
client,distributedcloud,fm-api,fm-common,fm-rest-api,nfv,nova-api-proxy,pci-irq-
affinity-agent,python-fmclient,python3-networking-avs,python3-
oidcauthtools,python3-vswitchclient,software-client,software,sysinv,tsconfig

# Build Distributed Cloud application bundle


build-pkgs -c -p python3-k8sapp-distributed-cloud,stx-distributed-cloud-helm

# Build wheels
$MY_REPO/build-tools/build-wheels/build-wheel-tarball.sh --keep-image --cache

# Container build
# https://confluence.wrs.com/display/CE/How+to+build+docker+images

BUILD_OS=debian
BUILD_STREAM=stable
BRANCH=master
BASE_IMAGE=starlingx/stx-${BUILD_OS}:${BRANCH}-${BUILD_STREAM}-latest
WHEELS=$MY_WORKSPACE/std/build-wheels-debian-stable/stx-debian-stable-wheels.tar
DOCKER_USER=${USER}
DOCKER_REGISTRY=admin-2.cumulus.wrs.com:30093

# Pull base image


docker pull $BASE_IMAGE

# Login to the registry for pushing the container image


docker login -u ${DOCKER_USER} ${DOCKER_REGISTRY}

$MY_REPO/build-tools/build-docker-images/build-stx-images.sh \
--os ${BUILD_OS} \
--stream ${BUILD_STREAM} \
--base ${BASE_IMAGE} \
--wheels ${WHEELS} \
--user ${DOCKER_USER} \
--registry ${DOCKER_REGISTRY} \
--no-pull-base --cache \
--push --latest \
--only "stx-distributed-cloud"

#
# Disable Service Management
#
sudo sm-unmanage service dcmanager-manager
sudo sm-unmanage service dcmanager-api
sudo sm-unmanage service dcmanager-audit
sudo sm-unmanage service dcmanager-audit-worker
sudo sm-unmanage service dcmanager-orchestrator
sudo sm-unmanage service dcmanager-state

sudo sm-unmanage service dcorch-engine


sudo sm-unmanage service dcorch-sysinv-api-proxy
sudo sm-unmanage service dcorch-patch-api-proxy
sudo sm-unmanage service dcorch-identity-api-proxy

sudo sm-unmanage service dcdbsync-api

sudo pkill -f ^".*/bin/dcmanager.*"


sudo pkill -f ^".*/bin/dcorch.*"
sudo pkill -f ^".*/bin/dcdbsync.*"

#
# Platform Setup
#

source /etc/platform/openrc
system host-label-assign controller-0 starlingx.io/distributed-cloud=enabled
system host-label-assign controller-1 starlingx.io/distributed-cloud=enabled

#
# Distributed Cloud Application Deployment (development)
#

system application-upload /usr/local/share/applications/helm/distributed-cloud-


24.03-0.tgz

DOCKER_IMAGE=registry.local:9001/docker.io/starlingx/stx-distributed-cloud:master-
debian-stable-latest

cat<<EOF>dcmanager.yaml
images:
tags:
dcmanager: ${DOCKER_IMAGE}
ks_user: ${DOCKER_IMAGE}
ks_service: ${DOCKER_IMAGE}
ks_endpoints: ${DOCKER_IMAGE}
dcmanager_db_sync: ${DOCKER_IMAGE}
db_init: ${DOCKER_IMAGE}
db_drop: ${DOCKER_IMAGE}
pullPolicy: Always
EOF

cat<<EOF>dcorch.yaml
images:
tags:
dcorch: ${DOCKER_IMAGE}
ks_user: ${DOCKER_IMAGE}
ks_service: ${DOCKER_IMAGE}
ks_endpoints: ${DOCKER_IMAGE}
dcorch_db_sync: ${DOCKER_IMAGE}
db_init: ${DOCKER_IMAGE}
db_drop: ${DOCKER_IMAGE}
pullPolicy: Always
EOF

system helm-override-update distributed-cloud dcmanager distributed-cloud --values


dcmanager.yaml
system helm-override-update distributed-cloud dcorch distributed-cloud --values
dcorch.yaml

system helm-override-show distributed-cloud dcmanager distributed-cloud


system helm-override-show distributed-cloud dcorch distributed-cloud

system application-apply distributed-cloud


system application-show distributed-cloud

system application-remove distributed-cloud


system application-delete distributed-cloud

#
# Distributed Cloud Helm Deployment (manual)
#
DOCKER_REGISTRY=admin-2.cumulus.wrs.com:30093
DOCKER_USER=mpeters
DOCKER_IMAGE=${DOCKER_REGISTRY}/${DOCKER_USER}/stx-distributed-cloud:dev-debian-
stable-latest

ADMIN_KS_PASSWORD=$(keyring get CGCS admin)


RABBITMQ_PASSWORD=$(keyring get amqp rabbit)
DCMANAGER_DB_PASSWORD=$(keyring get dcmanager database)
DCMANAGER_KS_PASSWORD=$(keyring get dcmanager services)
DCORCH_DB_PASSWORD=$(keyring get dcorch database)
DCORCH_KS_PASSWORD=$(keyring get dcorch services)

cat<<EOF>dcmanager.yaml
images:
tags:
dcmanager: ${DOCKER_IMAGE}
ks_user: ${DOCKER_IMAGE}
ks_service: ${DOCKER_IMAGE}
ks_endpoints: ${DOCKER_IMAGE}
dcmanager_db_sync: ${DOCKER_IMAGE}
db_init: ${DOCKER_IMAGE}
db_drop: ${DOCKER_IMAGE}
pullPolicy: Always
pod:
image_pull_secrets:
default:
- name: default-registry-key
tolerations:
dcmanager:
enabled: true
endpoints:
oslo_db:
auth:
admin:
username: admin-dcmanager
password: ${DCMANAGER_DB_PASSWORD}
dcmanager:
username: admin-dcmanager
password: ${DCMANAGER_DB_PASSWORD}
oslo_messaging:
auth:
admin:
username: guest
password: ${RABBITMQ_PASSWORD}
dcmanager:
username: guest
password: ${RABBITMQ_PASSWORD}
identity:
auth:
admin:
username: admin
password: ${ADMIN_KS_PASSWORD}
dcmanager:
username: dcmanager
password: ${DCMANAGER_KS_PASSWORD}
EOF

helm install dcmanager dcmanager-0.1.0.tgz --namespace distributed-cloud --values


dcmanager.yaml

kubectl -n distributed-cloud get secret dcmanager-etc --


output="jsonpath={.data.dcmanager\.conf}" | base64 --decode
kubectl -n distributed-cloud get secret dcmanager-rabbitmq-admin --
output="jsonpath={.data.RABBITMQ_CONNECTION}" | base64 --decode
kubectl -n distributed-cloud get secret dcmanager-db-admin --
output="jsonpath={.data.DB_CONNECTION}" | base64 --decode
kubectl -n distributed-cloud get secret dcmanager-keystone-admin --
output="jsonpath={.data.OS_PASSWORD}" | base64 --decode

kubectl -n distributed-cloud logs -l application=dcmanager,component=api


kubectl -n distributed-cloud logs -l application=dcmanager,component=manager
kubectl -n distributed-cloud logs -l application=dcmanager,component=audit
kubectl -n distributed-cloud logs -l application=dcmanager,component=state
kubectl -n distributed-cloud logs -l application=dcmanager,component=orchestrator

helm status --show-resources dcmanager --namespace distributed-cloud

# remove helm chart and delete resources


helm delete dcmanager --namespace distributed-cloud

#
# Distributed Cloud Docker Deployment (manual)
#
sudo chmod a+r /etc/dcmanager/dcmanager.conf
sudo chmod a+r /etc/dcorch/dcorch.conf
sudo chmod a+r /etc/dcdbsync/dcdbsync.conf

# build output
docker image save $USER/stx-distributed-cloud:dev-debian-stable-build -o
/localdisk/loadbuild/$USER/stx-distributed-cloud.tar
# build input
sudo docker image load -i stx-distributed-cloud.tar

DEVIMAGE=admin-2.cumulus.wrs.com:30093/mpeters/stx-distributed-cloud:dev-debian-
stable-latest
# DEVIMAGE=registry.local:9001/mpeters/stx-distributed-cloud:dev-debian-stable-
latest # local registry
# DEVIMAGE=mpeters/stx-distributed-cloud:dev-debian-stable-build # local import

sudo docker pull $DEVIMAGE

sudo docker run --name dcmanager-manager -it --rm --network host \


-v /etc/build.info:/etc/build.info:ro \
-v /etc/platform/platform.conf:/etc/platform/platform.conf:ro \
-v /opt/platform:/opt/platform:rw \
-v /etc/dcmanager/dcmanager.conf:/etc/dcmanager/dcmanager.conf:ro \
-v /etc/dcorch/dcorch.conf:/etc/dcorch/dcorch.conf:ro \
-v /etc/dcorch/api-paste.ini:/etc/dcorch/api-paste.ini:ro \
-v /etc/dcdbsync/dcdbsync.conf:/etc/dcdbsync/dcdbsync.conf:ro \
${DEVIMAGE} bash

sudo docker run --name dcmanager-manager -d --restart unless-stopped \


-v /etc/dcmanager/dcmanager.conf:/etc/dcmanager/dcmanager.conf:ro \
${DEVIMAGE} /var/lib/openstack/bin/dcmanager-manager
--config-file=/etc/dcmanager/dcmanager.conf

/var/lib/openstack/bin/dcmanager-manager
--config-file=/etc/dcmanager/dcmanager.conf
/var/lib/openstack/bin/dcmanager-orchestrator
--config-file=/etc/dcmanager/dcmanager.conf
/var/lib/openstack/bin/dcmanager-audit --config-file=/etc/dcmanager/dcmanager.conf
/var/lib/openstack/bin/dcmanager-audit-worker
--config-file=/etc/dcmanager/dcmanager.conf
/var/lib/openstack/bin/dcmanager-api --config-file=/etc/dcmanager/dcmanager.conf
/var/lib/openstack/bin/dcmanager-state --config-file=/etc/dcmanager/dcmanager.conf

/var/lib/openstack/bin/dcdbsync-api --config-file=/etc/dcdbsync/dcdbsync.conf

/var/lib/openstack/bin/dcorch-engine --config-file=/etc/dcorch/dcorch.conf
/var/lib/openstack/bin/dcorch-api-proxy --config-file=/etc/dcorch/dcorch.conf --
type identity
/var/lib/openstack/bin/dcorch-api-proxy --config-file=/etc/dcorch/dcorch.conf --
type platform
/var/lib/openstack/bin/dcorch-api-proxy --config-file=/etc/dcorch/dcorch.conf --
type patching

[sysadmin@controller-0 ~(keystone_admin)]$ openstack endpoint list --region


SystemController
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+
| ID | Region | Service Name | Service Type
| Enabled | Interface | URL |
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+
| 2b3ae12a0e8540258da12c4522689c32 | SystemController | keystone | identity
| True | internal | http://192.168.204.2:25000/v3 |
| 61d276755a9e4c41a4f8aaac72321dcb | SystemController | keystone | identity
| True | public | http://10.10.10.20:25000/v3 |
| 78185d40e12f4a7bbfbaf4b25c1b255a | SystemController | sysinv | platform
| True | internal | http://192.168.204.2:26385/v1 |
| 978690b188f948d78746d50cf016f5c1 | SystemController | sysinv | platform
| True | public | http://10.10.10.20:26385/v1 |
| 35a108e51c4047b3b64da96865b260b0 | SystemController | usm | usm
| True | admin | https://192.168.204.2:25498/ |
| 087e18c9ac35432ba3beee5923ffa444 | SystemController | patching | patching
| True | internal | http://192.168.204.2:25491/ |
| 55bdde5b03674868b8ce6108491a3318 | SystemController | patching | patching
| True | public | http://10.10.10.20:25491/ |
| e4c81940dca4412fafc61dd62c5c12b1 | SystemController | usm | usm
| True | internal | http://192.168.204.2:25497/ |
| 1ae29671c38d4561b36bc2ea2835a12f | SystemController | usm | usm
| True | public | http://10.10.10.20:25497/ |
| 06d516a6661a4b8c9e4c3fef8336a721 | SystemController | vim | nfv
| True | internal | http://192.168.204.2:4545/ |
| 2e79b9a302a4479f99d897a5d2c90697 | SystemController | vim | nfv
| True | public | http://10.10.10.20:4545/ |
| 674830c66fe14a919999994f5d9a3cc6 | SystemController | dcmanager | dcmanager
| True | public | http://10.10.10.20:8119/v1.0 |
| b60e59404b29440c8d458fd7b90e5491 | SystemController | keystone | identity
| True | admin | https://192.168.204.2:25001/v3 |
| 9451d2e5d40e4274bee7d276bf662a1b | SystemController | sysinv | platform
| True | admin | https://192.168.204.2:26386/v1 |
| 4a81edd87b25426783906d1cf5bed9a4 | SystemController | patching | patching
| True | admin | https://192.168.204.2:25492/ |
| bfdbb918fc9b4caab00a5695c3a0716a | SystemController | vim | nfv
| True | admin | https://192.168.204.2:4546/ |
| 80aca3c76b0d42dbaa0fc68ede489c7f | SystemController | dcmanager | dcmanager
| True | admin | https://192.168.204.2:8120/v1.0 |
| ed94ff1bb61e4ab2b41f12b8c260641e | SystemController | dcmanager | dcmanager
| True | internal | http://dcmanager-api.default.svc.cluster.local:8119/v1.0 |
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+

[sysadmin@controller-0 ~(keystone_admin)]$ openstack endpoint list --service


dcmanager
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+
| ID | Region | Service Name | Service Type
| Enabled | Interface | URL |
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+
| 674830c66fe14a919999994f5d9a3cc6 | SystemController | dcmanager | dcmanager
| True | public | http://10.10.10.20:8119/v1.0 |
| 80aca3c76b0d42dbaa0fc68ede489c7f | SystemController | dcmanager | dcmanager
| True | admin | https://192.168.204.2:8120/v1.0 |
| 041188d144d6486e963272270aa1bac9 | RegionOne | dcmanager | dcmanager
| True | internal | http://dcmanager-api.default.svc.cluster.local:8119/v1.0 |
| ed94ff1bb61e4ab2b41f12b8c260641e | SystemController | dcmanager | dcmanager
| True | internal | http://dcmanager-api.default.svc.cluster.local:8119/v1.0 |
| 6fc55b4663ff4e8ab63023c0ea93d9aa | RegionOne | dcmanager | dcmanager
| True | public | http://dcmanager.default.svc.cluster.local/v1.0 |
| 963b73b2b6da42f0a0ac04e19ab9e3e2 | RegionOne | dcmanager | dcmanager
| True | admin | http://dcmanager-api.default.svc.cluster.local:8119/v1.0 |
+----------------------------------+------------------+--------------
+--------------+---------+-----------
+----------------------------------------------------------+

[sysadmin@controller-0 ~(keystone_admin)]$ openstack endpoint list --service


dcdbsync
+----------------------------------+-----------+--------------+---------------
+---------+-----------+---------------------------------+
| ID | Region | Service Name | Service Type |
Enabled | Interface | URL |
+----------------------------------+-----------+--------------+---------------
+---------+-----------+---------------------------------+
| f14550e368084436a8c50f529068f749 | RegionOne | dcdbsync | dcorch-dbsync |
True | internal | http://192.168.204.2:8219/v1.0 |
| 963e87df65ad499881f356e84fa2649b | RegionOne | dcdbsync | dcorch-dbsync |
True | admin | https://192.168.204.2:8220/v1.0 |
+----------------------------------+-----------+--------------+---------------
+---------+-----------+---------------------------------+

# dcmanager.conf

[DEFAULT]
debug=False
use_syslog=True
syslog_log_facility=local4
default_log_levels=keystoneauth=ERROR,eventlet.wsgi.server=WARN
transport_url=rabbit://guest:3iW3ox*[email protected]:5672
verbose=False
workers=1
orch_workers=1
state_workers=4
audit_workers=1
audit_worker_workers=4
playbook_timeout=3600
use_usm=False
bind_host=controller.internal
auth_strategy=keystone

[database]
connection=postgresql+psycopg2://admin-
dcmanager:[email protected]/dcmanager
connection_recycle_time=3600
max_pool_size=105
max_overflow=100

[keystone_authtoken]
auth_uri=http://controller.internal:5000
http_connect_timeout=15
http_request_max_retries=3
region_name=RegionOne
auth_type=password
auth_url=http://controller.internal:5000
project_name=services
username=dcmanager
password=d4R!TvZkl6+7!P*D
user_domain_name=Default
project_domain_name=Default

[cache]
auth_uri=http://controller.internal:5000/v3
admin_tenant=admin
admin_username=admin
admin_password=St8rlingX*

[endpoint_cache]
auth_uri=http://controller.internal:5000/v3
auth_plugin=password
username=dcmanager
password=d4R!TvZkl6+7!P*D
project_name=services
user_domain_name=Default
project_domain_name=Default
http_connect_timeout=15

#
# Known Issues
#

1) helm image overrides are not updating application image downloads

DOCKER_REGISTRY=admin-2.cumulus.wrs.com:30093
DOCKER_USER=mpeters
DOCKER_IMAGE=${DOCKER_REGISTRY}/${DOCKER_USER}/stx-distributed-cloud:dev-debian-
stable-latest

sudo docker login registry.local:9001

sudo docker image pull ${DOCKER_IMAGE}


sudo docker image tag ${DOCKER_IMAGE}
registry.local:9001/docker.io/starlingx/stx-distributed-cloud:master-debian-stable-
latest
sudo docker image push registry.local:9001/docker.io/starlingx/stx-distributed-
cloud:master-debian-stable-latest

2) helm-toolkit DB LCM is based mysql and would need to be adapted for postgresql

#
# Development Commands
#
rsync -vcr ${REPO_ROOT}/cgcs-root/stx/app-distributed-cloud/
/home/mpeters/design/platform/app-distributed-cloud

scp ${MY_WORKSPACE}/std/stx-distributed-cloud-helm/stx-distributed-cloud-helm_1.0-
1.stx.0_amd64.deb sysadmin@${LABNAME}:

sudo ostree admin unlock


sudo mount /usr/local/kubernetes/current/stage1 && \
sudo mount /usr/local/kubernetes/current/stage2
# application install
sudo apt install -y /home/sysadmin/stx-distributed-cloud-helm_1.0-1.stx.0_amd64.deb

system application-upload /usr/local/share/applications/helm/distributed-cloud-


24.03-0.tgz

system application-list
system helm-override-list distributed-cloud
system helm-override-show distributed-cloud dcmanager distributed-cloud

# application apply
system helm-override-update distributed-cloud dcmanager distributed-cloud --values
dcmanager.yaml
system helm-override-update distributed-cloud dcorch distributed-cloud --values
dcorch.yaml

system helm-override-show distributed-cloud dcmanager distributed-cloud


system helm-override-show distributed-cloud dcorch distributed-cloud

system application-apply distributed-cloud


system application-show distributed-cloud

# remove and cleanup


system application-remove distributed-cloud
system application-delete distributed-cloud

sudo apt remove -y stx-distributed-cloud-helm

# cleanup failed upload


sudo rm -rf /opt/platform/fluxcd/24.03/distributed-cloud/

You might also like