Utiliser buildah dans Cloud Build

L’astuce consiste en l’utilisation d’une image buildah officielle, disponible à l’adresse quay.io/buildah/stable. Je distingue trois étapes dans mon build: la construction de l’image, la récupération de la clef de chiffrement depuis le Secret Manager et enfin, le stockage dans le Container Registry. Ce qui nous donne donc la configuration ci-dessous.

Construction de l’image

# Build image with buildah
- id: 'build'
  name: 'quay.io/buildah/stable'
  args: ['buildah', 'bud', '-t', 'mon-image', '.']
  volumes:
    - name: varlibcontainers
      path: '/var/lib/containers'

Récupération de la clef

# Get public key from secret manager
- id: 'get public key'
  name: gcr.io/cloud-builders/gcloud
  entrypoint: 'bash'
  args: [ '-c', "gcloud secrets versions access latest --secret=pub-key --format='get(payload.data)' | tr '_-' '/+' | base64 -d > pub-key.pem" ]

Stockage de l’image

# Push image with buildah
- id: 'push'
  name: 'quay.io/buildah/stable'
  args: ['buildah', 'push', '--encryption-key', 'jwe:./pub-key.pem', 'mon-image', 'eu.gcr.io/$PROJECT_ID/mon-image']
  volumes:
    - name: varlibcontainers
      path: '/var/lib/containers'

Note

Précisons que ce Cloud Build est déclenché en cas de push sur une branche particulière d’un dépôt git, ici hébergé chez GitHub et connecté à la GCP. Ce dépôt contient bien entendu un fichier Dockerfile à sa racine.

Victor

Auteur/autrice : Victor

Ingénieur en informatique de formation et de métier, j’administre ce serveur et son domaine et privilégie l'utilisation de logiciels libres au quotidien. Je construis progressivement mon "cloud" personnel service après service pour conserver un certain contrôle sur mes données numériques.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *