<p>рд╣реЗрд▓реНрдо рдЕрдкрдЧреНрд░реЗрдб spec.clusterIP рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдЕрдорд╛рдиреНрдп рдорд╛рди: "": рдлрд╝реАрд▓реНрдб рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ</p>

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  64рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: helm/helm

рдЬрдм рд╣реЗрд▓реНрдо рдЕрдкрдЧреНрд░реЗрдб рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ ("рдореЗрд░реА-рд╕реЗрд╡рд╛" "рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА: рдХреЛрдИ рдирд╣реАрдВ" рд╕реЗ "рдЯрд╛рдЗрдк: рд▓реЛрдбрдмреИрд▓реЗрдВрд╕рд░" рдмрд┐рдирд╛ рдлреАрд▓реНрдб рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ)

Error: UPGRADE FAILED: Service "my-service" is invalid: spec.clusterIP: Invalid value: "": field is immutable 

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рд╕рднреА рдкреЙрдбреНрд╕ рдЕрднреА рднреА рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ "рдореЗрд░реА-рд╕реЗрд╡рд╛" рдкреНрд░рдХрд╛рд░ рдирдП рдкреНрд░рдХрд╛рд░ "рд▓реЛрдбрдмреЗрд▓рд░" рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрдЧреНрд░реЗрдб рдлреЗрд▓ рдХреНрдпреЛрдВ рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐ рд╣реЗрд▓реНрдо рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рдкрддрд╡рд╛рд░ рдЕрднреА рднреА рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдХреЗ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ / рдкреЙрдбреНрд╕ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЗрд▓рдо рдХреЛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ рд╣реЗрд▓реНрдо рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рдПрдХ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рд╕рднреА рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдпрд╛ рдХреЛрдИ рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдЙрдореНрдореАрдж рдЧрд▓рдд рд╣реЛ рд╕рдХрддреА рд╣реИред

рдФрд░ рдЕрдЧрд░ рд╣рдо рдХрднреА рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП "рдорд╛рдп-рд╕рд░реНрд╡рд┐рд╕" рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдФрд░ рдЕрдЧрд░ рдореИрдВ --dry-run рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ helm рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдЧ рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЕрдкрдЧреНрд░реЗрдб рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реЗрд╡рд╛ рдЕрднреА рднреА рдЕрдкрдЧреНрд░реЗрдб рд╣реЛ рдЬрд╛рддреА рд╣реИред

helm version рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

kubectl version рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.10-gke.27", GitCommit:"145f9e21a4515947d6fb10819e5a336aff1b6959", GitTreeState:"clean", BuildDate:"2020-02-21T18:01:40Z", GoVersion:"go1.12.12b4", Compiler:"gc", Platform:"linux/amd64"}

рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (AKS, GKE, Minikube рдЖрджрд┐):
рдЬреАрдХреЗ рдФрд░ рдорд┐рдВрдХреНрдпреВрдм

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

FYI рдХрд░реЗрдВ, рдУрдкреА рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдореБрджреНрджрд╛ рдФрд░ рдпрд╣рд╛рдБ рдЙрдард╛рдП рдЧрдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ --force рдЕрд▓рдЧ рд╣реИрдВ, рдЕрд╕рддрдд рдореБрджреНрджреЗ рд╣реИрдВред рдЖрдЗрдП рдпрд╣рд╛рдВ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдУрдкреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореБрджреНрджрд╛ https://github.com/helm/helm/issues/7956#issuecomment -620749552 рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдЧрдорди @ n1koo рд╣реИред рдпрд╣ рдПрдХ рд╡реИрдз рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ --force рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред --force , рдЖрдк рд╣реЗрд▓реНрдо рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ PUT рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ, рдЖрдк Kubernetes рдХреЛ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ (рд╕рддреНрдп рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ helm upgrade рд╕реЗ рдЖрдкрдХреЗ рдЪрд╛рд░реНрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ kubectl apply --overwrite рд╕рдорд╛рди рд╣реИред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ IP рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ helm upgrade --force рд╕реЗрд╡рд╛ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ IP рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ (рдпрд╛ рдмрджрд▓рдиреЗ) рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдЕрд╡реИрдз рдСрдкрд░реЗрд╢рди рд╣реИред

рдпрд╣ # 7082 рдореЗрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ --force рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛: Helm рдПрдХ PATCH рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рдЗрд╡ рд╕реНрдЯреЗрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдлреИрд▓рддрд╛ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ IP рдореЗрдВ рдкреИрдЪ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдЧреНрд░реЗрдб рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ IP рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЬрдмрд░рджрд╕реНрддреА рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрд▓реНрдо 2 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ # 7431 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рддреЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреА рд╣реИрдВред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдпрд╣рд╛рдБ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рд╕рднреА 64 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд╛рд░реНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдФрд░ рдХрд┐рд╕ рд╣реЗрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдиреЗ рдХрд┐рдпрд╛ред

рдирдорд╕реНрддреЗ, рдпрд╣рд╛рдБ рдкреНрд░рдЬрдирди рдХрджрдо рд╣реИрдВ
рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рд╕реЗрд╡рд╛рдУрдВ yaml рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреЗред

nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

prometheus.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: prometheus
spec:
  template:
    metadata:
      labels:
        app: prometheus
    spec:
      containers:
      - image: prom/prometheus
        name: prometheus
        ports:
        - containerPort: 9090
        imagePullPolicy: Always
      hostname: prometheus
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: prometheus
spec:
  selector:
    app: prometheus
  clusterIP: None
  ports:
  - name: headless
    port: 9090
    targetPort: 0

рдлрд┐рд░ рд╡рд╣рд╛рдБ рджреЛ рдлрд╝рд╛рдЗрд▓реЗрдВ helm1 / рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдореЗрдВ рдбрд╛рд▓ / рдлрд┐рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕реЗрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдФрд░ рдирдЧреАрдирдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ 1.14.2

# helm upgrade --install test helm1
Release "test" does not exist. Installing it now.
NAME: test
LAST DEPLOYED: Tue Apr 21 20:42:55 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP    35d
prometheus   ClusterIP   None         <none>        9090/TCP   7s

# kubectl describe deployment nginx |grep Image
    Image:        nginx:1.14.2

