This topic describes how to use the CLI to enable an application to deploy to attached clusters within a workspace. To use the DKP UI to enable applications, see Customize a workspace’s applications.
See Workspace Platform Applications for a list of all applications and those that are enabled by default.
Prerequisites
Before you begin, you must have:
- A running cluster with Kommander installed.
- An existing Kubernetes cluster attached to Kommander.
Set the WORKSPACE_NAMESPACE environment variable to the name of the workspace’s namespace where the cluster is attached:
export WORKSPACE_NAMESPACE=<workspace_namespace>
Enable the application
Review the list of available applications that can be enabled to deploy to your attached cluster.
-
Enable a supported application to deploy to your existing attached cluster with an
AppDeploymentresource. -
Within the
AppDeployment, define theappRefto specify whichAppwill be enabled:cat <<EOF | kubectl apply -f - apiVersion: apps.kommander.d2iq.io/v1alpha2 kind: AppDeployment metadata: name: istio namespace: ${WORKSPACE_NAMESPACE} spec: appRef: name: istio-1.11.6 kind: ClusterApp EOF -
Create the resource in the workspace you just created, which instructs Kommander to deploy the
AppDeploymentto theKommanderClusters in the same workspace.
Enable an application with a custom configuration
-
Provide the name of a
ConfigMapin theAppDeployment, which provides custom configuration on top of the default configuration:cat <<EOF | kubectl apply -f - apiVersion: apps.kommander.d2iq.io/v1alpha2 kind: AppDeployment metadata: name: istio namespace: ${WORKSPACE_NAMESPACE} spec: appRef: name: istio-1.11.6 kind: ClusterApp configOverrides: name: istio-overrides-attached EOF -
Create the
ConfigMapwith the name provided in the step above, with the custom configuration:cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: namespace: ${WORKSPACE_NAMESPACE} name: istio-overrides-attached data: values.yaml: | operator: resources: limits: cpu: 200m memory: 256Mi requests: cpu: 50m memory: 128Mi EOF
Kommander waits for the ConfigMap to be present before deploying the AppDeployment to the attached clusters.
Verify applications
The applications are now enabled. Connect to the attached cluster and check the HelmReleases to verify the deployment:
kubectl get helmreleases istio -n ${WORKSPACE_NAMESPACE} -w
You should eventually see the HelmRelease marked as Ready:
NAMESPACE NAME READY STATUS AGE
workspace-test-vjsfq istio True Release reconciliation succeeded 7m3s
Kommander Documentation