Deploy DX Cloud
Use this page when you are ready to ship changes to a cluster. It covers tooling prerequisites, an optional local Helm dry-run, and where the rest of the Deploy docs live.
Prerequisites
To deploy DX Cloud, make sure you meet the following:
- You must have
kubectlinstalled. - You should be familiar with at least basic
kubectlcommands. - You must have Helm installed.
- You must have been provided Rancher credentials by a member of the DX Cloud team.
KubeConfig access and cluster context are usually arranged during onboarding — see Preparing for DX Cloud and Set up DX Cloud.
How deployment works
When DX Cloud is set up with GitLab, changes in your project trigger the pipeline from .gitlab-ci.yml. Builds and quality stages often run automatically; the final deploy job is frequently manual (play button in GitLab).
Full webapp layout, pipeline include, and values.yml behaviour:
Author / public Helm properties:
Local dry-run with Makefile
You can use a local Makefile to template or install the chart before relying on the pipeline.
RELEASE=<env> <1>
VALUES_FILE=values.yml <2>
CHART_NAME=mironet/magnolia-helm
CHART_VERSION=v1.4.3 <3>
.PHONY: help
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := help
values: ## Show generated yaml resources and values.
helm install --dry-run --debug -f $(VALUES_FILE) --version $(CHART_VERSION) --generate-name $(CHART_NAME) -n $(RELEASE)
clean: ## Clean up environment.
helm del $(RELEASE) -n $(RELEASE)
clean-pvc: ## Clean disks (PVCs) too.
kubectl get persistentvolumeclaims -n $(RELEASE) -l 'release=$(RELEASE)' -o json | kubectl delete -f -
install: ## Install helm chart on k8s.
helm upgrade --install $(RELEASE) $(CHART_NAME) --version $(CHART_VERSION) --create-namespace -n $(RELEASE) -f $(VALUES_FILE)
upgrade: ## Upgrade locally deployed release.
helm upgrade $(RELEASE) $(CHART_NAME) --version $(CHART_VERSION) -n $(RELEASE) --reuse-values -f $(VALUES_FILE)
test: ## Start helm tests.
helm test --logs $(RELEASE) -n $(RELEASE)
template: ## Template out, do not send to k8s.
helm template -f $(VALUES_FILE) $(CHART_NAME) --version $(CHART_VERSION) -n $(RELEASE)
The release value is used for the Helm release name as well as the namespace. Use an environment name such as dev, test, or integration. Another cluster is installed for production.
Specifies the values.yml file that contains important configuration. See Helm values.
Check the latest chart version with:
helm search repo mironet/magnolia-helm
Add the chart repo locally if you have not already:
helm repo add mironet https://charts.mirohost.ch
helm repo update
Related Deploy topics
| Topic | Page |
|---|---|
Webapp structure, GitLab pipeline, values.yml | Webapp deployment |
| Helm chart property reference | Helm values |
Temporary / extra environments beyond dev / uat / prod | Feature environments |
| Syncing light modules into running pods | Light module deployment |