рдЕрдм nginx.yaml рдХреЗ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг 1.16 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

        image: nginx:1.16

рдФрд░ Prometheus.yaml рдХреЛ LoadBalancer рдореЗрдВ рдмрджрд▓рдХрд░ред

spec:
  selector:
    app: prometheus
  ports:
  - name: "9090"
    port: 9090
    protocol: TCP
    targetPort: 9090
  type: LoadBalancer

рдЕрдм рдЙрдиреНрд╣реЗрдВ рд╣реЗрд▓реНрдо 2 рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдлрд┐рд░ рдЖрдк рдЕрдкрдЧреНрд░реЗрдб рдереНрд░реЛ рдХреЛ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди nginx рд╕реЗрд╡рд╛ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдХреЗ рдЧреБрдЬрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреНрд▓рд╕реНрдЯрд░ рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

# helm upgrade --install test helm2
Error: UPGRADE FAILED: cannot patch "prometheus" with kind Service: Service "prometheus" is invalid: spec.clusterIP: Invalid value: "": field is immutable

# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP    35d
prometheus   ClusterIP   None         <none>        9090/TCP   5m34s

# kubectl describe deployment nginx |grep Image
    Image:        nginx:1.16

рдкрддрд╡рд╛рд░ рд╕реВрдЪреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ

# helm list
NAME    NAMESPACE   REVISION    UPDATED                                 STATUS  CHART                                       APP VERSION
test    default     2           2020-04-21 20:48:20.133644429 -0700 PDT failed  

рдкрддрд╡рд╛рд░ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

# helm history test
REVISION    UPDATED                     STATUS      CHART       APP VERSION DESCRIPTION                                                                                                                                               
1           Tue Apr 21 20:42:55 2020    deployed    helm-helm   1.0.0.6     Install complete                                                                                                                                          
2           Tue Apr 21 20:48:20 2020    failed      helm-helm   1.0.0.6     Upgrade "test" failed: cannot patch "prometheus" with kind Service: Service "prometheus" is invalid: spec.clusterIP: Invalid value: "": field is immutable

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ v3.2.0 рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, v3.1.3 рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣рдорд╛рд░рд╛ рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рд╣реИ

рдореИрдВ рдЕрдкрдиреЗ рд╣реЗрд▓реНрдо 2 -> 3 рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВред рдЬрдм рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЕрдм рддрдХ Nginx Ingress, Prometheus Operator, Graylog рдФрд░ Jaeger рдЪрд╛рд░реНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдореИрдВ рд╕рд┐рд░реНрдл рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд╣реЗрд▓реНрдо рдХреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВ рд▓реЗрдХрд┐рди рдирдЧреНрдиреЗрдХреНрд╕ рдЗрдирдЧреНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ ...

рдмрд╕ рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ https://github.com/helm/helm/issues/6378#issuecomment -557746499 рдЬреЛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

# 6378 рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ред @cablespaghetti рдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЧрд╣рди рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкрд╛рдпрд╛, рдЬрд┐рд╕рдХрд╛ рд╡рд░реНрдгрди рдмрд╣реБрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@GaramNick рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдХреНрдпреЛрдВ рдареАрдХ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЖрдк рдбрд╛рдЙрдирдЧреНрд░реЗрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдП рдЧрдП "рдХреНрдпрд╛" рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@bacongobbler рдпрд╣рд╛рдБ рд░рд╣рддреЗ рд╣реБрдПред рдХреНрдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рддреИрдирд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣реЗрд▓реНрдо 2 рдпрд╛ 3 рдХреЗ рддрд╣рдд рдореИрдВ рдореМрдЬреВрджрд╛ рд░рд┐рд▓реАрдЬрд╝ рдбреЗрдЯрд╛ рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЗрд▓рдо рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╣рдореЗрд╢рд╛ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдкреИрдЪ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ kubectl edit рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдФрд░ 3.1.3 рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рддрдп рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЗрд╕реЗ https://github.com/helm/helm/pull/7649/commits/d829343c1514db17bee7a90624d06cdfffde963 рдкрд░ рдирдП рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП Create рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдЖрдИрдкреА тАЛтАЛрдФрд░ рдЖрдмрд╛рджреА рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ

рджрд┐рд▓рдЪрд╕реНрдк рдЦреЛрдЬред рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@jlegrone рдХрд┐рд╕реА рднреА рдореМрдХрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

@bacongobbler рд╣рдорд╛рд░реА CI / CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Helm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЖрджреЗрд╢:

helm upgrade --install --force \
        --wait \
        --set image.repository="$CI_REGISTRY_IMAGE" \
        --set image.tag="$CI_COMMIT_REF_NAME-$CI_COMMIT_SHA" \
        --set image.pullPolicy=IfNotPresent \
        --namespace="$KUBE_NAMESPACE" \
        "$APP_NAME" \
        ./path/to/charts/

V3.2.0 рдкрд░ рдпрд╣ рдХрдорд╛рдВрдб Service "service-name" is invalid: spec.clusterIP: Invalid value: "": field is immutable рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ

V3.1.3 рдкрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкрд╕рдВрдж рд╣реИ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдореБрдЭреЗ рднреАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛ рдереАред рдХрдИ рдорд╣реАрдиреЛрдВ рддрдХ рд╣реЗрд▓реНрдо 2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдареАрдХ рдерд╛ред
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж, рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╣реЗрд▓реНрдо 3.2 helm upgrade рдХрдорд╛рдВрдб рд╡рд┐рдлрд▓ рд░рд╣реАред 3.1.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.global.name }}
  namespace: {{ index .Values.global.namespace .Values.global.env }}
  labels:
     microservice: {{ .Values.global.name }}
spec:
   type: ClusterIP
   ports:
   - port: 8080
   selector:
      microservice: {{ .Values.global.name }}

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдФрд░ 3.1.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рддрдп рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдЗрд╕реЗ d829343 рдореЗрдВ рдирдП рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдХреНрд░рд┐рдПрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рди рд╣реЛ, рдЗрд╕ рддрд░рд╣ рдЦрд╛рд▓реА рдЖрдИрдкреА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рдЖрдмрд╛рджреА рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ

