需要添加一些关于pod相关的环境变量,以哪种方式比较好?

  • Choerodon平台版本:0.16.0

  • 运行环境:自主搭建

  • 问题描述:

    将java应用编译后以镜像的方式发布到kubernetes里,现在应用需要获取运行java应用的pod相关的信息,例如需要获取pod的ip,在choerodon中应该以那种方式实现比较好?

    如:如果手动通过编写deployment.yaml可以想如下这样实现

    env:
    - name: MY_POD_NAME
      valueFrom:
        fieldRef:
          fieldPath: metadata.name
    - name: MY_POD_NAMESPACE
      valueFrom:
        fieldRef:
          fieldPath: metadata.namespace
    - name: MY_POD_IP
      valueFrom:
        fieldRef:
          fieldPath: status.podIP

在choerodon是修改chart下的value.yaml还是通过configmap?

直接在chart目录下的template deployment.yaml中修改,因为这些pod变量名都是固定的,所以写死就行,在保留已有的env循环的基础上增加你要获取的pod变量值

这样没效果

是不是我的部署配置里没有,每次helm upgrade的时候不会更新deployment?

1.和部署配置没关系哦, 部署配置作用是替换k8s对象模板里面可以变换的value,像你这种固定的不需要写在values里面

2.改好文件之后,重新跑完ci生成版本,升级实例,按照正常的逻辑就会有这些环境变量了

3.你可以去集群里面helm get 实例名,看渲染出来生成的deployment文件是啥样的

我是写到deployment.yaml文件里的,完整内容如下:

