...
Creating a Kubernetes Deployment for a service component
We need to create a Kubernetes Deployment resource for the service component that looks like the Deployment currently created by the k8splugin. The k8splugin deployment includes the following resources:
- A container that runs the service component itself, using a Docker image pulled from the ONAP Nexus repository.
- If the component is using the filebeat centralized logging mechanism, a sidecar container running filebeat, plus the volume and volume mounts needed for logging.
- If the component is using TLS with certificates from AAF, an initContainer that retrieves the certificate information, plus the volume and volume mounts needed for certificates.
- If the component is using TLS with certificates from an external CA, an initContainer that retrieves the certificate information.
- If the component is using both AAF certificates and certificates from an external CA, an initContainer that merges the Java truststores.
In addition to the resources that the k8splugin creates, we need:
- An initContainer that waits for the other components that the service component needs, such as AAF and Consul In the current Cloudify implementation, we can guarantee that a service component won't be deployed before these other components are ready. We can't make that guarantee for Helm.
- An initContainer that puts the component configuration into Consul (see next section for details).
Setting up the component configuration in Consul
...