@ n1koo рдХреНрдпрд╛ рдЖрдк рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЛрдб рдирд╣реАрдВ рд╣реИ, рдФрд░ 3.1 рдореЗрдВ рднреА create рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ @adamreese рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ @ n1koo рдиреЗ рдкрд╣рдЪрд╛рдирд╛ рд╣реИред рдмрдирд╛рдПрдБ рд╡рд┐рдзрд┐ рд╕реЗрд╡рд╛ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп 3-рд╡реЗ рдЕрдВрддрд░ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдЧреА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдмреЗрд░рдиреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЖрдмрд╛рджреА рд╡рд╛рд▓реЗ рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп рд╕реЗрд╡рд╛ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ "" рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреНрд▓рд╕реНрдЯрд░ IP рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП API рд╕рд░реНрд╡рд░ _appears_ рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдШреЛрд╖рдгрд╛рдкрддреНрд░, рдЬреЛ рдПрдХ рд╕реЗрд╡рд╛ рдкрд░ рдЕрд╡реИрдз рд╣реИ (рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ)ред

рд╣рдо рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╣рдо рдФрд░ рд╕реАрдЦреЗрдВрдЧреЗ рддреЛ рдореИрдВ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рддреЛ https://github.com/helm/helm/issues/6378#issuecomment -557746499 рд╕рд╣реА рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝реЗрдВред рдпрджрд┐ clusterIP: "" рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Kubernetes рдПрдХ рдЖрдИрдкреА рдЕрд╕рд╛рдЗрди рдХрд░реЗрдЧрд╛ред рдЕрдЧрд▓реЗ рд╣реЗрд▓реНрдо рдЕрдкрдЧреНрд░реЗрдб рдкрд░, рдпрджрд┐ clusterIP:"" рдлрд┐рд░ рд╕реЗ, рдпрд╣ рдКрдкрд░ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ _to Kubernetes_ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк IP рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред (рд╣рд╛рдВ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ spec: рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдиреБрднрд╛рдЧ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ!)

рдЬрдм Create рдкрджреНрдзрддрд┐ 3-рддрд░рдлрд╛ рдЕрдВрддрд░ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджреЗрддреА рд╣реИ, рддреЛ рдпрд╣ Kubernetes рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ IP рдкрддреЗ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп clusterIP: "" рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рдЬрдирди рдХрд░рдирд╛:

$ helm create issue7956
$ # edit issue7956/templates/service.yaml and add `clusterIP: ""` under `spec:`
$ helm upgrade --install issue7956 issue7956
...
$ helm upgrade issue7956 issue7956
Error: UPGRADE FAILED: cannot patch "issue-issue7956" with kind Service: Service "issue-issue7956" is invalid: spec.clusterIP: Invalid value: "": field is immutable

рджреВрд╕рд░реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЕрдкрдЧреНрд░реЗрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ master рдкрд░ @IadanAdar рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

@GaramNick рдЖрдкрдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд░рд╣реА рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред

рдореЗрд░реА рд╕реНрдерд┐рддрд┐:
version.BuildInfo{Version:"v3.2.0", GitCommit:"e11b7ce3b12db2941e90399e874513fbd24bcb71", GitTreeState:"clean", GoVersion:"go1.13.10"}
рдпрд╣ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ w /
version.BuildInfo{Version:"v3.2.1", GitCommit:"fe51cd1e31e6a202cba7dead9552a6d418ded79a", GitTreeState:"clean", GoVersion:"go1.13.10"}

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрд╡рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛:

apiVersion: v1
kind: Service
metadata:
  name: {{ include "app.fullname" . }}
  labels:
    {{- include "app.labels" . | nindent 4 }}
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: {{ include "app.fullname" . }}_mapping
      prefix: /{{ include "app.fullname" . }}
      host: "^{{ include "app.fullname" . }}.*"
      host_regex: true
      service: {{ include "app.fullname" . }}.{{ .Release.Namespace }}
      rewrite: ""
      timeout_ms: 60000
      bypass_auth: true
      cors:
        origins: "*"
        methods: POST, GET, OPTIONS
        headers:
        - Content-Type
        - Authorization
        - x-client-id
        - x-client-secret
        - x-client-trace-id
        - x-flow-proto
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: {{ include "app.fullname" . }}_swagger_mapping
      ambassador_id: corp
      prefix: /swagger
      host: "^{{ include "app.fullname" . }}.corp.*"
      host_regex: true
      service: {{ include "app.fullname" . }}.{{ .Release.Namespace }}
      rewrite: ""
      bypass_auth: true
      cors:
        origins: "*"
        methods: POST, GET, OPTIONS
        headers:
        - Content-Type
        - x-client-id
        - x-client-secret
        - Authorization
        - x-flow-proto
  namespace: {{ .Release.Namespace }}
spec:
  type: {{ .Values.service.type }}
  selector:
    {{- include "app.selectorLabels" . | nindent 4 }}
  ports:
  - port: {{ .Values.service.port }}
    name: http-rest-hub
    targetPort: http-rest
  - port: {{ .Values.service.healthPort }}
    name: http-health
    targetPort : http-health

рдЬреЛ upgrade --install рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдкрд░рд┐рдгрд╛рдо:

apiVersion: v1
kind: Service
metadata:
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: hub-alt-bor_mapping
      prefix: /hub-alt-bor
      host: "^hub-alt-bor.*"
      host_regex: true
      service: hub-alt-bor.brett
      rewrite: ""
      timeout_ms: 60000
      bypass_auth: true
      cors:
        origins: "*"
        methods: POST, GET, OPTIONS
        headers:
        - Content-Type
        - Authorization
        - x-client-id
        - x-client-secret
        - x-client-trace-id
        - x-flow-proto
      ---
      apiVersion: ambassador/v1
      kind: Mapping
      name: hub-alt-bor_swagger_mapping
      ambassador_id: corp
      prefix: /swagger
      host: "^hub-alt-bor.corp.*"
      host_regex: true
      service: hub-alt-bor.brett
      rewrite: ""
      bypass_auth: true
      cors:
        origins: "*"
        methods: POST, GET, OPTIONS
        headers:
        - Content-Type
        - x-client-id
        - x-client-secret
        - Authorization
        - x-flow-proto
    meta.helm.sh/release-name: alt-bor
    meta.helm.sh/release-namespace: brett
  creationTimestamp: ...
  labels:
    app: hub
    app.kubernetes.io/instance: alt-bor
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: hub
    app.kubernetes.io/version: v1.6.0-rc.26
    deploy.xevo.com/stackname: bor-v0.1-test
    helm.sh/chart: hub-0.0.4
    owner: gateway
    ownerSlack: TODOunknown
  name: hub-alt-bor
  namespace: brett
  resourceVersion: ...
  selfLink: ...
  uid: ...
