Skip to content

Commit 724f7c5

Browse files
author
Adrian Kosmaczewski
committed
Updated to Kubernetes 1.24+ and latest Project Syn tools
1 parent cffd4bc commit 724f7c5

11 files changed

Lines changed: 50 additions & 84 deletions

0_requirements.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ echo "Podman $PODMAN_VERSION"
2020
MINIKUBE_VERSION=$(minikube version | grep version)
2121
echo "$MINIKUBE_VERSION"
2222

23+
KIND_VERSION=$(kind version)
24+
echo "$KIND_VERSION"
25+
2326
K3D_VERSION=$(k3d version | grep version -m 1)
2427
echo "$K3D_VERSION"
2528

26-
VSCODE_PATH=$(which code)
27-
echo "Visual Studio Code: $VSCODE_PATH"
28-
2929
CURL_PATH=$(which curl)
3030
echo "curl: $CURL_PATH"
3131

1_lieutenant_on_minikube.sh

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ check_variable "GITLAB_TOKEN" "$GITLAB_TOKEN"
88
check_variable "GITLAB_ENDPOINT" "$GITLAB_ENDPOINT"
99
check_variable "GITLAB_USERNAME" "$GITLAB_USERNAME"
1010

11+
# Lieutenant Operator and API versions
12+
LIEUTENANT_OPERATOR_VERSION=v1.5.0
13+
LIEUTENANT_API_VERSION=v0.11.0
14+
1115
# Minikube must be running
1216
minikube start --disk-size 60g --cpus 4
1317
check_minikube
@@ -16,21 +20,22 @@ echo "===> Creating namespace"
1620
kubectl create namespace lieutenant
1721

1822
echo "===> CRDs (global scope)"
19-
kubectl apply -k "github.com/projectsyn/lieutenant-operator/config/crd?ref=v1.3.0"
23+
kubectl apply -k "github.com/projectsyn/lieutenant-operator/config/crd?ref=$LIEUTENANT_OPERATOR_VERSION"
2024

2125
echo "===> Operator deployment"
22-
kubectl -n lieutenant apply -k "github.com/projectsyn/lieutenant-operator/config/samples/deployment?ref=v1.3.0"
26+
kubectl -n lieutenant apply -k "github.com/projectsyn/lieutenant-operator/config/samples/deployment?ref=$LIEUTENANT_OPERATOR_VERSION"
2327

2428
echo "===> Operator configuration"
2529
kubectl -n lieutenant set env deployment/lieutenant-operator -c lieutenant-operator \
2630
DEFAULT_DELETION_POLICY=Delete \
2731
DEFAULT_GLOBAL_GIT_REPO_URL=https://github.com/projectsyn/getting-started-commodore-defaults \
2832
LIEUTENANT_DELETE_PROTECTION=false \
29-
SKIP_VAULT_SETUP=true
33+
SKIP_VAULT_SETUP=true \
34+
LIEUTENANT_CREATE_SERVICEACCOUNT_TOKEN_SECRET=true
3035

3136
# tag::demo[]
3237
echo "===> API deployment"
33-
kubectl -n lieutenant apply -k "github.com/projectsyn/lieutenant-api/deploy?ref=v0.9.1"
38+
kubectl -n lieutenant apply -k "github.com/projectsyn/lieutenant-api/deploy?ref=$LIEUTENANT_API_VERSION"
3439

3540
echo "===> API configuration"
3641
kubectl -n lieutenant set env deployment/lieutenant-api -c lieutenant-api \
@@ -54,14 +59,14 @@ wait_for_lieutenant "$LIEUTENANT_URL/healthz"
5459
echo "===> Prepare Lieutenant Operator access to GitLab"
5560
kubectl -n lieutenant create secret generic gitlab-com \
5661
--from-literal=endpoint="https://${GITLAB_ENDPOINT}" \
57-
--from-literal=hostKeys="$(ssh-keyscan $GITLAB_ENDPOINT)" \
62+
--from-literal=hostKeys="$(ssh-keyscan "$GITLAB_ENDPOINT")" \
5863
--from-literal=token="$GITLAB_TOKEN"
5964

6065
echo "===> Prepare Lieutenant API Authentication and Authorization"
6166
kubectl -n lieutenant apply -f lib/auth.yaml
6267

6368
echo "===> Create Lieutenant Objects: Tenant and Cluster"
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}}')
69+
LIEUTENANT_TOKEN=$(kubectl -n lieutenant get secret token-secret -o go-template='{{.data.token | base64decode}}')
6570
LIEUTENANT_AUTH="Authorization: Bearer ${LIEUTENANT_TOKEN}"
6671

6772
echo "===> Create a Lieutenant Tenant via the API"

2_commodore_on_minikube.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ check_variable "GITHUB_USERNAME" "$GITHUB_USERNAME"
1010

1111
check_minikube
1212

