Simple API Python avec un endpoint type Hello World.
- L'image affichée peut être personalisée via la variable d'environnement
IMAGE_URL
. - Un champ supplémentaire peut être affiché via la variable d'environnement
SECRET_VALUE
(la variable d'environnement sera affichée).
L'intégration de Vault Secrets avec GitHub est hyper facile car 100% managée (partenariat GitHub / Vault).
Pour héberger l'image de cette application (par défaut nommée helloworld
).
My Account > Security > New Access Token
Définir Access Permissions à « Read, Write » :
- Read pour pull l'image
- Write pour push l'image
On garde ça de côté.
L'appeler par exemple docker
.
Les appeler par exemple docker_hub_username
et docker_hub_access_token
.
Y mettre les bonnes valeurs.
Sélectionnez le bon dépôt.
Vérifier que le secret est correctement synced dans GitHub.
Peut-être le nom de vos secrets et le nom de votre private repository.
Éventuellement, ne buildez que pour votre architecture afin d'accélérer l'exécution du pipeline (la step de build).
Ça fonctionne ? Le pipeline est vert ? Votre image Docker est bien mise à jour ?
Testez aussi en local.
docker run --rm -p 80:80 <image>
Intégration moins facile car le cluster est self-hosted.
Avec l'outil de votre choix : Kind, Minikube, k3s, ...
En suivant la documentation officielle.
Au niveau de l'organisation. Avec le role viewer. L'appeler par exemple k8s-vault-secret-operator
.
Générer une clé associée à ce Service Principal.
Noter le Client ID et le Client Secret.
bd4pi2PHCFIv2eGyq7lJAmtALp06KaRT 6W2_SoguIVjHLW21J6ZrsV4qaJ6lYN8cMscY4Pn-C7oODbWexZtJNapyESWfUai6
Parce qu'il en faut bien 1. Celui qui permettra à Vault de gérer tous les autres.
Adaptez les variables avec la valeur du Client ID et du Client Secret.
kubectl create secret generic vso-service-principal \
--namespace vault-secrets-operator-system \
--from-literal=clientID=$HCP_CLIENT_ID \
--from-literal=clientSecret=$HCP_CLIENT_SECRET
helm repo add hashicorp https://helm.releases.hashicorp.com
helm upgrade --install vault-secrets-operator hashicorp/vault-secrets-operator \
--namespace vault-secrets-operator-system \
--create-namespace
Adaptez le fichier de values du chart Helm : manifests/vault-secret-operator-config/values.yaml
helm upgrade --install vault-secret-operator-config manifests/vault-secret-operator-config \
--namespace vault-secrets-operator-system \
--create-namespace