API token для Argo Workflows#
Создание токена#
Последовательность выполнения#
Создайте следующий скрипт create_argowf_token.sh, который создает API token для пользователя:
#!/bin/bash if [ -z "$1" ]; then echo "ERROR: Please specify service account name." exit 1 fi SA_NAME="$1" if [ -z "$2" ]; then echo "INFO: Privileges set to getdocs-prod namespace" NAMESPACE='getdocs-prod' else NAMESPACE="$2" echo "INFO: Privileges set to $NAMESPACE namespace" fi kubectl -n argo-wf create sa "$SA_NAME" kubectl -n $NAMESPACE create rolebinding "$SA_NAME" --role=argo-workflows-rx --serviceaccount=argo-wf:"$SA_NAME" kubectl -n argo-wf apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: $SA_NAME.service-account-token annotations: kubernetes.io/service-account.name: $SA_NAME type: kubernetes.io/service-account-token EOF ARGO_TOKEN="Bearer $(kubectl -n argo-wf get secret "$SA_NAME.service-account-token" -o=jsonpath='{.data.token}' | base64 --decode)" echo echo "Token for '$SA_NAME': $ARGO_TOKEN"Выполните данный скрипт с указанием имени пользователя
<ACCOUNT_NAME>, для которого создается token:create_argowf_token.sh <ACCOUNT_NAME> <NAMESPACE>Параметр
<NAMESPACE>является опциональным. Если он не передан, token будет создан для стандартного пространства именgetdocs-prod.
Удаление токена#
Последовательность выполнения#
Создайте следующий скрипт delete_argowf_token.sh, который удаляет пользовательский API token:
#!/bin/bash if [ -z "$1" ]; then echo "ERROR: Please specify service account name." exit 1 fi SA_NAME="$1" if [ -z "$2" ]; then echo "INFO: Privileges set to getdocs-prod namespace" NAMESPACE='getdocs-prod' else NAMESPACE="$2" fi kubectl -n argo-wf delete sa "$SA_NAME" kubectl -n $NAMESPACE delete rolebinding "$SA_NAME" kubectl -n argo-wf delete secret $SA_NAME.service-account-token echo echo "Deleted token for '$SA_NAME'"Выполните данный скрипт с указанием имени пользователя
<ACCOUNT_NAME>, чей token необходимо удалить:delete_argowf_token.sh <SERVICE_ACCOUNT_NAME> <NAMESPACE>Параметр
<NAMESPACE>является опциональным. Если он не передан, token будет удален для стандартного пространства именgetdocs-prod.