spec:
  clusterIP: 172.20.147.13
  ports:
  - name: http-rest-hub
    port: 80
    protocol: TCP
    targetPort: http-rest
  - name: http-health
    port: 90
    protocol: TCP
    targetPort: http-health
  selector:
    app.kubernetes.io/instance: alt-bor
    app.kubernetes.io/name: hub
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рд╕рдЯреАрдХ рдЪрд╛рд░реНрдЯ рдХреЛ реж.реж.рел рдФрд░ upgrade --install рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓реЗрдЧрд╛:
Error: UPGRADE FAILED: failed to replace object: Service "hub-alt-bor" is invalid: spec.clusterIP: Invalid value: "": field is immutable

рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ helm.sh/chart рд▓реЗрдмрд▓ рдХрд╛ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдЕрдм hub-0.0.5

рдпрд╣ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЕрд╡рд░реЛрдзрдХ рд╣реИред

@GaramNick рдЖрдкрдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд░рд╣реА рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред

@technosophos рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП? рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢!

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ! helm upgrade --install w / --force рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрджреНрдпрддрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЕрдм рдПрдХ рдЕрд╡рд░реЛрдзрдХ рдХреЗ рдХрдоред

рдУрд╣! рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирдорд╕реНрдХрд╛рд░ @technosophos @bacongobbler рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рд╣реА рдореБрджреНрджреЗ рд╣реИрдВ:

version.BuildInfo{Version:"v3.2.1", GitCommit:"fe51cd1e31e6a202cba7dead9552a6d418ded79a", GitTreeState:"clean", GoVersion:"go1.13.10"}

  1. рдореБрджреНрджрд╛
    рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Service рдЯреЗрдореНрдкрд▓реЗрдЯ clusterIP рдмрд┐рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ clusterIP рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВрдЧреЗ:
apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}
  labels:
    app: {{ .Values.image.name }}
    release: {{ .Release.Name }}
spec:
  type: ClusterIP
  ports:
    - port: {{ .Values.service.port }}
      targetPort: {{ .Values.service.port }}
      protocol: TCP
      name: http
  selector:
    app: {{ .Values.image.name }}
    release: {{ .Release.Name }}

helm 2to3 convert 3 рдХреЗ рд╕рд╛рде helm 3 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реА рд░рд┐рд▓реАрдЬрд╝ helm3 upgrade --install --force рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

failed to replace object: Service "dummy-stage" is invalid: spec.clusterIP: Invalid value: "": field is immutable

рдЕрдЧрд░ рдореИрдВ --force -> helm3 upgrade --install рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред

  1. рдореБрджреНрджрд╛
    рдЕрдЧрд░ рдореИрдВ spec.selector.matchLabels рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдЬреЛ --force рдмрд┐рдирд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреНрд╖реЗрддреНрд░ рд╣реИ рддреЛ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓реЗрдЧреА:
cannot patch "dummy-stage" with kind Deployment: Deployment.apps "dummy-stage" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/name":"web-nerf-dummy-app"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

рдЕрдЧрд░ рдореИрдВ --force рд╕рд╛рде рдРрд╕рд╛ рд╣реА рдХрд░реВрдВрдЧрд╛ рддреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА:

failed to replace object: Deployment.apps "dummy-stage" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/name":"web-nerf-dummy-app"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

рдХреНрдпрд╛ --force рд▓рд┐рдП рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ helm 2 рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд░реВрдк рд╕реЗ рджрд╛рдпрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

apiVersion: v1
kind: Service
metadata:
  name: zipkin-proxy
  namespace: monitoring
spec:
  ports:
  - port: 9411
    targetPort: 9411
  selector:
    app: zipkin-proxy
  type: ClusterIP

---

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: zipkin-proxy
  namespace: monitoring
spec:
  replicas: {{ .Values.zipkinProxy.replicaCount }}
  template:
    metadata:
      labels:
        app: zipkin-proxy
      annotations:
        prometheus.io/scrape: 'true'
    spec:
      containers:
      - image: {{ .Values.image.repository }}/zipkin-proxy
        name: zipkin-proxy
        env:
        - name: STORAGE_TYPE
          value: stackdriver

helm upgrade -i --debug --force --namespace monitoring zipkin-proxy --values ./values.yaml.tmp .

рдореИрдВрдиреЗ рдмрд▓ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВрдиреЗ v3.1.3, v3.2.0 рдХреЗ рд╕рд╛рде-рд╕рд╛рде v3.2.1 рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕

history.go:52: [debug] getting history for release zipkin-proxy
upgrade.go:84: [debug] preparing upgrade for zipkin-proxy
upgrade.go:92: [debug] performing update for zipkin-proxy
upgrade.go:234: [debug] creating upgraded release for zipkin-proxy
client.go:163: [debug] checking 2 resources for changes
client.go:195: [debug] error updating the resource "zipkin-proxy":
         cannot patch "zipkin-proxy" with kind Service: Service "zipkin-proxy" is invalid: spec.clusterIP: Invalid value: "": field is immutable
client.go:403: [debug] Looks like there are no changes for Deployment "zipkin-proxy"
upgrade.go:293: [debug] warning: Upgrade "zipkin-proxy" failed: cannot patch "zipkin-proxy" with kind Service: Service "zipkin-proxy" is invalid: spec.clusterIP: Invalid value: "": field is immutable
Error: UPGRADE FAILED: cannot patch "zipkin-proxy" with kind Service: Service "zipkin-proxy" is invalid: spec.clusterIP: Invalid value: "": field is immutable
helm.go:75: [debug] cannot patch "zipkin-proxy" with kind Service: Service "zipkin-proxy" is invalid: spec.clusterIP: Invalid value: "": field is immutable
helm.sh/helm/v3/pkg/kube.(*Client).Update
        /home/circleci/helm.sh/helm/pkg/kube/client.go:208
