Why doesn't helm use the name defined in the deployment template?












0















i.e. from name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod below



# deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ template "project1234.name" . }}
chart: {{ template "project1234.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
name: {{ template "project1234.module5678.fullname" . }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ template "project1234.name" . }}
template:
metadata:
labels:
app: {{ template "project1234.name" . }}
spec:
containers:
- image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod
ports:
- containerPort: 1234
imagePullSecrets:
- name: {{ .Values.image.pullSecret }}


I am expecting the pod name to be:




pod/project1234-module5678-pod




Instead, the resulting Pod name is:




pod/chartname-project1234-module5678-dc7db787-skqvv




...where (in my understanding):
chartname is from: helm install --name chartname -f values.yaml .
project1234 is from:



# Chart.yaml

apiVersion: v1
appVersion: "1.0"
description: project1234 Helm chart for Kubernetes
name: project1234
version: 0.1.0


module5678 is from:



# values.yaml

rbac:
create: true

serviceAccounts:
module5678:
create: true
name:

image:
name: <image location>
tag: 1.5
pullSecret: <pull secret>

gitlab:
secretName: <secret name>
username: foo
password: bar

module5678:
enabled: true
name: module5678
ingress:
enabled: true
replicaCount: 1
resources: {}


I've tried changing name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod into a plain string value like "podname1234" and it isn't followed. I even tried removing the name setting entirely and the resulting pod name remains the same.










share|improve this question





























    0















    i.e. from name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod below



    # deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    labels:
    app: {{ template "project1234.name" . }}
    chart: {{ template "project1234.chart" . }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
    name: {{ template "project1234.module5678.fullname" . }}
    spec:
    replicas: {{ .Values.replicaCount }}
    selector:
    matchLabels:
    app: {{ template "project1234.name" . }}
    template:
    metadata:
    labels:
    app: {{ template "project1234.name" . }}
    spec:
    containers:
    - image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
    name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod
    ports:
    - containerPort: 1234
    imagePullSecrets:
    - name: {{ .Values.image.pullSecret }}


    I am expecting the pod name to be:




    pod/project1234-module5678-pod




    Instead, the resulting Pod name is:




    pod/chartname-project1234-module5678-dc7db787-skqvv




    ...where (in my understanding):
    chartname is from: helm install --name chartname -f values.yaml .
    project1234 is from:



    # Chart.yaml

    apiVersion: v1
    appVersion: "1.0"
    description: project1234 Helm chart for Kubernetes
    name: project1234
    version: 0.1.0


    module5678 is from:



    # values.yaml

    rbac:
    create: true

    serviceAccounts:
    module5678:
    create: true
    name:

    image:
    name: <image location>
    tag: 1.5
    pullSecret: <pull secret>

    gitlab:
    secretName: <secret name>
    username: foo
    password: bar

    module5678:
    enabled: true
    name: module5678
    ingress:
    enabled: true
    replicaCount: 1
    resources: {}


    I've tried changing name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod into a plain string value like "podname1234" and it isn't followed. I even tried removing the name setting entirely and the resulting pod name remains the same.










    share|improve this question



























      0












      0








      0








      i.e. from name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod below



      # deployment.yaml

      apiVersion: apps/v1
      kind: Deployment
      metadata:
      labels:
      app: {{ template "project1234.name" . }}
      chart: {{ template "project1234.chart" . }}
      release: {{ .Release.Name }}
      heritage: {{ .Release.Service }}
      name: {{ template "project1234.module5678.fullname" . }}
      spec:
      replicas: {{ .Values.replicaCount }}
      selector:
      matchLabels:
      app: {{ template "project1234.name" . }}
      template:
      metadata:
      labels:
      app: {{ template "project1234.name" . }}
      spec:
      containers:
      - image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
      name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod
      ports:
      - containerPort: 1234
      imagePullSecrets:
      - name: {{ .Values.image.pullSecret }}


      I am expecting the pod name to be:




      pod/project1234-module5678-pod




      Instead, the resulting Pod name is:




      pod/chartname-project1234-module5678-dc7db787-skqvv




      ...where (in my understanding):
      chartname is from: helm install --name chartname -f values.yaml .
      project1234 is from:



      # Chart.yaml

      apiVersion: v1
      appVersion: "1.0"
      description: project1234 Helm chart for Kubernetes
      name: project1234
      version: 0.1.0


      module5678 is from:



      # values.yaml

      rbac:
      create: true

      serviceAccounts:
      module5678:
      create: true
      name:

      image:
      name: <image location>
      tag: 1.5
      pullSecret: <pull secret>

      gitlab:
      secretName: <secret name>
      username: foo
      password: bar

      module5678:
      enabled: true
      name: module5678
      ingress:
      enabled: true
      replicaCount: 1
      resources: {}


      I've tried changing name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod into a plain string value like "podname1234" and it isn't followed. I even tried removing the name setting entirely and the resulting pod name remains the same.










      share|improve this question
















      i.e. from name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod below



      # deployment.yaml

      apiVersion: apps/v1
      kind: Deployment
      metadata:
      labels:
      app: {{ template "project1234.name" . }}
      chart: {{ template "project1234.chart" . }}
      release: {{ .Release.Name }}
      heritage: {{ .Release.Service }}
      name: {{ template "project1234.module5678.fullname" . }}
      spec:
      replicas: {{ .Values.replicaCount }}
      selector:
      matchLabels:
      app: {{ template "project1234.name" . }}
      template:
      metadata:
      labels:
      app: {{ template "project1234.name" . }}
      spec:
      containers:
      - image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
      name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod
      ports:
      - containerPort: 1234
      imagePullSecrets:
      - name: {{ .Values.image.pullSecret }}


      I am expecting the pod name to be:




      pod/project1234-module5678-pod




      Instead, the resulting Pod name is:




      pod/chartname-project1234-module5678-dc7db787-skqvv




      ...where (in my understanding):
      chartname is from: helm install --name chartname -f values.yaml .
      project1234 is from:



      # Chart.yaml

      apiVersion: v1
      appVersion: "1.0"
      description: project1234 Helm chart for Kubernetes
      name: project1234
      version: 0.1.0


      module5678 is from:



      # values.yaml

      rbac:
      create: true

      serviceAccounts:
      module5678:
      create: true
      name:

      image:
      name: <image location>
      tag: 1.5
      pullSecret: <pull secret>

      gitlab:
      secretName: <secret name>
      username: foo
      password: bar

      module5678:
      enabled: true
      name: module5678
      ingress:
      enabled: true
      replicaCount: 1
      resources: {}


      I've tried changing name: {{ .Chart.Name }}-{{ .Values.module5678.name }}-pod into a plain string value like "podname1234" and it isn't followed. I even tried removing the name setting entirely and the resulting pod name remains the same.







      kubernetes-helm






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 20 '18 at 7:11







      libzz

















      asked Nov 20 '18 at 6:05









      libzzlibzz

      168114




      168114
























          1 Answer
          1






          active

          oldest

          votes


















          1














          Pods created from a Deployment always have a generated name based on the Deployment's name (and also the name of the intermediate ReplicaSet, if you go off and look for it). You can't override it.



          Given the YAML you've shown, I'd expect that this fragment:



          apiVersion: apps/v1
          kind: Deployment
          metadata:
          name: {{ template "project1234.module5678.fullname" . }}


          expands out to a Deployment name of chartname-project1234-module5678; the remaining bits are added in by the ReplicaSet and then the Pod itself.



          If you do look up the Pod and kubectl describe pod chartname-project1234-module5678-dc7db787-skqvv you will probably see that it has a single container that has the expected name project1234-module5678-pod. Pretty much the only time you need to use this is if you need to kubectl logs (or, more rarely, kubectl exec) in a multi-container pod; if you are in this case, you'll appreciate having a shorter name, and since the container names are always scoped to the specific pod in which they appear, there's nothing wrong with using a short fixed name here



          spec:
          containers:
          - name: container





          share|improve this answer
























          • This has been very enlightening. Thank you very much for your time!

            – libzz
            Nov 27 '18 at 4:41











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387144%2fwhy-doesnt-helm-use-the-name-defined-in-the-deployment-template%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          Pods created from a Deployment always have a generated name based on the Deployment's name (and also the name of the intermediate ReplicaSet, if you go off and look for it). You can't override it.



          Given the YAML you've shown, I'd expect that this fragment:



          apiVersion: apps/v1
          kind: Deployment
          metadata:
          name: {{ template "project1234.module5678.fullname" . }}


          expands out to a Deployment name of chartname-project1234-module5678; the remaining bits are added in by the ReplicaSet and then the Pod itself.



          If you do look up the Pod and kubectl describe pod chartname-project1234-module5678-dc7db787-skqvv you will probably see that it has a single container that has the expected name project1234-module5678-pod. Pretty much the only time you need to use this is if you need to kubectl logs (or, more rarely, kubectl exec) in a multi-container pod; if you are in this case, you'll appreciate having a shorter name, and since the container names are always scoped to the specific pod in which they appear, there's nothing wrong with using a short fixed name here



          spec:
          containers:
          - name: container





          share|improve this answer
























          • This has been very enlightening. Thank you very much for your time!

            – libzz
            Nov 27 '18 at 4:41
















          1














          Pods created from a Deployment always have a generated name based on the Deployment's name (and also the name of the intermediate ReplicaSet, if you go off and look for it). You can't override it.



          Given the YAML you've shown, I'd expect that this fragment:



          apiVersion: apps/v1
          kind: Deployment
          metadata:
          name: {{ template "project1234.module5678.fullname" . }}


          expands out to a Deployment name of chartname-project1234-module5678; the remaining bits are added in by the ReplicaSet and then the Pod itself.



          If you do look up the Pod and kubectl describe pod chartname-project1234-module5678-dc7db787-skqvv you will probably see that it has a single container that has the expected name project1234-module5678-pod. Pretty much the only time you need to use this is if you need to kubectl logs (or, more rarely, kubectl exec) in a multi-container pod; if you are in this case, you'll appreciate having a shorter name, and since the container names are always scoped to the specific pod in which they appear, there's nothing wrong with using a short fixed name here



          spec:
          containers:
          - name: container





          share|improve this answer
























          • This has been very enlightening. Thank you very much for your time!

            – libzz
            Nov 27 '18 at 4:41














          1












          1








          1







          Pods created from a Deployment always have a generated name based on the Deployment's name (and also the name of the intermediate ReplicaSet, if you go off and look for it). You can't override it.



          Given the YAML you've shown, I'd expect that this fragment:



          apiVersion: apps/v1
          kind: Deployment
          metadata:
          name: {{ template "project1234.module5678.fullname" . }}


          expands out to a Deployment name of chartname-project1234-module5678; the remaining bits are added in by the ReplicaSet and then the Pod itself.



          If you do look up the Pod and kubectl describe pod chartname-project1234-module5678-dc7db787-skqvv you will probably see that it has a single container that has the expected name project1234-module5678-pod. Pretty much the only time you need to use this is if you need to kubectl logs (or, more rarely, kubectl exec) in a multi-container pod; if you are in this case, you'll appreciate having a shorter name, and since the container names are always scoped to the specific pod in which they appear, there's nothing wrong with using a short fixed name here



          spec:
          containers:
          - name: container





          share|improve this answer













          Pods created from a Deployment always have a generated name based on the Deployment's name (and also the name of the intermediate ReplicaSet, if you go off and look for it). You can't override it.



          Given the YAML you've shown, I'd expect that this fragment:



          apiVersion: apps/v1
          kind: Deployment
          metadata:
          name: {{ template "project1234.module5678.fullname" . }}


          expands out to a Deployment name of chartname-project1234-module5678; the remaining bits are added in by the ReplicaSet and then the Pod itself.



          If you do look up the Pod and kubectl describe pod chartname-project1234-module5678-dc7db787-skqvv you will probably see that it has a single container that has the expected name project1234-module5678-pod. Pretty much the only time you need to use this is if you need to kubectl logs (or, more rarely, kubectl exec) in a multi-container pod; if you are in this case, you'll appreciate having a shorter name, and since the container names are always scoped to the specific pod in which they appear, there's nothing wrong with using a short fixed name here



          spec:
          containers:
          - name: container






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 26 '18 at 21:27









          David MazeDavid Maze

          14.2k31327




          14.2k31327













          • This has been very enlightening. Thank you very much for your time!

            – libzz
            Nov 27 '18 at 4:41



















          • This has been very enlightening. Thank you very much for your time!

            – libzz
            Nov 27 '18 at 4:41

















          This has been very enlightening. Thank you very much for your time!

          – libzz
          Nov 27 '18 at 4:41





          This has been very enlightening. Thank you very much for your time!

          – libzz
          Nov 27 '18 at 4:41




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387144%2fwhy-doesnt-helm-use-the-name-defined-in-the-deployment-template%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Xamarin.form Move up view when keyboard appear

          Post-Redirect-Get with Spring WebFlux and Thymeleaf

          Anylogic : not able to use stopDelay()