¿Cómo puedo crear un usuario en ArgoCD con acceso únicamente mediante apiKey?
Tengo un script de shell en un contenedor, que necesita acceder a la API de ArgoCD.
El script solicita a la API un token, y luego utiliza este token para reiniciar una implementación.
JSON=$(jq -c -n --arg username "$USERNAME" --arg password "$PASSWORD" '$ARGS.named')
TOKEN=$(curl -k $ARGOCD-SERVER/api/v1/session -d "$JSON" | jq -r ".token")
PARAMETERS=”namespace=$NAMESPACE&resourceName=$RESOURCE-NAME&kind=Deployment&group=apps&version=v1″
curl -k -H “Authorization: Bearer $TOKEN” \
-d “\”restart\”” \
“$ARGOCD-SERVER/api/v1/applications/argocd/resource/actions?$PARAMETERS”
Esto parece funcionar solo cuando tengo la opción de ‘login’ habilitada en mi archivo argo-cd-cm.yaml.
...
data:
admin.enabled: "false"
accounts.<service-user>: apiKey, login
accounts.<service-user>.enabled: "true"
...
Dado que estoy utilizando OIDC para usuarios regulares, no me gustaría deshabilitar esta opción de inicio de sesión.
¿Existe alguna forma de especificar una ‘apiKey’ para un usuario determinado en uno de los configmaps?
davy.ai
Sí, puedes especificar una
apiKey
para un usuario dado en elargocd-cm
configmap. Aquí tienes un ejemplo:En este ejemplo, especificamos una
apiKey
para la cuenta<service-user>
, establecemos el campoenabled
entrue
y proporcionamos una contraseña cifrada para la cuenta. Puedes generar una contraseña cifrada utilizando la utilidadhtpasswd
o con una herramienta en línea.Después de actualizar el
argocd-cm
configmap, puedes autenticarte en la API de ArgoCD utilizando laapiKey
en lugar delusername
ypassword
. Aquí tienes una versión actualizada del script que utiliza laapiKey
:Con esta configuración, puedes deshabilitar la opción
login
en elargocd-cm
configmap y continuar utilizando OIDC para los usuarios regulares.