helm.sh/helm/v3/pkg/action.(*Upgrade).performUpgrade
        /home/circleci/helm.sh/helm/pkg/action/upgrade.go:248
helm.sh/helm/v3/pkg/action.(*Upgrade).Run
        /home/circleci/helm.sh/helm/pkg/action/upgrade.go:93
main.newUpgradeCmd.func1
        /home/circleci/helm.sh/helm/cmd/helm/upgrade.go:137
github.com/spf13/cobra.(*Command).execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:826
github.com/spf13/cobra.(*Command).ExecuteC
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:914
github.com/spf13/cobra.(*Command).Execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:864
main.main
        /home/circleci/helm.sh/helm/cmd/helm/helm.go:74
runtime.main
        /usr/local/go/src/runtime/proc.go:203
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1357
UPGRADE FAILED
main.newUpgradeCmd.func1
        /home/circleci/helm.sh/helm/cmd/helm/upgrade.go:139
github.com/spf13/cobra.(*Command).execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:826
github.com/spf13/cobra.(*Command).ExecuteC
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:914
github.com/spf13/cobra.(*Command).Execute
        /go/pkg/mod/github.com/spf13/[email protected]/command.go:864
main.main
        /home/circleci/helm.sh/helm/cmd/helm/helm.go:74
runtime.main
        /usr/local/go/src/runtime/proc.go:203
runtime.goexit
        /usr/local/go/src/runtime/asm_amd64.s:1357

рдЬрдм рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред

рд╣реЗрд▓реНрдо v3.2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ 3.1.2 рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ред

@ gor181 рд╣рдо рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? 3.2 рдкрд░ рдХреНрдпрд╛ рдЯреВрдЯ рдЧрдпрд╛ рд▓реЗрдХрд┐рди 3.1 рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛? рдЪрд╛рд░реНрдЯ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо svc рдЯреЗрдореНрдкрд▓реЗрдЯ) рдФрд░ рдХрдорд╛рдВрдбреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

@azarudeena @alexandrsemak - рддреБрдо рджреЛрдиреЛрдВ, рдХреЗ рд▓рд┐рдП --force рдЭрдВрдбрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ рд╣реИред рдпрджрд┐ рдЖрдк --force рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдирд╡реАрдиреАрдХрд░рдг рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ?

@technosophos рдиреЗ рдмрд▓ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред 3.1.2 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛

@ Mazudeena рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдкрдиреЗ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдП, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдиреЗ values.yaml.tmp рд╕рдВрджрд░реНрдн рднреА рджрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рди рддреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рди рд╣реА рдЪрд╛рд░реНрдЯред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рдирдореВрдирд╛ рдЪрд╛рд░реНрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЖрдкрдХреЗ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@bacongobbler рдореИрдВ рд╕рдВрд░рдЪрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЪрд╛рд░реНрдЯ

apiVersion: v1
description: Deploys Stackdriver Trace Zipkin Proxy
name: zipkin-proxy
version: 1.0.0

рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдКрдкрд░ рд░рдЦрд╛ рд╣реИ,

рдореЗрд░рд╛ рдорд╛рди yaml.tmp рдиреАрдЪреЗ рд╣реИ

zipkinProxy:
  replicaCount: 1

image:
  repository: openzipkin/zipkin

рдореИрдВ рдЗрд╕реЗ рд╣реЗрд▓реНрдо рдкреИрдХреЗрдЬ --version рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рддрд╛ рд╣реВрдВрдЙрдиреНрдирдпрди рдХреЗ рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╣реИ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ? 3.1.2 рдХреЗ рд╕рд╛рде рдореЗрд░реА рдХреЛрд╢рд┐рд╢ рдХреЗ рдмрд╛рдж рдпрд╣рд╛рдВ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рей.рез.реи рдФрд░ рей.рез.рез рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЕрднреА рднреА рдЗрд╕ рдкреИрдЪ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд╣реЗрд▓реНрдо рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдеред
рдЬрдм рдореИрдВрдиреЗ force_update = true рд╕реЗ force_update = false рдмрджрд▓рд╛ рдерд╛, рддрдм рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЧрдИ рдереАред

рдЬрдм рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред

рд╣реЗрд▓реНрдо v3.2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЕрдХреНрд╖рдо - рдкреНрд░рд╡рд░реНрддрди рдзреНрд╡рдЬ рдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

@technosophos --force ClusterIP рдХреЗ рд╕рд╛рде рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕рдорд╕реНрдпрд╛ рдЬрдм рдЖрдк helm 3 рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ helm 2 рдЬрдм helm 3 рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ClusterIP рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред
matchLabels рд░реВрдк рдореЗрдВ рджрд╛рдпрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреЗ рд╕рд╛рде Helm 3 рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ spec: рдЕрдиреБрднрд╛рдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ

рдЗрд╕реЗ рд░реВрдЯ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рджреЛрд╖ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? https://kubernetes.io/docs/concepts/services-networking/service/#choosing -your-own-ip-address рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ status рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдорд╛рди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╣реЛрдЧреАред

(рдПрдХ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ .spec.nodeName Pod , рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЗрд▓рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред)

v3.2.3: рдпрд╣ --force рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ w / o --force рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЪрд╛рд░реНрдЯ-рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреЛрдИ ClusterIP: ред рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/helm/helm/pull/8000/files рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдерд╛ред

upgrade.go:121: [debug] preparing upgrade for eos-eve-srv-d1
upgrade.go:129: [debug] performing update for eos-eve-srv-d1
upgrade.go:308: [debug] creating upgraded release for eos-eve-srv-d1
client.go:173: [debug] checking 6 resources for changes
client.go:432: [debug] Replaced "eos-eve-srv-d1-fsnode" with kind ServiceAccount for kind ServiceAccount
client.go:432: [debug] Replaced "eos-eve-srv-d1-fsnode-imagepullsecret" with kind Secret for kind Secret
client.go:432: [debug] Replaced "eos-eve-srv-d1-fsnode-config" with kind ConfigMap for kind ConfigMap
client.go:205: [debug] error updating the resource "eos-eve-srv-d1-fsnode":
         failed to replace object: Service "eos-eve-srv-d1-fsnode" is invalid: spec.clusterIP: Invalid value: "": field is immutable
