将Docker LABEL注入Kubernetes元数据注释



我有一个docker映像,我正在我的Kubernetes集群中运行,该映像有一个带有存储库的标签标签,在构建时添加:

docker build . --label "repo=<repo_name>" tag <tag>

我有一个kubenetes部署,看起来像这样:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
run: my-cool-app
name: my-cool-app
spec:
replicas: 1
selector:
matchLabels:
run: my-cool-app
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
run: my-cool-app
spec:
containers:
- image: <imagename>:v1
name: my-cool-app
resources: {}

我想知道是否可以提取docker图像标签,并将其作为元数据标签添加到我的kubernetes规范中?

不可能提取它,但您可以将它附加到您使用的部署中。例如,如果您使用Helm图表,则可以为metadate和image使用一个变量。你所需要做的就是更新value.yaml。它可能看起来像:

value.yaml

my-cool-app-tag: v1

my-cool-app.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
creationTimestamp: null
labels:
run: my-cool-app
name: my-cool-app
spec:
replicas: 1
selector:
matchLabels:
run: my-cool-app
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
run: my-cool-app
tag-lable: {{ .value.my-cool-app-tag }}
spec:
containers:
- image: <imagename>:{{ .value.my-cool-app-tag }}
name: my-cool-app
resources: {}

最新更新