61 lines
1.4 KiB
Bash
Executable File
61 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
if [ ! $# -ge 1 ]; then
|
|
echo "usage: $0 cluster [helm args]"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d chart ]; then
|
|
echo "error: must be run from toplevel directory"
|
|
exit 1
|
|
fi
|
|
|
|
k='kubectl --context oceanbox'
|
|
|
|
name=$1
|
|
ns=$name-vcluster
|
|
shift
|
|
|
|
yq ".clusters[]|select(.name|contains(\"$name-vcluster\")).name" ~/.kube/config | grep -q "$name"
|
|
|
|
if [ $? = 0 ]; then
|
|
$k get ns $ns >/dev/null 2>&1 || $k create ns $ns
|
|
helm template -n $ns $@ $name ./chart | $k apply -f -
|
|
|
|
$k wait -n $ns --for=condition=ready pod -l app=vcluster
|
|
kubectl --context $name-vcluster -n dapr-system wait pod --for=condition=ready -l app=dapr-operator
|
|
sleep 15
|
|
kubectl kustomize ../resources/atlantis/manifests/staging | kubectl --context $name-vcluster apply -f-
|
|
else
|
|
cat << EOF
|
|
***
|
|
*** $name-vcluster must be defined in ~/.kube/config
|
|
***
|
|
clusters:
|
|
- cluster:
|
|
insecure-skip-tls-verify: true
|
|
server: https://$name-vcluster.beta.oceanbox.io
|
|
name: $name-vcluster
|
|
contexts:
|
|
- context:
|
|
cluster: $name-vcluster
|
|
namespace: atlantis
|
|
user: oidc
|
|
name: $name-vcluster
|
|
users:
|
|
- name: oidc
|
|
user:
|
|
exec:
|
|
apiVersion: client.authentication.k8s.io/v1beta1
|
|
args:
|
|
- oidc-login
|
|
- get-token
|
|
- --oidc-issuer-url=https://login.microsoftonline.com/3f737008-e9a0-4485-9d27-40329d288089/v2.0
|
|
- --oidc-client-id=9b6daef0-02fa-4574-8949-f7c1b5fccd15
|
|
- --oidc-client-secret=[redacted]
|
|
command: kubectl
|
|
EOF
|
|
fi
|
|
|
|
|