client.go:432: [debug] Replaced "eos-eve-srv-d1-fsnode" with kind Deployment for kind Deployment
client.go:432: [debug] Replaced "eos-eve-srv-d1-fsnode" with kind Ingress for kind Ingress
upgrade.go:367: [debug] warning: Upgrade "eos-eve-srv-d1" failed: failed to replace object: Service "eos-eve-srv-d1-fsnode" is invalid: spec.clusterIP: Invalid value: "": field is immutable
Error: UPGRADE FAILED: failed to replace object: Service "eos-eve-srv-d1-fsnode" is invalid: spec.clusterIP: Invalid value: "": field is immutable
helm.go:84: [debug] failed to replace object: Service "eos-eve-srv-d1-fsnode" is invalid: spec.clusterIP: Invalid value: "": field is immutable
helm.sh/helm/v3/pkg/kube.(*Client).Update
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/pkg/kube/client.go:218
helm.sh/helm/v3/pkg/action.(*Upgrade).performUpgrade
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/pkg/action/upgrade.go:322
helm.sh/helm/v3/pkg/action.(*Upgrade).Run
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/pkg/action/upgrade.go:130
main.newUpgradeCmd.func1
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/cmd/helm/upgrade.go:144
github.com/spf13/cobra.(*Command).execute
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:950
github.com/spf13/cobra.(*Command).Execute
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/cmd/helm/helm.go:83
runtime.main
        /usr/local/Cellar/[email protected]/1.13.12/libexec/src/runtime/proc.go:203
runtime.goexit
        /usr/local/Cellar/[email protected]/1.13.12/libexec/src/runtime/asm_amd64.s:1357
UPGRADE FAILED
main.newUpgradeCmd.func1
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/cmd/helm/upgrade.go:146
github.com/spf13/cobra.(*Command).execute
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:950
github.com/spf13/cobra.(*Command).Execute
        /private/tmp/helm-20200608-50972-gq0j1j/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main
        /private/tmp/helm-20200608-50972-gq0j1j/src/helm.sh/helm/cmd/helm/helm.go:83
runtime.main
        /usr/local/Cellar/[email protected]/1.13.12/libexec/src/runtime/proc.go:203
runtime.goexit
        /usr/local/Cellar/[email protected]/1.13.12/libexec/src/runtime/asm_amd64.s:1357

рдореИрдВ 3.2.3 рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди 3.2.0 ред рдмрд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдорд╛рдзрд╛рди рдерд╛ред

FYI рдХрд░реЗрдВ, рдУрдкреА рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдореБрджреНрджрд╛ рдФрд░ рдпрд╣рд╛рдБ рдЙрдард╛рдП рдЧрдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ --force рдЕрд▓рдЧ рд╣реИрдВ, рдЕрд╕рддрдд рдореБрджреНрджреЗ рд╣реИрдВред рдЖрдЗрдП рдпрд╣рд╛рдВ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдУрдкреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореБрджреНрджрд╛ https://github.com/helm/helm/issues/7956#issuecomment -620749552 рдореЗрдВ рдкрд╣рдЪрд╛рдирд╛ рдЧрдпрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдЧрдорди @ n1koo рд╣реИред рдпрд╣ рдПрдХ рд╡реИрдз рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ --force рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред --force , рдЖрдк рд╣реЗрд▓реНрдо рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ PUT рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ, рдЖрдк Kubernetes рдХреЛ рдЕрдкрдирд╛ рд▓рдХреНрд╖реНрдп рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реЗ рд╣реИрдВ (рд╕рддреНрдп рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ helm upgrade рд╕реЗ рдЖрдкрдХреЗ рдЪрд╛рд░реНрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ kubectl apply --overwrite рд╕рдорд╛рди рд╣реИред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ IP рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ helm upgrade --force рд╕реЗрд╡рд╛ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ IP рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ (рдпрд╛ рдмрджрд▓рдиреЗ) рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдЕрд╡реИрдз рдСрдкрд░реЗрд╢рди рд╣реИред

рдпрд╣ # 7082 рдореЗрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ --force рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛: Helm рдПрдХ PATCH рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рдЗрд╡ рд╕реНрдЯреЗрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдлреИрд▓рддрд╛ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ IP рдореЗрдВ рдкреИрдЪ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдЧреНрд░реЗрдб рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ IP рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЬрдмрд░рджрд╕реНрддреА рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдВ рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрд▓реНрдо 2 рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ # 7431 рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╛рддреЗрдВ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреА рд╣реИрдВред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдпрд╣рд╛рдБ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдЬреНрдЮрд╛рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ? 1-34.1 рд╕реЗ 1.46.4 рддрдХ https://github.com/helm/charts/tree/master/stable/rabbitmq-ha рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ --force рдпрд╛ 3.1.3 рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдорджрдж рдирд╣реАрдВ рдХреА, рдкреНрд░рд╢реНрди рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ helm upgrade рдиреЗ рдорджрдж рдирд╣реАрдВ рдХреА

@EvgeniGordeev рдпрд╣ рдХреНрд░реВрдб рд╕реЙрд▓реНрдпреВрд╢рди рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЪрд╛рд░реНрдЯ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ / рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

рд╣рдордиреЗ рдЗрд╕реЗ nginxinc ingress рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдорд╛рд░рд╛ рд╣реИред рд╣рдо рдЖрдо рддреМрд░ рдкрд░ --force рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЪреВрдБрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдЗрд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдЦреЛрд▓реЗ рдЧрдП рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ) рдореИрдВрдиреЗ рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкрдврд╝рд╛ рдХрд┐ рдпрд╣ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдФрд░ clusterIP: "" рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд░реНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдкреАрдЫрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@cdunford - рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ --force рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ https://github.com/helm/helm/issues/7956#issuecomment -643432099ред

рдпрд╣ PR рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реИ: # 7431 (рдЙрд╕ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕реБрдЭрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░) ...

рд╣рдордиреЗ рдПрди рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░рд╛, рд╣рдо рдЕрдкрдиреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ --force рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореВрд▓ рд╕рдорд╕реНрдпрд╛ helm2 рдХреЗ рд╕рд╛рде рдЖрдИ рдереА, рддреЛ рдХреНрдпрд╛ рдпрд╣ рднреА helm2 рдореЗрдВ рддрдп рд╣реЛ рдЬрд╛рдПрдЧреА? @bacongobbler

