Concourse
Let's see how to run Concourse (docs) in a Kubernetes cluster.
CLI
We'll need Concourse CLI (fly) to interact with Concourse server:
bash
# gets the binary archive from https://github.com/concourse/concourse/releases (update the version)
curl -L https://github.com/concourse/concourse/releases/download/v7.13.2/fly-7.13.2-linux-amd64.tgz | tar -xzf -
sudo mv fly /usr/local/bin/
sudo chmod +x /usr/local/bin/fly
fly --versionConfiguration
We'll use the official Helm chart:
Deployment
bash
# adds Helm chart repository
helm repo add concourse https://concourse-charts.storage.googleapis.com/
helm repo update
# installs
helm upgrade --install concourse concourse/concourse --namespace concourse --create-namespace
# uninstalls
helm uninstall concourse -n concourse
kubectl delete ns concourseExamples
Instruqt, Traefik, cert-manager, Let's Encrypt
bash
DOMAIN=concourse.console.${_SANDBOX_ID}.instruqt.io
# installs the chart with helm
helm upgrade --install concourse concourse/concourse --namespace concourse --create-namespace \
--set web.ingress.annotations.'cert-manager\.io/cluster-issuer'=letsencrypt-prod \
--set web.ingress.enabled=true \
--set web.ingress.hosts[0]=$DOMAIN \
--set web.ingress.ingressClassName=traefik \
--set web.ingress.tls[0].secretName=concourse-tls \
--set web.ingress.tls[0].hosts[0]=$DOMAIN \
--set concourse.web.externalUrl=https://$DOMAIN
# logs in (test/test by default)
fly --target localhost login --concourse-url https://$DOMAIN/