13+
COMMODORE_VERSION=v1.16.0
14+
1315
echo "===> Find Lieutenant URL"
1416
LIEUTENANT_URL=$(curl http://localhost:4040/api/tunnels --silent | jq -r '.["tunnels"][0]["public_url"]')
1517
check_variable "LIEUTENANT_URL" "$LIEUTENANT_URL"
@@ -19,15 +21,15 @@ CLUSTER_ID=$(kubectl --context minikube -n lieutenant get cluster | grep c- | aw
1921
check_variable "CLUSTER_ID" "$CLUSTER_ID"
2022

2123
echo "===> Find Lieutenant Token"
22-
LIEUTENANT_TOKEN=$(kubectl --context minikube -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}}')
24+
LIEUTENANT_TOKEN=$(kubectl --context minikube -n lieutenant get secret token-secret -o go-template='{{.data.token | base64decode}}')
2325

2426
echo "===> Kickstart Commodore"
2527
echo "===> IMPORTANT: When prompted enter your SSH key password"
2628
kubectl -n lieutenant run commodore-shell \
27-
--image=docker.io/projectsyn/commodore:v1.3.2 \
29+
--image=docker.io/projectsyn/commodore:$COMMODORE_VERSION \
2830
--env=COMMODORE_API_URL="$LIEUTENANT_URL" \
2931
--env=COMMODORE_API_TOKEN="$LIEUTENANT_TOKEN" \
30-
--env=SSH_PRIVATE_KEY="$(cat ${COMMODORE_SSH_PRIVATE_KEY})" \
32+
--env=SSH_PRIVATE_KEY="$(cat "${COMMODORE_SSH_PRIVATE_KEY}")" \
3133
--env=CLUSTER_ID="$CLUSTER_ID" \
3234
--env=GITLAB_ENDPOINT="$GITLAB_ENDPOINT" \
3335
--tty --stdin --restart=Never --rm --wait \

3_steward_on_minikube.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ LIEUTENANT_URL=$(curl http://localhost:4040/api/tunnels --silent | jq -r '.["tun
1515
check_variable "LIEUTENANT_URL" "$LIEUTENANT_URL"
1616

1717
echo "===> Find Lieutenant API token"
18-
LIEUTENANT_TOKEN=$(kubectl --context minikube -n lieutenant get secret "$(kubectl --context minikube -n lieutenant get sa api-access-synkickstart -o go-template='{{(index .secrets 0).name}}')" -o go-template='{{.data.token | base64decode}}')
18+
LIEUTENANT_TOKEN=$(kubectl --context minikube -n lieutenant get secret token-secret -o go-template='{{.data.token | base64decode}}')
1919
check_variable "LIEUTENANT_TOKEN" "$LIEUTENANT_TOKEN"
2020
LIEUTENANT_AUTH="Authorization: Bearer $LIEUTENANT_TOKEN"
2121

4_synthesize_on_k3s.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,17 @@ check_variable "GITLAB_ENDPOINT" "$GITLAB_ENDPOINT"
99
check_variable "GITLAB_USERNAME" "$GITLAB_USERNAME"
1010
check_variable "COMMODORE_SSH_PRIVATE_KEY" "$COMMODORE_SSH_PRIVATE_KEY"
1111

12+
# Commodore version
13+
COMMODORE_VERSION=v1.16.0
14+
1215
LIEUTENANT_URL=$(curl http://localhost:4040/api/tunnels --silent | jq -r '.["tunnels"][0]["public_url"]')
1316
check_variable "LIEUTENANT_URL" "$LIEUTENANT_URL"
1417

1518
TENANT_ID=$(kubectl --context minikube --namespace lieutenant get tenant | grep t- | awk 'NR==1{print $1}')
1619
check_variable "TENANT_ID" "$TENANT_ID"
1720

18-
LIEUTENANT_TOKEN=$(kubectl --context minikube --namespace lieutenant get secret "$(kubectl --context minikube --namespace lieutenant get sa api-access-synkickstart -o go-template='{{(index .secrets 0).name}}')" -o go-template='{{.data.token | base64decode}}')
21+
echo "===> Find Lieutenant Token"
22+
LIEUTENANT_TOKEN=$(kubectl --context minikube -n lieutenant get secret token-secret -o go-template='{{.data.token | base64decode}}')
1923
check_variable "LIEUTENANT_TOKEN" "$LIEUTENANT_TOKEN"
2024

2125
# Launch K3s
@@ -33,10 +37,10 @@ check_variable "CLUSTER_ID" "$CLUSTER_ID"
3337
echo "===> Kickstart Commodore"
3438
echo "===> IMPORTANT: When prompted enter your SSH key password"
3539
kubectl --context minikube -n lieutenant run commodore-shell \
36-
--image=docker.io/projectsyn/commodore:v1.3.2 \
40+
--image=docker.io/projectsyn/commodore:$COMMODORE_VERSION \
3741
--env=COMMODORE_API_URL="$LIEUTENANT_URL" \
3842
--env=COMMODORE_API_TOKEN="$LIEUTENANT_TOKEN" \
39-
--env=SSH_PRIVATE_KEY="$(cat ${COMMODORE_SSH_PRIVATE_KEY})" \
43+
--env=SSH_PRIVATE_KEY="$(cat "${COMMODORE_SSH_PRIVATE_KEY}")" \
4044
--env=CLUSTER_ID="$CLUSTER_ID" \
4145
--env=GITLAB_ENDPOINT="$GITLAB_ENDPOINT" \
4246
--tty --stdin --restart=Never --rm --wait \

4_synthesize_on_kind.sh

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ check_variable "GITLAB_ENDPOINT" "$GITLAB_ENDPOINT"
88
check_variable "GITLAB_USERNAME" "$GITLAB_USERNAME"
99
check_variable "COMMODORE_SSH_PRIVATE_KEY" "$COMMODORE_SSH_PRIVATE_KEY"
1010

11+
# Commodore version
12+
COMMODORE_VERSION=v1.16.0
13+
1114
LIEUTENANT_URL=$(curl http://localhost:4040/api/tunnels --silent | jq -r '.["tunnels"][0]["public_url"]')
1215
check_variable "LIEUTENANT_URL" "$LIEUTENANT_URL"
1316

1417
TENANT_ID=$(kubectl --context minikube --namespace lieutenant get tenant | grep t- | awk 'NR==1{print $1}')
1518
check_variable "TENANT_ID" "$TENANT_ID"
1619

17-
LIEUTENANT_TOKEN=$(kubectl --context minikube --namespace lieutenant get secret "$(kubectl --context minikube --namespace lieutenant get sa api-access-synkickstart -o go-template='{{(index .secrets 0).name}}')" -o go-template='{{.data.token | base64decode}}')
20+
LIEUTENANT_TOKEN=$(kubectl --context minikube -n lieutenant get secret token-secret -o go-template='{{.data.token | base64decode}}')
1821
check_variable "LIEUTENANT_TOKEN" "$LIEUTENANT_TOKEN"
1922

2023
# Launch kind
@@ -29,10 +32,10 @@ check_variable "CLUSTER_ID" "$CLUSTER_ID"
2932
echo "===> Kickstart Commodore"
3033
echo "===> IMPORTANT: When prompted enter your SSH key password"
3134
kubectl --context minikube -n lieutenant run commodore-shell \
32-
--image=docker.io/projectsyn/commodore:v1.3.2 \
35+
--image=docker.io/projectsyn/commodore:$COMMODORE_VERSION \
3336
--env=COMMODORE_API_URL="$LIEUTENANT_URL" \
3437
--env=COMMODORE_API_TOKEN="$LIEUTENANT_TOKEN" \
35-
--env=SSH_PRIVATE_KEY="$(cat ${COMMODORE_SSH_PRIVATE_KEY})" \
38+
--env=SSH_PRIVATE_KEY="$(cat "${COMMODORE_SSH_PRIVATE_KEY}")" \
3639
--env=CLUSTER_ID="$CLUSTER_ID" \
3740
--env=GITLAB_ENDPOINT="$GITLAB_ENDPOINT" \
3841
--tty --stdin --restart=Never --rm --wait \

4_synthesize_on_microk8s.sh

Lines changed: 0 additions & 61 deletions
This file was deleted.

5_delete.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ TENANT_ID=$(kubectl --context minikube -n lieutenant get tenant | grep t- | awk
99
check_variable "TENANT_ID" "$TENANT_ID"
1010

1111
echo "===> Removing all clusters"
12+
# shellcheck disable=SC2207
1213
CLUSTERS=($(kubectl --context minikube -n lieutenant get cluster -o jsonpath="{$.items[*].metadata.name}"))
1314
for CLUSTER in "${CLUSTERS[@]}"; do
1415
kubectl --context minikube -n lieutenant delete cluster "$CLUSTER"
@@ -22,7 +23,5 @@ sleep 20
2223

2324
minikube delete
2425
k3d cluster delete projectsyn
25-
# kind delete cluster --name projectsyn
26-
# sudo microk8s reset
27-
# sudo microk8s stop
26+
kind delete cluster --name projectsyn
2827
killall ngrok

README.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ The instructions of the tutorial guide the user to the creation and deployment o
1212

1313
The `0_requirements.sh` script shows the current versions of all required software.
1414

15+
=== Podman instead of Docker
16+
17+
If you do not have Docker installed or would prefer to use https://podman.io/[Podman], https://kind.sigs.k8s.io/[kind] is 100% compatible with Podman and has been successfully tested with this tutorial.
18+
19+
At the time of the last update of this document, k3d 5.5 is not compatible with Podman, https://k3d.io/v5.5.1/usage/advanced/podman/[despite what the documentation says].
20+
1521
== Build PDF
1622

1723
Use the `make pdf` command to create a PDF file out of the source Asciidoc file in the `build` folder. This operation requires Docker.

lib/auth.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,11 @@ apiVersion: v1
3434
kind: ServiceAccount
3535
metadata:
3636
name: api-access-synkickstart
37+
---
38+
apiVersion: v1
39+
kind: Secret
40+
type: kubernetes.io/service-account-token
41+
metadata:
42+
name: token-secret
43+
annotations:
44+
kubernetes.io/service-account.name: api-access-synkickstart

0 commit comments

Comments
 (0)