$ cat deployment.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: {{ .Release.Name }}
  labels:
{{ include "service.labels.standard" . | indent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
{{ include "service.labels.standard" . | indent 6 }}
  template:
    metadata:
      labels:
{{ include "service.labels.standard" . | indent 8 }}
{{ include "service.microservice.labels" . | indent 8 }}
      annotations:
    spec:
      containers:
        - name: {{ .Release.Name }}
          image: "{{ .Values.image.repository }}:{{ .Chart.Version }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
{{- range $name, $value := .Values.env.open }}
{{- if not (empty $value) }}
          - name: {{ $name | quote }}
            value: {{ $value | quote }}
{{- end }}
{{- end }}
          - name: MY_NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          - name: MY_POD_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          - name: HOST_IP
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: MY_POD_SERVICE_ACCOUNT
            valueFrom:
              fieldRef:
                fieldPath: spec.serviceAccountName

          ports:
            - name: http
              containerPort: {{ .Values.service.port }}
              protocol: TCP
          resources:
{{ toYaml .Values.resources | indent 12 }}
          volumeMounts:
            - mountPath: /opt/log
              name: logs-volume
            - name: host-time
              mountPath: /etc/localtime
              readOnly: true
      volumes:
      - name: logs-volume
        hostPath:
          path: {{ .Values.logpath.hostpath }}
      - name: host-time
        hostPath:
          path: /etc/localtime
      imagePullSecrets:
      - name: {{ .Values.image.secretname }}

helm渲染的deployment已经有这部分内容了


[root@dongfang-his docker]# helm get python-api-ed28d
REVISION: 3
RELEASED: Mon May 20 18:51:36 2019
CHART: python-api-2019.5.20-184919-dev
USER-SUPPLIED VALUES:
{}
COMPUTED VALUES:
deployment:
  managementPort: 18081
env:
  open:
    JAVA_OPTS: -Xms1024m -Xmx1024m
image:
  pullPolicy: Always
  repository: registry.dongfang.cn/operation-dongfang/python-api
  secretname: myregistrykey
ingress:
  enabled: false
logpath:
  hostpath: /opt/logs/test/python-api
persistence:
  enabled: false
replicaCount: 1
resources:
  limits:
    memory: 2Gi
  requests:
    memory: 1Gi
service:
  enabled: true
  name: python-api
  port: 8080
  type: ClusterIP

HOOKS:
MANIFEST:

---
# Source: python-api/python-api-ed28d
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    choerodon.io: 0.16.0
    choerodon.io/application: python-api
    choerodon.io/network: service
    choerodon.io/no_delete: "true"
    choerodon.io/release: python-api-ed28d
    choerodon.io/version: 2019.5.20-184919-dev
  name: python-api
  namespace: dev
spec:
  ports:
  - name: http
    port: 8080
    protocol: TCP
    targetPort: http
  selector:
    choerodon.io/application: python-api
    choerodon.io/release: python-api-ed28d
    choerodon.io/version: 2019.5.20-184919-dev
  type: ClusterIP
status:
  loadBalancer: {}
---
# Source: python-api/python-api-ed28d
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    choerodon.io: 0.16.0
    choerodon.io/application: python-api
    choerodon.io/release: python-api-ed28d
    choerodon.io/version: 2019.5.20-184919-dev
  name: python-api-ed28d
  namespace: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      choerodon.io/application: python-api
      choerodon.io/release: python-api-ed28d
      choerodon.io/version: 2019.5.20-184919-dev
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        choerodon.io: 0.16.0
        choerodon.io/application: python-api
        choerodon.io/release: python-api-ed28d
        choerodon.io/service: python-api
        choerodon.io/version: 2019.5.20-184919-dev
    spec:
      containers:
      - env:
        - name: JAVA_OPTS
          value: -Xms1024m -Xmx1024m
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: HOST_IP
          valueFrom:
            fieldRef:
              fieldPath: status.hostIP
        - name: MY_POD_SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        image: registry.dongfang.cn/operation-dongfang/python-api:2019.5.20-184919-dev
        imagePullPolicy: Always
        name: python-api-ed28d
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP
        resources:
          limits:
            memory: 2Gi
          requests:
            memory: 1Gi
        volumeMounts:
        - mountPath: /opt/log
          name: logs-volume
        - mountPath: /etc/localtime
          name: host-time
          readOnly: true
      imagePullSecrets:
      - name: myregistrykey
      volumes:
      - hostPath:
          path: /opt/logs/test/python-api
        name: logs-volume
      - hostPath:
          path: /etc/localtime
        name: host-time
status: {}


但是直接通过kubectl get deployment查看是没有的

[root@dongfang-his docker]# kubectl get deployments -n dev python-api-ed28d -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2019-05-20T07:35:54Z"
  generation: 1
  labels:
    choerodon.io: 0.16.0
    choerodon.io/application: python-api
    choerodon.io/release: python-api-ed28d
    choerodon.io/version: 2019.5.20-153133-dev
  name: python-api-ed28d
  namespace: dev
  resourceVersion: "2344711"
  selfLink: /apis/extensions/v1beta1/namespaces/dev/deployments/python-api-ed28d
  uid: e6a768f1-7ad1-11e9-8298-20040ff6e100
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      choerodon.io/application: python-api
      choerodon.io/release: python-api-ed28d
      choerodon.io/version: 2019.5.20-153133-dev
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        choerodon.io: 0.16.0
        choerodon.io/application: python-api
        choerodon.io/release: python-api-ed28d
        choerodon.io/service: python-api
        choerodon.io/version: 2019.5.20-153133-dev
    spec:
      containers:
      - env:
        - name: JAVA_OPTS
          value: -Xms1024m -Xmx1024m
        image: registry.dongfang.cn/operation-dongfang/python-api:2019.5.20-153133-dev
        imagePullPolicy: Always
        name: python-api-ed28d
        ports:
        - containerPort: 8080
          name: http
          protocol: TCP
        resources:
          limits:
            memory: 2Gi
          requests:
            memory: 1Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /opt/log
          name: logs-volume
        - mountPath: /etc/localtime
          name: host-time
          readOnly: true
      dnsPolicy: ClusterFirst
      imagePullSecrets:
      - name: myregistrykey
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - hostPath:
          path: /opt/logs/test/python-api
          type: ""
        name: logs-volume
      - hostPath:
          path: /etc/localtime
          type: ""
        name: host-time
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2019-05-20T07:35:57Z"
    lastUpdateTime: "2019-05-20T07:35:57Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2019-05-20T07:35:54Z"
    lastUpdateTime: "2019-05-20T07:35:57Z"
    message: ReplicaSet "python-api-ed28d-fc44f66b6" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1


你界面上操作实例升级的时候成功了? 我看你helm get 渲染出来的镜像和你运行中的镜像不是一个
helm release的镜像版本

运行中的deployment镜像版本

我看流水线执行汇总都是正常的

你点击详情看下生成实例的版本

实例这里出错了,但是后面的貌似都是成功的

嗯 helm upgrade的时候失败了

helm upgrade失败的原因看得出来是什么问题么?为什么后续的流水线执行的又是成功的?难道是镜像版本还是旧的?

choerodon-agent的日志如下:

I0520 15:33:32.229651       6 client.go:173] send response key env:dev, type status_sync_event
I0520 15:33:32.247141       6 worker.go:143] get command: cluster:3.env:dev.envId:7/status_sync
I0520 15:33:43.920601       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:33:44.493570       6 daemon.go:339] env:dev git_ops_sync_event:
{"id":0,"resourceIDs":[],"type":"sync","startedAt":"2019-05-20T07:33:44.440986861Z","endedAt":"2019-05-20T07:33:44.440986861Z","metadata":{"commit":"5f239f5de9a0f198a00cba1
ceb47711a40154594"}}
I0520 15:33:44.493750       6 client.go:173] send response key env:dev, type git_ops_sync_event
I0520 15:34:13.964510       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:34:44.009470       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:35:14.054650       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:35:41.828738       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD 5f239f5de9a
0f198a00cba1ceb47711a40154594, previous HEAD 5f239f5de9a0f198a00cba1ceb47711a40154594
I0520 15:35:44.102293       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:35:52.576439       6 worker.go:143] get command: cluster:3.env:dev.envId:7/git_ops_sync
I0520 15:35:52.901468       6 client.go:173] send response key cluster:3.env:dev.envId:7, type git_ops_sync
I0520 15:35:52.903662       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD 1237a235020
c89e9eb618e9c176bc9a2ef4a4675, previous HEAD 5f239f5de9a0f198a00cba1ceb47711a40154594
W0520 15:35:52.951585       6 client.go:667] label object not matched: &{map[apiVersion:choerodon.io/v1alpha1 kind:C7NHelmRelease metadata:map[name:python-api-ed28d namespa
ce:dev] spec:map[chartName:python-api chartVersion:2019.5.20-153133-dev repoUrl:http://chart.dongfang.cn/operation/dongfang/ values:{}]]}
I0520 15:35:52.967243       6 sync.go:125] cmd: apply, args: , cout: 1
I0520 15:35:53.410437       6 sync.go:178] kubectl apply -n dev -f - , took 443.130338ms, err: <nil>, output: c7nhelmrelease "python-api-ed28d" created
I0520 15:35:53.410596       6 daemon.go:339] env:dev git_ops_sync_event:
{"id":0,"resourceIDs":["c7nhelmrelease/python-api-ed28d"],"type":"sync","startedAt":"2019-05-20T07:35:52.90370227Z","endedAt":"2019-05-20T07:35:52.90370227Z","metadata":{"c
ommit":"1237a235020c89e9eb618e9c176bc9a2ef4a4675","filesCommit":[{"file":"release-python-api-ed28d.yaml","commit":"1237a235020c89e9eb618e9c176bc9a2ef4a4675"}],"resourceComm
its":[{"resourceId":"c7nhelmrelease/python-api-ed28d","file":"release-python-api-ed28d.yaml","commit":"1237a235020c89e9eb618e9c176bc9a2ef4a4675"}]}}
I0520 15:35:53.410799       6 client.go:173] send response key env:dev, type git_ops_sync_event
I0520 15:35:53.426405       6 c7nhelmrelease_controller.go:288] release python-api-ed28d install
I0520 15:35:53.426533       6 worker.go:143] get command: env:dev.release:python-api-ed28d/helm_release_pre_install
I0520 15:35:53.519886       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 15:35:53.520861       6 client.go:173] send response key env:dev.release:python-api-ed28d, type helm_release_pre_install
I0520 15:35:53.520896       6 worker.go:143] get command: env:dev.release:python-api-ed28d/helm_install_release
I0520 15:35:53.542033       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 15:35:54.144100       6 daemon.go:321] dev tag: agent-sync, old: 5f239f5de9a0f198a00cba1ceb47711a40154594, new: 1237a235020c89e9eb618e9c176bc9a2ef4a4675
I0520 15:35:54.511075       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD 1237a235020
c89e9eb618e9c176bc9a2ef4a4675, previous HEAD 1237a235020c89e9eb618e9c176bc9a2ef4a4675
I0520 15:35:54.797298       6 client.go:173] send response key env:dev.Service:python-api, type resource_update
I0520 15:35:54.818430       6 client.go:173] send response key env:dev.release:python-api-ed28d.Deployment:python-api-ed28d, type resource_update
I0520 15:35:54.840763       6 client.go:173] send response key env:dev.release:python-api-ed28d.ReplicaSet:python-api-ed28d-fc44f66b6, type resource_update
I0520 15:35:54.848874       6 client.go:173] send response key env:dev.release:python-api-ed28d.Deployment:python-api-ed28d, type resource_update
I0520 15:35:54.851087       6 client.go:173] send response key env:dev.release:python-api-ed28d.Pod:python-api-ed28d-fc44f66b6-5xkc2, type resource_update
I0520 15:35:54.854786       6 client.go:173] send response key env:dev.release:python-api-ed28d.ReplicaSet:python-api-ed28d-fc44f66b6, type resource_update
I0520 15:35:54.870393       6 client.go:173] send response key env:dev.release:python-api-ed28d, type helm_install_release
I0520 15:35:54.875192       6 client.go:173] send response key env:dev.release:python-api-ed28d.Deployment:python-api-ed28d, type resource_update
I0520 15:35:54.875380       6 client.go:173] send response key env:dev.release:python-api-ed28d.ReplicaSet:python-api-ed28d-fc44f66b6, type resource_update
I0520 15:35:54.886429       6 client.go:173] send response key env:dev.release:python-api-ed28d.Deployment:python-api-ed28d, type resource_update
I0520 15:35:54.904604       6 client.go:173] send response key env:dev.release:python-api-ed28d.Event:python-api-ed28d-fc44f66b6-5xkc2.15a053ee7ddb0052, type release_pod_ev
ent
I0520 15:35:54.910532       6 client.go:173] send response key env:dev.release:python-api-ed28d.Pod:python-api-ed28d-fc44f66b6-5xkc2, type resource_update
I0520 15:35:56.485311       6 client.go:173] send response key env:dev.release:python-api-ed28d.Event:python-api-ed28d-fc44f66b6-5xkc2.15a053eede586b26, type release_pod_ev
ent
I0520 15:35:56.631847       6 client.go:173] send response key env:dev.release:python-api-ed28d.Event:python-api-ed28d-fc44f66b6-5xkc2.15a053eee74a67a9, type release_pod_ev
ent
I0520 15:35:56.874679       6 client.go:173] send response key env:dev.release:python-api-ed28d.Event:python-api-ed28d-fc44f66b6-5xkc2.15a053eef5ba8b44, type release_pod_ev
ent
I0520 15:35:57.179532       6 client.go:173] send response key env:dev.release:python-api-ed28d.Event:python-api-ed28d-fc44f66b6-5xkc2.15a053ef07e9921b, type release_pod_ev
ent
I0520 15:35:57.904004       6 client.go:173] send response key env:dev.release:python-api-ed28d.Pod:python-api-ed28d-fc44f66b6-5xkc2, type resource_update
I0520 15:35:57.909648       6 client.go:173] send response key env:dev.release:python-api-ed28d.ReplicaSet:python-api-ed28d-fc44f66b6, type resource_update
I0520 15:35:57.925055       6 client.go:173] send response key env:dev.release:python-api-ed28d.Deployment:python-api-ed28d, type resource_update
I0520 15:36:14.150871       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:36:32.229900       6 client.go:173] send response key env:dev, type status_sync_event
I0520 15:36:32.245218       6 worker.go:143] get command: cluster:3.env:dev.envId:7/status_sync
I0520 15:36:44.194996       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:37:00.350423       6 client.go:173] send response key env:dev.Service:python-api, type resource_update
I0520 15:37:14.241744       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:37:44.296660       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:38:14.341170       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:38:44.388377       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:38:56.026429       6 worker.go:143] get command: cluster:3.env:dev.envId:7/git_ops_sync
I0520 15:38:56.364245       6 client.go:173] send response key cluster:3.env:dev.envId:7, type git_ops_sync
I0520 15:38:56.366513       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD aa0bf69deb2
482ab8585a2b260c4f519898a7b34, previous HEAD 1237a235020c89e9eb618e9c176bc9a2ef4a4675
I0520 15:38:56.427342       6 sync.go:125] cmd: delete, args: , cout: 1
I0520 15:38:57.429658       6 sync.go:178] kubectl delete -n dev -f - , took 1.002246883s, err: <nil>, output: c7nhelmrelease "python-api-e7d2f" deleted
I0520 15:38:57.429760       6 daemon.go:339] env:dev git_ops_sync_event:
{"id":0,"resourceIDs":[],"type":"sync","startedAt":"2019-05-20T07:38:56.366551126Z","endedAt":"2019-05-20T07:38:56.366551126Z","metadata":{"commit":"aa0bf69deb2482ab8585a2b
260c4f519898a7b34"}}
I0520 15:38:57.429953       6 client.go:173] send response key env:dev, type git_ops_sync_event
E0520 15:38:57.434465       6 c7nhelmrelease_controller.go:265] C7NHelmReleases 'dev/python-api-e7d2f' in work queue no longer exists
I0520 15:38:57.434550       6 c7nhelmrelease_controller.go:267] release python-api-e7d2f delete
I0520 15:38:57.434596       6 worker.go:143] get command: env:dev.release:python-api-e7d2f/helm_release_delete
E0520 15:38:57.452528       6 error.go:10] delete release python-api-e7d2f: rpc error: code = Unknown desc = release: "python-api-e7d2f" not found
I0520 15:38:57.452602       6 client.go:173] send response key env:dev.release:python-api-e7d2f, type helm_release_delete_failed
I0520 15:38:58.182515       6 daemon.go:321] dev tag: agent-sync, old: 1237a235020c89e9eb618e9c176bc9a2ef4a4675, new: aa0bf69deb2482ab8585a2b260c4f519898a7b34
I0520 15:38:58.520017       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD aa0bf69deb2
482ab8585a2b260c4f519898a7b34, previous HEAD aa0bf69deb2482ab8585a2b260c4f519898a7b34
I0520 15:39:14.435492       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:39:32.230227       6 client.go:173] send response key env:dev, type status_sync_event
I0520 15:39:32.247188       6 worker.go:143] get command: cluster:3.env:dev.envId:7/status_sync
I0520 15:39:44.480491       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:40:14.529685       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:40:42.173713       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD aa0bf69deb2
482ab8585a2b260c4f519898a7b34, previous HEAD aa0bf69deb2482ab8585a2b260c4f519898a7b34
I0520 15:40:44.569315       6 client.go:173] send response key inter:inter, type node_sync
I0520 15:41:14.607896       6 client.go:173] send response key inter:inter, type node_sync


  1. helm upgrade失败的原因里面提示了

  2. 目前流水线触发自动部署任务是保证触发了实例新建或者实例升级就设置流水线状态成功了,如若后续有错误目前没有做状态的更新,后续会考虑加上!

