Pour les futurs lecteurs. Une autre façon de procéder consiste à utiliser un fichier modèle et à générer deployment.yaml
du modèle en utilisant envsubst
.
Fichier modèle :
# template/deployment.tmpl
---
apiVersion: apps/v1
kind: deployment
metadata:
name: strapi-deployment
namespace: strapi
labels:
app: strapi
# deployment specifications
spec:
replicas: 1
selector:
matchLabels:
app: strapi
serviceName: strapi
# pod specifications
template:
metadata:
labels:
app: strapi
# pod blueprints
spec:
containers:
- name: strapi-container
image: registry.gitlab.com/repo-name/image:${IMAGE_TAG}
imagePullPolicy: Always
imagePullSecrets:
- name: gitlab-registry-secret
deploy
scène dans .gitlab-ci.yml
(...)
deploy:
stage: deploy
script:
# deploy resources in k8s cluster
- envsubst < strapi-deployment.tmpl > strapi-deployment.yaml
- kubectl apply -f strapi-deployment.yaml
Comme défini ici image: registry.gitlab.com/repo-name/image:${IMAGE_TAG}
, IMAGE_TAG
est une variable d'environnement définie dans gitlab. envsubst
passerait par strapi-deployment.tmpl
et substituer toute variable qui y est définie et générer strapi-deployment.yaml
fichier.