metadata: name: kubernetesDeploy aliases: - name: deployToKubernetes deprecated: true description: Deployment to Kubernetes test or production namespace within the specified Kubernetes cluster. longDescription: |- Deployment to Kubernetes test or production namespace within the specified Kubernetes cluster. !!! note "Deployment supports multiple deployment tools" Currently the following are supported: * [Helm](https://helm.sh/) command line tool and [Helm Charts](https://docs.helm.sh/developing_charts/#charts). * [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) and `kubectl apply` command. ## Helm Following helm command will be executed by default: ``` helm upgrade --install --force --namespace --wait --timeout --set "image.repository=/,image.tag=,secret.dockerconfigjson=,ingress.hosts[0]=,,ingress.hosts[1]=,... ``` * `yourRegistry` will be retrieved from `containerRegistryUrl` * `yourImageName`, `yourImageTag` will be retrieved from `image` * `dockerSecret` will be calculated with a call to `kubectl create secret docker-registry regsecret --docker-server= --docker-username= --docker-password= --dry-run=true --output=json'` spec: inputs: secrets: - name: kubeConfigFileCredentialsId aliases: - name: kubeCredentialsId deprecated: true type: jenkins - name: kubeTokenCredentialsId aliases: - name: k8sTokenCredentialsId deprecated: true type: jenkins - name: dockerCredentialsId type: jenkins resources: - name: deployDescriptor type: stash params: - name: additionalParameters aliases: - name: helmDeploymentParameters type: '[]string' description: Defines additional parameters for \"helm install\" or \"kubectl apply\" command. scope: - PARAMETERS - STAGES - STEPS - name: apiServer aliases: - name: k8sAPIServer type: string description: Defines the Url of the API Server of the Kubernetes cluster. scope: - GENERAL - PARAMETERS - STAGES - STEPS - name: appTemplate aliases: - name: k8sAppTemplate type: string description: Defines the filename for the kubernetes app template (e.g. k8s_apptemplate.yaml) mandatory: false scope: - PARAMETERS - STAGES - STEPS - name: chartPath aliases: - name: helmChartPath type: string description: Defines the chart path for deployments using helm. mandatory: true scope: - PARAMETERS - STAGES - STEPS - name: containerRegistryPassword description: Password for container registry access - typically provided by the CI/CD environment. type: string scope: - PARAMETERS - STAGES - STEPS secret: true - name: containerRegistryUrl aliases: - name: dockerRegistryUrl type: string description: http(s) url of the Container registry where the image to deploy is located. resourceRef: - name: commonPipelineEnvironment param: container/registryUrl scope: - GENERAL - PARAMETERS - STAGES - STEPS mandatory: true - name: containerRegistryUser description: Username for container registry access - typically provided by the CI/CD environment. type: string scope: - PARAMETERS - STAGES - STEPS secret: true - name: containerRegistrySecret description: Name of the container registry secret used for pulling containers from the registry. type: string scope: - PARAMETERS - STAGES - STEPS default: regsecret secret: true - name: createDockerRegistrySecret type: bool description: Toggle to turn on Regsecret creation with a \"deployTool:kubectl\" deployment. scope: - PARAMETERS - STAGES - STEPS default: false - name: deploymentName aliases: - name: helmDeploymentName type: string description: Defines the name of the deployment. mandatory: true scope: - PARAMETERS - STAGES - STEPS - name: deployTool type: string description: Defines the tool which should be used for deployment. mandatory: true scope: - PARAMETERS - STAGES - STEPS default: kubectl possibleValues: - kubectl - helm - helm3 - name: helmDeployWaitSeconds type: int description: Number of seconds before helm deploy returns. mandatory: false scope: - PARAMETERS - STAGES - STEPS default: 300 - name: image aliases: - name: deployImage type: string description: Full name of the image to be deployed. resourceRef: - name: commonPipelineEnvironment param: container/imageNameTag mandatory: true scope: - PARAMETERS - STAGES - STEPS - name: ingressHosts type: '[]string' description: List of ingress hosts to be exposed via helm deployment. mandatory: false scope: - PARAMETERS - STAGES - STEPS - name: kubeConfig type: string description: Defines the path to the \"kubeconfig\" file. scope: - GENERAL - PARAMETERS - STAGES - STEPS - name: kubeContext type: string description: Defines the context to use from the \"kubeconfig\" file. mandatory: false scope: - PARAMETERS - STAGES - STEPS - name: kubeToken type: string description: Contains the id_token used by kubectl for authentication. Consider using kubeConfig parameter instead. scope: - GENERAL - PARAMETERS - STAGES - STEPS secret: true - name: namespace aliases: - name: helmDeploymentNamespace - name: k8sDeploymentNamespace type: string description: Defines the target Kubernetes namespace for the deployment. scope: - PARAMETERS - STAGES - STEPS default: default - name: tillerNamespace aliases: - name: helmTillerNamespace type: string description: Defines optional tiller namespace for deployments using helm. scope: - PARAMETERS - STAGES - STEPS containers: - image: dtzar/helm-kubectl:3.1.2 workingDir: /config options: - name: -u value: '0' conditions: - conditionRef: strings-equal params: - name: deployTool value: helm3 - image: dtzar/helm-kubectl:2.12.1 workingDir: /config options: - name: -u value: '0' conditions: - conditionRef: strings-equal params: - name: deployTool value: helm - image: dtzar/helm-kubectl:2.12.1 workingDir: /config options: - name: -u value: '0' conditions: - conditionRef: strings-equal params: - name: deployTool value: kubectl