禁用Kubernetes定制构建中的顺序/排序

omvjsjqw  于 2023-01-20  发布在  Kubernetes
关注(0)|答案(1)|浏览(93)

尝试使用kustomize修补Kubernetes资源。但是,输出中initContainers列表的顺序/序列不同。
例如,输入为

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
    - name: myapp-container
      image: busybox:1.28
      command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
    - name: init-mydb
      image: busybox:1.28
      command: ['sh', '-c', "sleep 3600"]
    - name: init-myservice
      image: busybox:1.28
      command: ['sh', '-c', "sleep 7200"]

修补后,输出变为

apiVersion: v1
kind: Pod
metadata:
  labels:
    app: myapp
  name: myapp-pod
spec:
  containers:
  - command:
    - sh
    - -c
    - echo The app is running! && sleep 3600
    image: busybox:1.28
    name: myapp-container
  initContainers:
  - command:
    - sh
    - -c
    - sleep 7200
    env:
    - name: HTTP_ADDR
      value: https://[$(HOST_IP)]:8501
    image: busybox:1.28
    name: init-myservice
  - command:
    - sh
    - -c
    - sleep 3600
    env:
    - name: HTTP_ADDR
      value: https://[$(HOST_IP)]:8501
    image: busybox:1.28
    name: init-mydb

尝试使用--reorder参数,但没有帮助。
测试版本:

{Version:kustomize/v4.1.3 GitCommit:0f614e92f72f1b938a9171b964d90b197ca8fb68 BuildDate:2021-05-20T20:52:40Z GoOs:linux GoArch:amd64}

kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - source.yaml
patches:
  - path: ./pod-patch.yaml
    target:
      kind: Pod
      name: ".*"

pod-patch.yaml

apiVersion: apps/v1
kind: Pod
metadata:
  name: doesNotMatter
spec:
  initContainers:
    - name: init-myservice
      env:
        - name: HTTP_ADDR
          value: https://[$(HOST_IP)]:8501
    - name: init-mydb
      env:
        - name: HTTP_ADDR
          value: https://[$(HOST_IP)]:8501
4uqofj5v

4uqofj5v1#

这不是问题。顺序不同是因为您在pod-patch.yaml中颠倒了顺序。
source.yaml中,initContainers的阶数是[init-mydb, init-myservice],在pod-patch.yaml中是[init-myservice, init-mydb]

相关问题