错误提示是deployment的apps selector无效的值

如下为helm的deployment和values文件


$ cat deployment.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: {{ .Release.Name }}
  labels:
{{ include "service.labels.standard" . | indent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
{{ include "service.labels.standard" . | indent 6 }}
  template:
    metadata:
      labels:
{{ include "service.labels.standard" . | indent 8 }}
{{ include "service.microservice.labels" . | indent 8 }}
      annotations:
    spec:
      containers:
        - name: {{ .Release.Name }}
          image: "{{ .Values.image.repository }}:{{ .Chart.Version }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
{{- range $name, $value := .Values.env.open }}
{{- if not (empty $value) }}
          - name: {{ $name | quote }}
            value: {{ $value | quote }}
{{- end }}
{{- end }}
          - name: MY_NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
          - name: MY_POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
          - name: MY_POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          - name: MY_POD_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          - name: HOST_IP
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: MY_POD_SERVICE_ACCOUNT
            valueFrom:
              fieldRef:
                fieldPath: spec.serviceAccountName

          ports:
            - name: http
              containerPort: {{ .Values.service.port }}
              protocol: TCP
          resources:
{{ toYaml .Values.resources | indent 12 }}
          volumeMounts:
            - mountPath: /opt/log
              name: logs-volume
            - name: host-time
              mountPath: /etc/localtime
              readOnly: true
      volumes:
      - name: logs-volume
        hostPath:
          path: {{ .Values.logpath.hostpath }}
      - name: host-time
        hostPath:
          path: /etc/localtime
      imagePullSecrets:
      - name: {{ .Values.image.secretname }}


49387@duhongx MINGW64 /d/gitlab/python-api/charts/python-api/templates (dev)
$ cat ../values.yaml
# Default values for manager-service.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
  repository: registry.dongfang.cn/operation-dongfang/python-api
  pullPolicy: Always
  secretname: myregistrykey

logpath:
  hostpath: /opt/logs/test/python-api

deployment:
  managementPort: 18081

env:
  open:
    ## register-server
    #EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://register-server.io-choerodon:8000/eureka/
    ## config-server
    #SPRING_CLOUD_CONFIG_ENABLED: true
    #SPRING_CLOUD_CONFIG_URI: http://config-server.framework:8010/
    ## mysql
    #SPRING_DATASOURCE_URL: jdbc:mysql://localhost::3306/weimeng-sso_service?useUnicode=true&characterEncoding=utf-8&useSSL=false
    #SPRING_DATASOURCE_USERNAME: choerodon
    #SPRING_DATASOURCE_PASSWORD: 123456
    JAVA_OPTS: "-Xms1024m -Xmx1024m"

#metrics:
#  path: /prometheus
#  group: spring-boot
#  k8s-app: python-api

#logs:
#  parser: spring-boot

persistence:
  enabled: false
  ## A manually managed Persistent Volume and Claim
  ## Requires persistence.enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  # existingClaim:
  # subPath:

service:
  name: python-api
  enabled: true
  type: ClusterIP
  port: 8080

#dubbo:
#sc:
#  enabled: false
#  type: ClusterIP
#  port: 9001

ingress:
  enabled: false

resources:
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources,such as Minikube. If you do want to specify resources,uncomment the following
  # lines,adjust them as necessary,and remove the curly braces after 'resources:'.
  limits:
    # cpu: 100m
    memory: 2Gi
  requests:
    # cpu: 100m
    memory: 1Gi


这个你在helper.tpl里面改过吗?

没有的

$ cat _helpers.tpl
{{/* vim: set filetype=mustache: */}}
{{- /*
service.labels.standard prints the standard service Helm labels.
The standard labels are frequently used in metadata.
*/ -}}
{{- define "service.labels.standard" -}}
choerodon.io/release: {{ .Release.Name | quote }}
choerodon.io/application: {{ .Chart.Name | quote }}
choerodon.io/version: {{ .Chart.Version | quote }}
{{- end -}}
{{- define "service.match.labels" -}}
choerodon.io/release: {{ .Release.Name | quote }}
{{- end -}}
{{- define "service.microservice.labels" -}}
choerodon.io/service: {{ .Chart.Name | quote }}
{{- end -}}


从你的文件截图看貌似是没有问题的,可以仔细检查下文件,看下deployment文件的commit记录,看下这次版本文件更改了啥,是不是格式还是哪里错了

有时间能否远程帮忙看下?我没改过其他内容,就是加入了一些env的环境变量。

这里有个问题,流水线执行总览里都是正常的

但是实例里出错了,后续也不会再更新

目前的实例部署后后续更新存在bug,我重新使用同一个应用重新部署一次,只是将servicename修改为python-api1,然后部署就正常了,choerodon-agent的日志如下:

I0520 21:04:27.399732       6 worker.go:143] get command: cluster:3.env:dev.envId:7/git_ops_sync
I0520 21:04:27.737986       6 client.go:173] send response key cluster:3.env:dev.envId:7, type git_ops_sync
I0520 21:04:27.741001       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD ba1b9f3111f335383be81feec7e82ffc636701fc, previous HEAD 293675babb7ffdb350de313d391ac93fb1826ca2
W0520 21:04:28.750552       6 client.go:667] label object not matched: &{map[apiVersion:choerodon.io/v1alpha1 kind:C7NHelmRelease metadata:map[name:python-api-c8911 namespace:dev] spec:map[chartVersion:2019.5.20-184919-dev repoUrl:http://chart.dongfang.cn/operation/dongfang/ values:{} chartName:python-api]]}
I0520 21:04:28.768218       6 sync.go:125] cmd: apply, args: , cout: 1
I0520 21:04:29.119044       6 sync.go:178] kubectl apply -n dev -f - , took 350.753129ms, err: <nil>, output: c7nhelmrelease "python-api-c8911" created
I0520 21:04:29.119239       6 daemon.go:339] env:dev git_ops_sync_event:
{"id":0,"resourceIDs":["c7nhelmrelease/python-api-c8911"],"type":"sync","startedAt":"2019-05-20T13:04:27.741031955Z","endedAt":"2019-05-20T13:04:27.741031955Z","metadata":{"commit":"ba1b9f3111f335383be81feec7e82ffc636701fc","filesCommit":[{"file":"release-python-api-c8911.yaml","commit":"ba1b9f3111f335383be81feec7e82ffc636701fc"}],"resourceCommits":[{"resourceId":"c7nhelmrelease/python-api-c8911","file":"release-python-api-c8911.yaml","commit":"ba1b9f3111f335383be81feec7e82ffc636701fc"}]}}
I0520 21:04:29.119389       6 client.go:173] send response key env:dev, type git_ops_sync_event
I0520 21:04:29.135409       6 c7nhelmrelease_controller.go:288] release python-api-c8911 install
I0520 21:04:29.135552       6 worker.go:143] get command: env:dev.release:python-api-c8911/helm_release_pre_install
I0520 21:04:29.192134       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 21:04:29.194321       6 client.go:173] send response key env:dev.release:python-api-c8911, type helm_release_pre_install
I0520 21:04:29.194419       6 worker.go:143] get command: env:dev.release:python-api-c8911/helm_install_release
I0520 21:04:29.225983       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 21:04:29.830483       6 daemon.go:321] dev tag: agent-sync, old: 293675babb7ffdb350de313d391ac93fb1826ca2, new: ba1b9f3111f335383be81feec7e82ffc636701fc
I0520 21:04:30.176542       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD ba1b9f3111f335383be81feec7e82ffc636701fc, previous HEAD ba1b9f3111f335383be81feec7e82ffc636701fc
W0520 21:04:30.478343       6 service_controller.go:164] service 'dev/python-api' in work queue no longer exists
I0520 21:04:30.478397       6 client.go:173] send response key env:dev.Service:python-api, type resource_delete
E0520 21:04:30.565566       6 error.go:19] install release python-api-c8911: rpc error: code = Unknown desc = release python-api-c8911 failed: services "python-api" already exists
I0520 21:04:30.565640       6 client.go:173] send response key env:dev.release:python-api-c8911.commit:ba1b9f3111f335383be81feec7e82ffc636701fc, type helm_release_install_failed
I0520 21:04:42.192737       6 client.go:173] send response key inter:inter, type node_sync
I0520 21:05:04.680450       6 worker.go:143] get command: cluster:3.env:dev.envId:7/git_ops_sync
I0520 21:05:04.993545       6 client.go:173] send response key cluster:3.env:dev.envId:7, type git_ops_sync
I0520 21:05:04.995349       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD cb0bb13eff5001267598de61178e422e04678856, previous HEAD ba1b9f3111f335383be81feec7e82ffc636701fc
W0520 21:05:05.057829       6 client.go:667] label object not matched: &{map[apiVersion:choerodon.io/v1alpha1 kind:C7NHelmRelease metadata:map[namespace:dev name:python-api-c8911] spec:map[chartName:python-api chartVersion:2019.5.20-184919-dev repoUrl:http://chart.dongfang.cn/operation/dongfang/ values:service:
  name: python-api1]]}
