11#! /usr/bin/env bash
22
3+ # shellcheck disable=SC1091
34source lib/functions.sh
45source lib/minikube.sh
56
6- check_variable " GITLAB_TOKEN" $GITLAB_TOKEN
7- check_variable " GITLAB_ENDPOINT" $GITLAB_ENDPOINT
8- check_variable " GITLAB_USERNAME" $GITLAB_USERNAME
7+ check_variable " GITLAB_TOKEN" " $GITLAB_TOKEN "
8+ check_variable " GITLAB_ENDPOINT" " $GITLAB_ENDPOINT "
9+ check_variable " GITLAB_USERNAME" " $GITLAB_USERNAME "
910
1011# Minikube must be running
11- minikube start --memory 4096 -- disk-size 60g --cpus 4
12+ minikube start --disk-size 60g --cpus 4
1213check_minikube
1314
1415echo " ===> Creating namespace"
1516kubectl create namespace lieutenant
1617
1718echo " ===> CRDs (global scope)"
18- kubectl apply -k github.com/projectsyn/lieutenant-operator/deploy/crds
19+ kubectl apply -k github.com/projectsyn/lieutenant-operator/deploy/crds? ref=v0.5.2
1920
2021echo " ===> Operator deployment"
21- kubectl -n lieutenant apply -k github.com/projectsyn/lieutenant-operator/deploy
22+ kubectl -n lieutenant apply -k github.com/projectsyn/lieutenant-operator/deploy? ref=v0.5.2
2223
2324echo " ===> Operator configuration"
2425kubectl -n lieutenant set env deployment/lieutenant-operator -c lieutenant-operator \
25- SKIP_VAULT_SETUP=true \
2626 DEFAULT_DELETION_POLICY=Delete \
27- LIEUTENANT_DELETE_PROTECTION=false
27+ DEFAULT_GLOBAL_GIT_REPO_URL=https://github.com/projectsyn/getting-started-commodore-defaults \
28+ LIEUTENANT_DELETE_PROTECTION=false \
29+ SKIP_VAULT_SETUP=true
2830
2931# tag::demo[]
3032echo " ===> API deployment"
31- kubectl -n lieutenant apply -k " github.com/projectsyn/lieutenant-api/deploy?ref=v0.2.0"
33+ kubectl -n lieutenant apply -k " github.com/projectsyn/lieutenant-api/deploy?ref=v0.5.0"
34+
35+ echo " ===> API configuration"
36+ kubectl -n lieutenant set env deployment/lieutenant-api -c lieutenant-api \
37+ DEFAULT_API_SECRET_REF_NAME=gitlab-com
3238
3339echo " ===> For Minikube we must delete the default service and re-create it"
3440kubectl -n lieutenant delete svc lieutenant-api
@@ -46,22 +52,33 @@ echo "===> Lieutenant API: $LIEUTENANT_URL"
4652wait_for_lieutenant " $LIEUTENANT_URL /healthz"
4753
4854echo " ===> Prepare Lieutenant Operator access to GitLab"
49- kubectl -n lieutenant create secret generic vshn- gitlab \
50- --from-literal=endpoint=" https://gitlab.com " \
51- --from-literal=hostKeys=" $( ssh-keyscan gitlab.com ) " \
55+ kubectl -n lieutenant create secret generic gitlab-com \
56+ --from-literal=endpoint=" https://${GITLAB_ENDPOINT} " \
57+ --from-literal=hostKeys=" $( ssh-keyscan $GITLAB_ENDPOINT ) " \
5258 --from-literal=token=" $GITLAB_TOKEN "
5359
5460echo " ===> Prepare Lieutenant API Authentication and Authorization"
5561kubectl -n lieutenant apply -f lib/auth.yaml
5662
5763echo " ===> Create Lieutenant Objects: Tenant and Cluster"
58- LIEUTENANT_TOKEN=$( kubectl -n lieutenant get secret $( kubectl -n lieutenant get sa api-access-synkickstart -o go-template=' {{(index .secrets 0).name}}' ) -o go-template=' {{.data.token | base64decode}}' )
64+ LIEUTENANT_TOKEN=$( kubectl -n lieutenant get secret " $( kubectl -n lieutenant get sa api-access-synkickstart -o go-template=' {{(index .secrets 0).name}}' ) " -o go-template=' {{.data.token | base64decode}}' )
5965LIEUTENANT_AUTH=" Authorization: Bearer ${LIEUTENANT_TOKEN} "
6066
6167echo " ===> Create a Lieutenant Tenant via the API"
62- TENANT_ID=$( curl -s -H " $LIEUTENANT_AUTH " -H " Content-Type: application/json" -X POST --data " {\" displayName\" :\" Tutorial Tenant\" ,\" gitRepo\" :{\" url\" :\" ssh://git@${GITLAB_ENDPOINT} /${GITLAB_USERNAME} /tutorial-tenant.git\" }}" " ${LIEUTENANT_URL} /tenants" | jq -r " .id" )
68+ TENANT_ID=$( curl -s -H " $LIEUTENANT_AUTH " -H " Content-Type: application/json" -X POST --data " {\" displayName\" :\" Tutorial Tenant\" ,\" gitRepo\" :{\" url\" :\" ssh://git@${GITLAB_ENDPOINT} /${GITLAB_USERNAME} /tutorial-tenant.git\" }, \" globalGitRepoRevision \" : \" v0.5.0 \" }" " ${LIEUTENANT_URL} /tenants" | jq -r " .id" )
6369echo " Tenant ID: $TENANT_ID "
6470
71+ echo " ===> Patch the Tenant object to add a cluster template"
72+ kubectl -n lieutenant patch tenant " $TENANT_ID " --type=" merge" -p \
73+ " {\" spec\" :{\" clusterTemplate\" : {
74+ \" gitRepoTemplate\" : {
75+ \" apiSecretRef\" :{\" name\" :\" gitlab-com\" },
76+ \" path\" :\" ${GITLAB_USERNAME} \" ,
77+ \" repoName\" :\" {{ .Name }}\"
78+ },
79+ \" tenantRef\" :{}
80+ }}}"
81+
6582echo " ===> Retrieve the registered Tenants via API and directly on the cluster"
6683curl -H " $LIEUTENANT_AUTH " " ${LIEUTENANT_URL} /tenants"
6784kubectl -n lieutenant get tenant
0 commit comments