将Docker LABEL注入Kubernetes元数据注释中

时间:2018-11-07 18:16:02

标签: docker kubernetes

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

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规范中?

1 个答案:

答案 0 :(得分:0)

无法提取它,但是您可以将其附加到您使用的部署中。例如,如果您使用Helm chart,则可以为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: {}