FlowCharts
Greenfield Deployment
Schema

Rationale
- Ops Team need to deploy a new service.
- If the service is unhealty, it gets removed.
- If the service is healty, it reaches the operational.
Brownfield Change
Schema

Rationale
-
Ops Team need to:
- Use Case 1: remove a service.
- Use Case 2: update a service.
- Use Case 3: rollback a service.
-
Once the traffic is drain:
- Use Case 1: the service is removed.
- Use Case 2: the service is updated.
- Use Case 3: the service is rollback.
-
Once the update/rollback is performed, the traffic is rollout.
Notes
-
In order to perform a rollback or an update, the tools needs to have access to credentials.
This means that the rollback and update pods need to be deployed with the rest of the helmchart
in order to be able to have config and secrets recreated.
and access the environment variables. We need to be able to be able to selectivly render the files which are
matching the phase.
-
Drain the traffic from a service, especially if we need to do blue/green upgrade means changing the nginx setup.
-
How to do rolling upgrade when data is actually persisted in a database. Changing the database schema would mean:
-
Above flow may be too complicated.
- Preventing access to the other services could be enough ?
- Requirement on backward compatibility of the schema.
- How does Openstack service itself to do a rolling upgrade.
- Is comple
LCM Phase Breakdown
The following list attempts provide a fine
grain view of the K8s resources required during
the LCM phases.
Install phase
Following Jobs need to be performed:
- svc/templates/job-db-init.yaml
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
Upgrade phase
Following Jobs need to be performed:
- svc/templates/job-db-backup.yaml (TODO)
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
Rollback phase
Following Jobs need to be performed:
- svc/templates/job-db-restore.yaml (TODO)
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
TrafficRollout phase
Following Jobs need to be performed:
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
TrafficDrain phase
Following Jobs need to be performed:
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
Uninstall phase
Following Jobs need to be performed:
- svc/templates/job-db-drop.yaml
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
Test phase
Following Jobs need to be performed:
Access to the following resources is needed:
- svc/templates/secret-db.yaml
- svc/templates/secret-ingress-tls.yaml
- svc/templates/secret-keystone.yaml
- svc/templates/configmap-bin.yaml
- svc/templates/configmap-etc.yaml
To sort
- svc/templates/bin/_bootstrap.sh.tpl
- svc/templates/bin/_db-sync.sh.tpl
- svc/templates/job-bootstrap.yaml
- svc/templates/job-db-sync.yaml
- svc/templates/job-image-repo-sync.yaml
- svc/templates/job-ks-endpoints.yaml
- svc/templates/job-ks-service.yaml
- svc/templates/job-ks-user.yaml
- svc/templates/job-rabbit-init.yaml
- svc/templates/network_policy.yaml
- svc/templates/pod-rally-test.yaml