@bacongobbler рдЖрдк рдпрд╣ рдХреНрдпреЛрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдмрд▓" рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдореБрджреНрджреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдпрд╛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдирд╛ рдорджрдж рдХрд░рддрд╛ рд╣реИ?

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд╣реЗрд▓реНрдо 3.3.4, https://artifacthub.io/packages/helm/bitnami/nginx рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░рд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдорд╛рди рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рджрд▓реЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛: GCP / GKE, Azure / AKS рдФрд░ AWS / EKS, рддреАрдиреЛрдВ рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣реЗред

рд╣реЗрд▓реНрдо рдХреЛ 3.1.3 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ 3.3.4 рдкрд░ "--рдлреЛрд░реНрд╕" рдзреНрд╡рдЬ рдХреЗ рдмрд┐рдирд╛ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдкреВрд░реНрд╡ рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдЕрдиреВрдареЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдУрдкреА рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рджреВрд╕рд░рд╛ --рдлреЛрд░реНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдУрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдореНрдорд╛рди рд╕реЗ рдмрд╛рд╣рд░, рдХреГрдкрдпрд╛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдВред рд╣рдо рдУрдкреА рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрди рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ, рдЬреЛ рдУрдкреА рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╛ рддреЛ рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓реЗрдВ рдпрд╛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдХрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

@ рд╣реЗрд▓рдо 2 рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ https://helm.sh/blog/helm-v2-deprecation-timeline/ рджреЗрдЦреЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдУрдкреА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬреБрдкрд╛рдЗрдерд░рд╣рдм рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдЙрдореНрдореАрдж рд╣реИ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВрдЧреЗ:


рдорд╣рддреНрд╡рдкреВрд░реНрдг
Jupyterhub рдкрддрд╡рд╛рд░ рдЪрд╛рд░реНрдЯ рдПрдХ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ spec.clusterIP : рдпрд╣рд╛рдБ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдореЗрдВ рдХреНрд╖реЗрддреНрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/c0a43af12a89d54bcd6dcb927fdcc2f623a14aca /jupyterhub/templates/hub/service.yaml#L17 -L29


рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддрд╡рд╛рд░ рдФрд░ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

тЮЬ helm version
version.BuildInfo{Version:"v3.4.0", GitCommit:"7090a89efc8a18f3d8178bf47d2462450349a004", GitTreeState:"clean", GoVersion:"go1.14.10"}

тЮЬ kind version
kind v0.9.0 go1.15.2 linux/amd64

тЮЬ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.1", GitCommit:"206bcadf021e76c27513500ca24182692aabd17e", GitTreeState:"clean", BuildDate:"2020-09-14T07:30:52Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}

рдкреНрд░рдЬрдирди рдХреИрд╕реЗ рдХрд░реЗрдВ?

  1. рдирдП рддрд░рд╣ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдПрдВ
kind create cluster
  1. рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде config.yaml рдирд╛рдордХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ (рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЙрддреНрдкрдиреНрди рд╣реЗрдХреНрд╕):
proxy:
  secretToken: "3a4bbf7405dfe1096ea2eb9736c0df299299f94651fe0605cfb1c6c5700a6786"

FYI рдХрд░реЗрдВ рдореИрдВ рдкрддрд╡рд╛рд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ( рд▓рд┐рдВрдХ )

  1. рд╣реЗрд▓реНрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВ
helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/
helm repo update
  1. рдЪрд╛рд░реНрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ( --force рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде)
RELEASE=jhub
NAMESPACE=jhub

helm upgrade --cleanup-on-fail --force \
  --install $RELEASE jupyterhub/jupyterhub \
  --namespace $NAMESPACE \
  --create-namespace \
  --version=0.9.0 \
  --values config.yaml
  1. рдЪрд░рдг 5 рджреЛрд╣рд░рд╛рдПрдВ

рддреНрд░реБрдЯрд┐:

Error: UPGRADE FAILED: failed to replace object: PersistentVolumeClaim "hub-db-dir" is invalid: spec: Forbidden: spec is immutable after creation except resources.requests for bound claims
┬а┬аcore.PersistentVolumeClaimSpec{
┬а┬а      AccessModes:      []core.PersistentVolumeAccessMode{"ReadWriteOnce"},
┬а┬а      Selector:         nil,
┬а┬а      Resources:        core.ResourceRequirements{Requests: core.ResourceList{s"storage": {i: resource.int64Amount{value: 1073741824}, s: "1Gi", Format: "BinarySI"}}},
-┬а      VolumeName:       "",
+┬а      VolumeName:       "pvc-c614de5c-4749-4755-bd3a-6e603605c44e",
-┬а      StorageClassName: nil,
+┬а      StorageClassName: &"standard",
┬а┬а      VolumeMode:       &"Filesystem",
┬а┬а      DataSource:       nil,
┬а┬а}
 && failed to replace object: Service "hub" is invalid: spec.clusterIP: Invalid value: "": field is immutable && failed to replace object: Service "proxy-api" is invalid: spec.clusterIP: Invalid value: "": field is immutable && failed to replace object: Service "proxy-public" is invalid: spec.clusterIP: Invalid value: "": field is immutable

рдореИрдВ 3.3m рдореЗрдВ рд╣реВрдБ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ

Helm 2.14.1 рдЬрд╛рд░реА рдпрд╛ рддреЛ w / w-out --force

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб : type.spec: NodePort рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░рд╛ рд╣реЗрд▓реНрдордЪрд╛рд░реНрдЯ рдЕрдкрдЧреНрд░реЗрдб рдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдЧрдпрд╛ред

рд╣рдо v3.4.1 рдкрд░ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдкреНрд░рд╡рд░реНрддрди рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рдеред

