CI/CD deployment tools for Kubernetes
4.6K
CI/CD deployment tools for Kubernetes
This alpine-based docker image contains next tools:
kubectl - Kubernetes CLIoc - OpenShift CLIistioctl - Istio cligettext - so you can use envsubst to substitute environment variables in your CI/CD pipelineWhy should I use envsubst? You should never put secrets into your version
control, so you might want to keep them in secret variables in your CI/CD
system. You can use envsubst to substituted them correctly in your templates.
A CI/CD system usually sets a bunch of variables to the build environment. Below I'll show an example of GitLab CI variables set in the build environment.
CI_PROJECT_NAME: my_awesome_projectCI_BUILD_REF_SLUG: f1234dYour app.yaml could look similar the one below:
...
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: ${CI_PROJECT_NAME}
name: sample
spec:
replicas: 1
selector:
app: ${CI_PROJECT_NAME}
deployment: ${CI_BUILD_REF_SLUG}
...
After cat app.yaml | envsubst > app.yaml you'll notice the variables have
been replaced with their actual values:
...
- apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: my_awesome_project
name: sample
spec:
replicas: 1
selector:
app: my_awesome_project
deployment: f1234d
...
Below a sample job in an .gitlab-ci.yml file:
deploy:
image: spaceonfire/k8s-deploy-tools
stage: deploy
before_script:
- oc login "$KUBE_URL" --token="$KUBE_TOKEN" --insecure-skip-tls-verify
- oc project "$KUBE_NAMESPACE" 2> /dev/null || oc new-project "$KUBE_NAMESPACE"
script:
- cat app.yaml | envsubst > app.yaml
- oc apply -f app.yaml
Content type
Image
Digest
Size
63.6 MB
Last updated
over 6 years ago
docker pull spaceonfire/k8s-deploy-tools