我已经配置了dockerhub,当新的标签<version>出现在GitHub中时,用标签latest和dev-<version>构建一个新的镜像。我不知道如何配置Tekton或任何其他云原生工具,以便在注册表中提供新镜像时自动部署它们。
下面是我的k8s配置:
apiVersion: v1
kind: List
items:
- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
- apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
ports:
- port: 80
targetPort: 8000
selector:
app: my-app
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-local-deployment
labels:
app: my-app
type: web
spec:
replicas: 2
minReadySeconds: 15
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
imagePullSecrets:
- name: regcred
containers:
- name: backend
image: zuber93/my-app:dev-latest
imagePullPolicy: IfNotPresent
envFrom:
- secretRef:
name: my-app-local-secret
ports:
- containerPort: 8000
readinessProbe:
httpGet:
path: /flvby
port: 8000
initialDelaySeconds: 10
periodSeconds: 5
- name: celery
image: zuber93/my-app:dev-latest
imagePullPolicy: IfNotPresent
workingDir: /code
command: [ "/code/run/celery.sh" ]
envFrom:
- secretRef:
name: my-app-local-secret
- name: redis
image: redis:latest
imagePullPolicy: IfNotPresent发布于 2021-02-03 13:55:04
最后,我探索了keel.sh。它可以处理新镜像的出现,并将它们部署到集群中。
发布于 2021-01-16 06:30:43
简单的答案是:要么使用触发器设置一个从dockerhub (https://docs.docker.com/docker-hub/webhooks/)到tekton的webhook。
或者(取决于您的安全性以及您的集群是否可以从www访问)
轮询dockerhub并在检测到新图像时触发tekton。(在k8s中,这可以通过许多不同的方式来完成,简单的即时服务,计划的cronjob等)
因此,您可以选择push或pull。;)
我会问“为什么不直接从你的git repo触发呢?”
https://stackoverflow.com/questions/65743140
复制相似问题