@bacongobbler рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдУрдкреА рдХреА рд╕рдорд╕реНрдпрд╛ (# 6378 рд╕реЗ рдЕрд▓рдЧ) рдХреЛ рдЕрдкрд╣реГрдд рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддрд░реНрдХрддрд╛ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдЕрдкрдиреЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рд╣реИ рдпрд╛ рдирд╣реАрдВ:

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ "рддреНрд░реБрдЯрд┐: UPGRADE рд╡рд┐рдлрд▓: _replace_ ..." рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдЖрджреЗрд╢ рдореЗрдВ __id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдЧреЛрдЯреЛ # 6378

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ "рддреНрд░реБрдЯрд┐: UPGRADE рд╡рд┐рдлрд▓: _patch_ ..." рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдиреЗ _ рдЕрдкрдиреЗ рдЖрджреЗрд╢ рдореЗрдВ _ --force рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ? рдХреГрдкрдпрд╛ рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ред

@zpittmansf

helm3 upgrade concourse concourse/concourse -f temp.yaml  --force
Error: UPGRADE FAILED: failed to replace object: Service "concourse-web" is invalid: spec.clusterIP: Invalid value: "None": field is immutable && failed to replace object: Service "concourse-web-prometheus" is invalid: spec.clusterIP: Invalid value: "": field is immutable && failed to replace object: Service "concourse-web-worker-gateway" is invalid: spec.clusterIP: Invalid value: "": field is immutable

helm3 upgrade concourse concourse/concourse -f temp.yaml
Error: UPGRADE FAILED: cannot patch "concourse-web" with kind Service: Service "concourse-web" is invalid: spec.clusterIP: Invalid value: "None": field is immutable

рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдБ 3.4.2ред рдореИрдВ рдПрдХ рд╣реЗрд▓реНрдо-рдЪрд╛рд░реНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рддреИрдирд╛рддреА, рд╕рд░реНрд╡рд┐рд╕рд╕реАрдХрд╛рдЙрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ рдмрдирд╛рддрд╛ рд╣реИред рдореИрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░ рдЕрдкрдиреЗ рдЪрд╛рд░реНрдЯ рдкрд░ рдореЗрд░реЗ рдореМрдЬреВрджрд╛ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдм рдЗрд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:

helm upgrade test-whale charts/app-template/ --install --values values.yaml --namespace whale --force
Error: UPGRADE FAILED: failed to replace object: Service "test-whale" is invalid: spec.clusterIP: Invalid value: "": field is immutable && failed to replace object: Deployment.apps "test-whale-canary" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"test-whale", "app-id":"302040", "environment":"test", "version":"latest"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable && failed to replace object: Deployment.apps "test-whale" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app":"test-whale", "app-id":"302040", "environment":"test", "version":"latest"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

рдореВрд▓ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрднреА рднреА рдПрдХ рд▓реЗрдмрд▓ рдХреЛ рдЬреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реЗрд▓реНрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рд╣реИред

рдпрд╣ рднрдпрд╛рдирдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЗрд▓реНрдо "рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреНрд╖реЗрддреНрд░реЛрдВ" рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛?

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ "рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреНрд╖реЗрддреНрд░" рд╕реЗрд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ spec.clusterIP рд╣реЛрдЧрд╛ - рд╣реЗрд▓реНрдо рдЗрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╛рдиреЗрдВрдЧреЗ рдФрд░ рдРрд╕реЗ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ рдЬреЛ рджреЛрдиреЛрдВ рд╣реА) рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдмреА) рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред , рдЧ) рдЗрд╕реЗ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред

рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╣реЗрд▓реНрдо рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреЗрд▓реЛрдб рдореЗрдВ рдЙрд╕ рдореВрд▓реНрдп рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛ред рдирддреАрдЬрддрди, k8s рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рд╣реЗрд▓реНрдо рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ "рдареАрдХ рд╣реИ, рд╡реЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред

рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╣реЗрд▓реНрдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реЗрд╡рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣реЗрд▓рдо рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрди рдХрд╛ рд╕рддреНрдп рд╣реИред рдпрд╣ рдПрдХ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреЛ рдирдП рдЧреБрдг рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╣реЗрд▓реНрдо рдЕрдирдЬрд╛рди рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣реЗрд▓реНрдо рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдЕрдиреБрд░реВрдк k8 рдирд╛рдЧрд░рд┐рдХ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ kubectl рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрд░реНрдХ рдЧреНрд░рд╛рд╣рдХ-рдкрдХреНрд╖ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрди рдирд┐рд╣рд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде kubectl рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

@ jbilliau-rcd

--рдлреЛрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

@

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди рддрд░рд╣ рдХреЗ рдорд░реНрдЬ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд╛рдо рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЕрдиреБрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ; рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЖрдк рдПрдХ Deployment рдФрд░ рдкреЙрдб рдпреБрдХреНрддрд┐ рдкрд░ рд▓реЗрдмрд▓ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдЪ рдЪрдпрдирдХрд░реНрддрд╛ рдкрд░ рдирд╣реАрдВ ...... рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреАрдм рд╣реИ; рдФрд░ рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреА рддреИрдирд╛рддреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ version "v2" рдкрд░ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдХреИрдирд░реА рддреИрдирд╛рддреА? рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрдо рдХреЛ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рднреНрд░рдорд┐рдд рдХрд░реЗрдВред

3.5.0 рд╣реЗрд▓реНрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

3.5.0 рд╣реЗрд▓реНрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдмрд┐рд▓реНрдХреБрд▓ рдХреИрд╕реЗ?

3.5.0 рд╣реЗрд▓реНрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рд╣реЗрд▓реНрдо рд╕рдВрд╕реНрдХрд░рдг 3.5.0 рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ --force рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдкрддрд╡рд╛рд░ 3.5.2 рдореЗрдВ рдорд╛рд░рд╛

рдореИрдВрдиреЗ --force рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╡рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

Upgrade "gateway" failed: failed to replace object: Service "ingress"
    is invalid: spec.clusterIPs[0]: Invalid value: []string(nil): primary clusterIP
    can not be unset

рдЕрдм рддрдХ рдПрдХ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ - --reuse-values рдЭрдВрдбрд╛ред рдореЗрд░реЗ рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рей.рел.реи рдХреЛ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ / рдмрд┐рдирд╛ --reuse-values тАЛтАЛрд╣реИрдВ

3.5.3 рдореЗрдВ рдпрд╣ рднреА рд╣реИ: /

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mikhno-s picture mikhno-s  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vdice picture vdice  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

PhilippeDupont picture PhilippeDupont  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

burnettk picture burnettk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tjquinno picture tjquinno  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