11
11
SECRET_NAME=" "
12
12
13
13
function get_service_account_secret_name() {
14
- SECRET_NAME=$( kubectl get ServiceAccount ${SERVICE_ACCOUNT_NAME} -n ${NAMESPACE} -o jsonpath=' {.secrets[0].name}' )
14
+ SECRET_NAME=$( kubectl get ServiceAccount ${SERVICE_ACCOUNT_NAME} -n ${NAMESPACE} -o jsonpath=' {.secrets[0].name}' ) || exit 1
15
15
if [[ -z ${SECRET_NAME} ]]; then
16
16
echo " Creating new ServiceAccount token"
17
17
# create secret for service account
@@ -26,7 +26,7 @@ type: kubernetes.io/service-account-token
26
26
EOF
27
27
)
28
28
SECRET_NAME=$( echo ${SECRET_NAME} | sed s@secret/@@g | sed s/\ created//g)
29
- kubectl patch ServiceAccount ${SERVICE_ACCOUNT_NAME} -n ${NAMESPACE} --patch " {\" secrets\" : [{\" name\" : \" ${SECRET_NAME} \" }]}"
29
+ kubectl patch ServiceAccount ${SERVICE_ACCOUNT_NAME} -n ${NAMESPACE} --patch " {\" secrets\" : [{\" name\" : \" ${SECRET_NAME} \" }]}" || exit 1
30
30
echo " Created ServiceAccount sercret ${SECRET_NAME} "
31
31
else
32
32
echo " Found ServiceAccount secret ${SECRET_NAME} "
@@ -48,20 +48,21 @@ NAMESPACE=$(cat ${SERVICEACCOUNT}/namespace)
48
48
CACERT=${SERVICEACCOUNT} /ca.crt
49
49
50
50
# get ServiceAccount token
51
- get_service_account_secret_name
51
+ get_service_account_secret_name || exit 1
52
52
BEARER_TOKEN=$( kubectl get secret ${SECRET_NAME} -n ${NAMESPACE} -o jsonpath=' {.data.token}' | base64 -d)
53
53
54
54
# write KUBE_COPNFIG_DATA to local file
55
55
CLUSTER_NAME=$( echo ${SERVER} | sed s/' http[s]\?:\/\/' //)
56
- kubectl config set-cluster " ${CLUSTER_NAME} " --server=" ${SERVER} " --certificate-authority=" ${CACERT} "
57
- kubectl config set-credentials " ${SERVICE_ACCOUNT_NAME} " --token " ${BEARER_TOKEN} "
58
- kubectl config set-context " ${CONTEXT_NAME} " --cluster=" ${CLUSTER_NAME} " --user=" ${SERVICE_ACCOUNT_NAME} "
59
- KUBE_CONFIG_B64=$( kubectl config view --minify --flatten --output json --context=" ${CONTEXT_NAME} " | base64 -w 0)
56
+ kubectl config set-cluster " ${CLUSTER_NAME} " --server=" ${SERVER} " --certificate-authority=" ${CACERT} " || exit 1
57
+ kubectl config set-credentials " ${SERVICE_ACCOUNT_NAME} " --token " ${BEARER_TOKEN} " || exit 1
58
+ kubectl config set-context " ${CONTEXT_NAME} " --cluster=" ${CLUSTER_NAME} " --user=" ${SERVICE_ACCOUNT_NAME} " || exit 1
59
+
60
+ KUBE_CONFIG=$( kubectl config view --minify --flatten --output json --context=" ${CONTEXT_NAME} " ) || exit 1
61
+ KUBE_CONFIG_B64=` echo -n $KUBE_CONFIG | base64 -w 0`
60
62
61
63
ANNOTATIONS_B64=$( cat /etc/config/annotations.yaml | base64 -w 0)
62
64
LABELS_B64=$( cat /etc/config/labels.yaml | base64 -w 0)
63
65
64
- echo " { \" name\" : \" '${CONTEXT_NAME} '\" , \" kubeConfig\" : \" '${KUBE_CONFIG_B64} '\" , \" annotations\" : \" '${ANNOTATIONS_B64} '\" , \" labels\" : \" '${LABELS_B64} '\" }"
65
66
STATUS_CODE=$( curl -X POST ${INGRESS_URL%/ } /app-proxy/api/clusters \
66
67
-H ' Content-Type: application/json' \
67
68
-H ' Authorization: ' ${CSDP_TOKEN} ' ' \
@@ -82,4 +83,4 @@ if [[ $STATUS_CODE -ge 300 ]]; then
82
83
fi
83
84
84
85
echo " deleting token secret ${CSDP_TOKEN_SECRET} "
85
- kubectl delete secret ${CSDP_TOKEN_SECRET} -n ${NAMESPACE}
86
+ kubectl delete secret ${CSDP_TOKEN_SECRET} -n ${NAMESPACE} || echo " warning: failed deleting secret ${CSDP_TOKEN_SECRET} . you can safely delete this secret manually later with: kubectl delete secret ${CSDP_TOKEN_SECRET} -n ${NAMESPACE} "
0 commit comments