Skip to content

Instantly share code, notes, and snippets.

@making
Last active July 11, 2021 04:27
Show Gist options
  • Save making/0f17a02f27c6705ffa6d7f353ddb6b3d to your computer and use it in GitHub Desktop.
Save making/0f17a02f27c6705ffa6d7f353ddb6b3d to your computer and use it in GitHub Desktop.
Install Concourse via kapp-controller

Setup kind cluster

brew install kind
curl -sL https://github.com/projectcontour/contour/raw/main/examples/kind/kind-expose-port.yaml > kind-expose-port.yaml
kind create cluster --config kind-expose-port.yaml

Install Kapp Controller

kubectl apply -f https://github.com/vmware-tanzu/carvel-kapp-controller/releases/download/v0.20.0/release.yml

Install Concourse

kubectl apply -f concourse.yaml
$ kubectl get -n concourse app concourse                                        
NAME        DESCRIPTION           SINCE-DEPLOY   AGE
concourse   Reconcile succeeded   20s            111s
kubectl port-forward -n concourse service/concourse-web 8080:8080

http://localhost:8080 (admin/admin)

curl -sL "http://localhost:8080/api/v1/cli?arch=amd64&platform=darwin" > fly
install fly /usr/local/bin/fly
rm -f fly
fly -t demo login -c http://localhost:8080 -u admin -p admin
curl -sL https://gist.github.com/making/6e8443f091fef615e60ea6733f62b5db/raw/2d26d962d36ab8639f0a9e8dccb100f57f610d9d/unit-test.yml > unit-test.yml
fly -t demo set-pipeline -p unit-test -c unit-test.yml
fly -t demo unpause-pipeline -p unit-test
fly -t demo trigger-job -j unit-test/unit-test --watch
kubectl delete app concourse
kubectl delete -f concourse.yaml
apiVersion: v1
kind: Namespace
metadata:
name: concourse
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kapp-sa
namespace: concourse
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: kapp-role-binding
namespace: concourse
subjects:
- kind: ServiceAccount
name: kapp-sa
namespace: concourse
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
---
apiVersion: kappctrl.k14s.io/v1alpha1
kind: App
metadata:
name: concourse
namespace: concourse
spec:
syncPeriod: 30s
serviceAccountName: kapp-sa
fetch:
- helmChart:
name: concourse
version: "15.5.1"
repository:
url: https://concourse-charts.storage.googleapis.com
template:
- helmTemplate:
valuesFrom:
- secretRef:
name: concourse-values
deploy:
- kapp:
delete:
# Force delete PVCs, since StatefulSet does not delete them
rawOptions:
- --apply-ignored=true
---
apiVersion: v1
kind: Secret
metadata:
name: concourse-values
namespace: concourse
stringData:
data.yml: |
# https://github.com/concourse/concourse-chart
worker:
replicas: 1
minAvailable: 0
postgresql:
postgresqlPassword: admin
postgresqlPostgresPassword: admin
secrets:
localUsers: admin:admin
concourse:
web:
kubernetes:
enabled: false
externalUrl: http://localhost:8080
auth:
mainTeam:
localUser: admin
rbac:
create: false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment