- Apply the application and other CRDs in the cluster.
- Create SB admin with cluster-admin role.
- [optional] create new namespace.
- Deploy the operator.
- Project CRD - done
- Project artefacts creation - done
- Helm release reconcile - done
- Send notifications to SB. a. build pod name b. image build status c. helm deployment status d. project creation status e. app creation status f. ingress name and ip g. managed kubernetes provider h. sb-admin service account details
- Clean up stuff on app delete - done
- Clean up stuff on project delete - done
- Add appropriate labels to all the artefacts.
- better exception handling
- daemon to update images.
- deeper clean
- compile to binary
- Clean up stuff on uninstall SB.
- resize registry
- resize nfs
- upgrade versions
- add ssh to app
- add registry management credentials to cluster
- Custom build templates
- Other build techniques apart from CNB
- Installation of helm release, ingress, cert, registry, kpack, nfs using init container.
- The parameters for this will be controlled by env vars to the init container.
- Boot the actual operator pod which will be a shiv compiled binary.
Roll up the following:
- application and project CRDs.
- SB admin sa with cluster-admin role.
- Create a new SB namespace.
- Operator deployment.
into a single file.
Deploy the file on a fresh cluster.
echo "eB?rtK>j@iLd_U+5Gy9=<<P52G3" | htpasswd -bnBC 10 "" - | tr -d ':\n' # REGISTRY_PASSWORD
echo "little-bird-ae3c-admin:eB?rtK>j@iLd_U+5Gy9=<<P52G3" | base64 # REGISTRY_CREDENTIALS
docker build --file Dockerfile.kubectl -t shapeblock/sb-operator-init:0.0.1 .
docker push shapeblock/sb-operator-init:0.0.1
- kopf adopt for app dependent resources
- tests
- add probe
- update deployment image to 3.12
- check RBAC - https://kopf.readthedocs.io/en/stable/deployment/#rbac
- idempotence - https://kopf.readthedocs.io/en/stable/idempotence/