Я пытаюсь сделать CI / CD с GCP cloudbuild.
- У меня готов кластер k8s в GCP. проверьте приведенный ниже манифест развертывания.
- У меня есть cloudbuild.yaml, готовый для создания нового образа и отправки его в реестр и команда для изменения образа развертывания. проверьте облачность yaml ниже.
Раньше я выдвигал образ, используя TAG последний для образа докера, и использовал тот же тег в развертывании, но он не тянулпоследнее изображение, так что теперь я изменил его, чтобы использовать TAG $ COMMIT_SHA . Теперь я не могу выяснить способ передачи нового образа с помощью TAG на основе commit_sha для развертывания.
nginx-deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mynginx
spec:
replicas: 3
minReadySeconds: 50
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: gcr.io/foods-io/cloudbuildtest-image:latest
name: nginx
ports:
- containerPort: 80
cloudbuild.yaml
steps:
#step1
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/cloudbuildtest-image:$COMMIT_SHA', '.' ]
#step 2
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/cloudbuildtest-image:$COMMIT_SHA']
#STEP-3
- name: 'gcr.io/cloud-builders/kubectl'
args: ['set', 'image', 'deployment/mynginx', 'nginx=gcr.io/foods-io/cloudbuildtest-image:$COMMIT_SHA']
env:
- 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=cloudbuild-test'
images:
- 'gcr.io/$PROJECT_ID/cloudbuildtest-image'
Примечание. Повторяю ранее, я использовал последний тег на изображении и както же самое в развертывании, что я ожидал получить новый образ с помощью 3-го шага в облачной сборке, но этого не произошло, поэтому я внес вышеуказанные изменения в TAG, но теперь задаюсь вопросом, как мне внести изменения в манифест развертывания. Здесь используется только решение helm ?