I0520 21:05:05.070575       6 sync.go:125] cmd: apply, args: , cout: 1
I0520 21:05:05.424904       6 sync.go:178] kubectl apply -n dev -f - , took 354.271612ms, err: <nil>, output: c7nhelmrelease "python-api-c8911" configured
I0520 21:05:05.425034       6 daemon.go:339] env:dev git_ops_sync_event:
{"id":0,"resourceIDs":["c7nhelmrelease/python-api-c8911"],"type":"sync","startedAt":"2019-05-20T13:05:04.995391804Z","endedAt":"2019-05-20T13:05:04.995391804Z","metadata":{"commit":"cb0bb13eff5001267598de61178e422e04678856","filesCommit":[{"file":"release-python-api-c8911.yaml","commit":"cb0bb13eff5001267598de61178e422e04678856"}],"resourceCommits":[{"resourceId":"c7nhelmrelease/python-api-c8911","file":"release-python-api-c8911.yaml","commit":"cb0bb13eff5001267598de61178e422e04678856"}]}}
I0520 21:05:05.425220       6 client.go:173] send response key env:dev, type git_ops_sync_event
I0520 21:05:05.439523       6 c7nhelmrelease_controller.go:288] release python-api-c8911 install
I0520 21:05:05.439629       6 worker.go:143] get command: env:dev.release:python-api-c8911/helm_release_pre_install
I0520 21:05:05.466863       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 21:05:05.468375       6 client.go:173] send response key env:dev.release:python-api-c8911, type helm_release_pre_install
I0520 21:05:05.468405       6 worker.go:143] get command: env:dev.release:python-api-c8911/helm_install_release
I0520 21:05:05.499734       6 utils.go:117] info: manifest "python-api/templates/ingress.yaml" is empty. Skipping.
I0520 21:05:05.609396       6 client.go:173] send response key env:dev.Service:python-api1, type resource_update
I0520 21:05:05.614638       6 client.go:173] send response key env:dev.release:python-api-c8911.Deployment:python-api-c8911, type resource_update
I0520 21:05:05.632598       6 client.go:173] send response key env:dev.release:python-api-c8911.ReplicaSet:python-api-c8911-b969fbfc8, type resource_update
I0520 21:05:05.646351       6 client.go:173] send response key env:dev.release:python-api-c8911.Deployment:python-api-c8911, type resource_update
I0520 21:05:05.664257       6 client.go:173] send response key env:dev.release:python-api-c8911.Pod:python-api-c8911-b969fbfc8-q2s67, type resource_update
I0520 21:05:05.668158       6 client.go:173] send response key env:dev.release:python-api-c8911.Deployment:python-api-c8911, type resource_update
I0520 21:05:05.681229       6 client.go:173] send response key env:dev.release:python-api-c8911, type helm_install_release
I0520 21:05:05.686707       6 client.go:173] send response key env:dev.release:python-api-c8911.ReplicaSet:python-api-c8911-b969fbfc8, type resource_update
I0520 21:05:05.703798       6 client.go:173] send response key env:dev.release:python-api-c8911.Event:python-api-c8911-b969fbfc8-q2s67.15a065e51602e5a6, type release_pod_event
I0520 21:05:05.709170       6 client.go:173] send response key env:dev.release:python-api-c8911.ReplicaSet:python-api-c8911-b969fbfc8, type resource_update
I0520 21:05:05.714490       6 client.go:173] send response key env:dev.release:python-api-c8911.Deployment:python-api-c8911, type resource_update
I0520 21:05:05.733687       6 client.go:173] send response key env:dev.release:python-api-c8911.Pod:python-api-c8911-b969fbfc8-q2s67, type resource_update
I0520 21:05:06.161883       6 daemon.go:321] dev tag: agent-sync, old: ba1b9f3111f335383be81feec7e82ffc636701fc, new: cb0bb13eff5001267598de61178e422e04678856
I0520 21:05:06.498862       6 daemon.go:81] env: dev get refreshed event for git repository ssh://git@dev/operation-dongfang-gitops/dev.git, branch master, HEAD cb0bb13eff5001267598de61178e422e04678856, previous HEAD cb0bb13eff5001267598de61178e422e04678856
I0520 21:05:07.299009       6 client.go:173] send response key env:dev.release:python-api-c8911.Event:python-api-c8911-b969fbfc8-q2s67.15a065e576d4924f, type release_pod_event
I0520 21:05:07.589355       6 client.go:173] send response key env:dev.release:python-api-c8911.Event:python-api-c8911-b969fbfc8-q2s67.15a065e5881d2651, type release_pod_event
I0520 21:05:07.919862       6 client.go:173] send response key env:dev.release:python-api-c8911.Event:python-api-c8911-b969fbfc8-q2s67.15a065e599b7dde8, type release_pod_event
I0520 21:05:08.151955       6 client.go:173] send response key env:dev.release:python-api-c8911.Event:python-api-c8911-b969fbfc8-q2s67.15a065e5a999c412, type release_pod_event
I0520 21:05:08.555835       6 client.go:173] send response key env:dev.release:python-api-c8911.Pod:python-api-c8911-b969fbfc8-q2s67, type resource_update
I0520 21:05:08.574154       6 client.go:173] send response key env:dev.release:python-api-c8911.ReplicaSet:python-api-c8911-b969fbfc8, type resource_update
I0520 21:05:08.577466       6 client.go:173] send response key env:dev.release:python-api-c8911.Deployment:python-api-c8911, type resource_update
I0520 21:05:12.236017       6 client.go:173] send response key inter:inter, type node_sync

这次环境变量获取也正常了