- Manifest ManagementManifest Management
- Application Update LifecycleApplication Update Lifecycle
- Volume ManagementVolume Management
- Dynamic ParametersDynamic Parameters
- Kubernetes Cluster SupportKubernetes Cluster Support
- Kubernetes RBACKubernetes RBAC
- Network & Traffic managementNetwork & Traffic management
- Kubernetes AutoscalingKubernetes Autoscaling
- Associating Pods To NodesAssociating Pods To Nodes
- Integration with VM (Legacy) ServicesIntegration with VM (Legacy) Services
Configuring Docker containers is a critical part of putting together an application. In Kubernetes, the environment variables allow you to configure the application through key-value pairs. Passing environment variables is often not easy and if you have a large number of containers that need to interact with other containers, changing even a single variable becomes extremely complicated. For example, in development, you may be using your own managed MySQL container which is shared by a large number of Docker containers, but in production you may want to switch to a provider-managed MySQL server. In this case, you will need to change the connection string in all of the Docker containers. This becomes really complex and nearly impossible to maintain.
The following are examples of YAML configuration files needed to manually pass environment parameters in a WordPress deployment.
apiVersion: apps/v1 kind: Deployment ... spec: ... env: - name: WORDPRESS_DB_HOST value: :3306 - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: mysql key: password ports: - containerPort: 80 name: wordpress
As shown above, the developer will need to manually change config parameters in each configuration file. Developers will always have to maintain multiple sets of Kubernetes manifest for different configurations.
How CloudPlex addresses your pain
CloudPlex provides a way to define dynamic parameters within your services. The value of these parameters are resolved automatically by the platform and replaced at deployment time on a Kubernetes cluster. The following screenshot shows the developer changing from their own managed MySQL container to a provider-managed MySQL server, using a simple drag and drop operation, replacing the container without changing any variable in the service.