我正在为我的 k8s 集群寻找 CD 解决方案。现在,在推送带有dev-*
标签的提交后,dockerhub 会创建标记为dev-latest
. 这是我的部署配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-image-backend-local-deployment
labels:
app: my-image
type: web
spec:
replicas: 2
minReadySeconds: 15
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
selector:
matchLabels:
app: my-image
template:
metadata:
labels:
app: my-image
spec:
imagePullSecrets:
- name: regcred
containers:
- name: backend
image: cosmicfruit/my-image:dev-latest
imagePullPolicy: IfNotPresent
envFrom:
- secretRef:
name: my-image-backend-local-secret
ports:
- containerPort: 8000
readinessProbe:
httpGet:
path: /flvby
port: 8000
initialDelaySeconds: 10
periodSeconds: 5
- name: celery
image: cosmicfruit/my-image:dev-latest
imagePullPolicy: IfNotPresent
workingDir: /code
command: ["/code/run/celery.sh"]
envFrom:
- secretRef:
name: my-image-backend-local-secret
- name: redis
image: redis:latest
imagePullPolicy: IfNotPresent
我希望将新图像自动部署到 pod 中,但找不到相关的解决方案。
UPD
我希望在带有dev-0.1.*
(其中 * 是数字)标签的新图像被推送到注册表后自动部署我的图像。在将代码推送并内置到图像中之后,我什么也不想做。我发现了 CD 基金会的一些项目:Jenkins X、Spinnaker 和 Tekton,我想其中一些可以帮助我实现我的想法,但如果我的动物园里没有一只宠物,我会很高兴实现它。