none
Cannot deploy using helm RRS feed

  • Question

  • Dear all,

    I have setup a build and deployment pipeline to deploy to AKS. Build works, but deploymnet fails. I get the following error message and do not know where to adapt:

    [error]Error: release Release-21 failed: Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.ImagePullSecrets: []v1.LocalObjectReference: readObjectStart: expect { or n, but found ", error found in #10 byte of ...|ecrets":["myaksdocke|..., bigger context ...|ol":"TCP"}],"resources":{}}],"imagePullSecrets":["myaksdockerauth"]}}}}


    Thanks a lot for your help.

    BR

    Harry

    PS:

    I get the following result when executing:

    helm install --debug --dry-run charts\customersvc
    [debug] SERVER: "127.0.0.1:50882"
    
    [debug] Original chart version: ""
    [debug] CHART PATH: C:\Users\harald.bayer\VS Pojects\MicroSVC\Application\CustomerSVC\charts\customersvc
    
    NAME:   jaunty-gopher
    REVISION: 1
    RELEASED: Mon Apr 15 14:08:00 2019
    CHART: customersvc-0.1.0
    USER-SUPPLIED VALUES:
    {}
    
    COMPUTED VALUES:
    affinity: {}
    fullnameOverride: customersvc
    image:
      pullPolicy: IfNotPresent
      repository: customersvc
      tag: stable
    imagePullSecrets: []
    ingress:
      annotations: null
      enabled: true
      path: /
      tls: []
    nodeSelector: {}
    probes:
      enabled: false
    replicaCount: 1
    resources: {}
    secrets: {}
    service:
      port: 80
      type: LoadBalancer
    tolerations: []
    
    HOOKS:
    MANIFEST:
    
    ---
    # Source: customersvc/templates/service.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: customersvc
      labels:
        app: customersvc
        chart: customersvc-0.1.0
        release: jaunty-gopher
        heritage: Tiller
    spec:
      type: LoadBalancer
      ports:
        - port: 80
          targetPort: http
          protocol: TCP
          name: http
      selector:
        app: customersvc
        release: jaunty-gopher
    ---
    # Source: customersvc/templates/deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: customersvc
      labels:
        app: customersvc
        chart: customersvc-0.1.0
        draft: draft-app
        release: jaunty-gopher
        heritage: Tiller
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: customersvc
          release: jaunty-gopher
      template:
        metadata:
          labels:
            app: customersvc
            draft: draft-app
            release: jaunty-gopher
          annotations:
            buildID:
        spec:
          containers:
            - name: customersvc
              image: "customersvc:stable"
              imagePullPolicy: IfNotPresent
              ports:
                - name: http
                  containerPort: 80
                  protocol: TCP
              env:
              resources:
                {}
    ---
    # Source: customersvc/templates/ingress.yaml
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: customersvc
      labels:
        app: customersvc
        chart: customersvc-0.1.0
        release: jaunty-gopher
        heritage: Tiller
    spec:
      rules:



    Monday, April 15, 2019 11:57 AM

All replies

  • Hi Harry,

    I hope the error occurred during the deployment is mentioned in the first box in your question. Can you repost the error because some of the error messages are truncated. If possible please for mat the error into multiple lines.

    Also try to deploy with debug flag and without dry run flag and post the output here.

    Tuesday, April 16, 2019 10:06 AM
    Moderator
  • Hi,

    please find the error below:

    2019-04-15T11:51:49.8430090Z [command]/usr/local/bin/helm upgrade --install --force --wait

    --set image.repository=microsvcpocacr.azurecr.io/myaksd68b --set image.tag=11

    --set ingress.enabled=true --set ingress.hostname=sampleapp.c19a0d6ee59f4ae5b2b5.westeurope.aksapp.io

    --set applicationInsights.InstrumentationKey=$(aiKey) --set imagePullSecrets={myaksdockerauth}

    Release-21 /home/vsts/work/r1/a/Drop/drop/customersvc-0.1.0.tgz 2019-04-15T11:51:57.6472313Z Release "Release-21" does not exist. Installing it now. 2019-04-15T11:51:57.6474797Z Error: release Release-21 failed:

    Deployment in version "v1" cannot be handled as a Deployment: v1.Deployment.Spec:

    v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.ImagePullSecrets:

    []v1.LocalObjectReference: readObjectStart:

    expect { or n, but found ", error found in #10 byte of ...|ecrets":["myaksdocke|..., bigger context ...|

    ol":"TCP"}],"resources":{}}],"imagePullSecrets":["myaksdockerauth"]}}}} 2019-04-15T11:51:57.6476354Z |...


    Tuesday, April 16, 2019 10:51 AM
  • HI,

    I suspect a syntax issue in the chart or some value which we passed to the secret is not proper.

    Please lint the chart and check for possible issues.

    helm lint <chart name>

    Wednesday, April 17, 2019 10:51 AM
    Moderator
  • Hi,

    I executed 

    helm lint --set image.repository=microsvcpocacr.azurecr.io/myaksd68b --set image.tag=11 --set

    ingress.enabled=true --set ingress.hostname=sampleapp.c19a0d6ee59f4ae5b2b5.westeurope.aksapp.io

    --set imagePullSecrets=myaksdockerauth charts\customersvc\


    and got no errors:

    ==> Linting charts\customersvc\
    [INFO] Chart.yaml: icon is recommended
    
    1 chart(s) linted, no failures


    I am trying to identify the unexpected " but I cannot find it. 

    BR

    Wednesday, April 17, 2019 12:29 PM
  • Hi,

    Linting is successful. So no syntax errors. 

    I suggest you to verify the inputs provided tot he help chart.

    Do you have the secret "myaksdockerauth" available in AKS already?

    Can you try without the secret once.

    Will you be able to share the chart, Its difficult to suggest for corrections without seeing the chart.

    Monday, April 22, 2019 8:46 AM
    Moderator
  • Hi,

    thanks a lot for your support. The secret is available in AKS:

    kubectl get secret
    NAME                  TYPE                                  DATA   AGE
    azds-storage          Opaque                                2      24d
    default-token-h4wzd   kubernetes.io/service-account-token   3      52d
    myaksdockerauth       kubernetes.io/dockerconfigjson        1      4d22h

    Unfortunately I cannot try without the secret as the container registry is secured.

    Please find the yaml files below. In the meantime I tried to hardcode the secret name, but this also did not work.

    chart.yaml:

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

    values.yaml

    # Default values for customersvc.
    # This is a YAML-formatted file.
    # Declare variables to be passed into your templates.
    fullnameOverride: customersvc
    replicaCount: 1
    image:
      repository: customersvc
      tag: stable
      pullPolicy: IfNotPresent
    imagePullSecrets: 
    - name: myaksdockerauth
      # Optionally specify an array of imagePullSecrets.
      # Secrets must be manually created in the namespace.
      # ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
      #
      # This uses credentials from secret "myRegistryKeySecretName".
      # - name: myRegistryKeySecretName
    service:
      type: LoadBalancer
      port: 80
    
    probes:
      enabled: false
    
    ingress:
      enabled: true
      annotations:
        # kubernetes.io/tls-acme: "true"
      path: /
      # hosts:
      #   - chart-example.local
      tls: []
        # - secretName: chart-example-tls
        #   hosts:
        #     - chart-example.local
    secrets: {}
      # Optionally specify a set of secret objects whose values
      # will be injected as environment variables by default.
      # You should add this section to a file like secrets.yaml
      # that is explicitly NOT committed to source code control
      # and then include it as part of your helm install step.
      # ref: https://kubernetes.io/docs/concepts/configuration/secret/
      #
      # This creates a secret "mysecret" and injects "mypassword"
      # as the environment variable mysecret_mypassword=password.
      # mysecret:
      #   mypassword: password
    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: 128Mi
      # requests:
      #  cpu: 100m
      #  memory: 128Mi
    nodeSelector: {}
    
    tolerations: []
    
    affinity: {}

    service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: {{ template "customersvc.fullname" . }}
      labels:
        app: {{ template "customersvc.name" . }}
        chart: {{ template "customersvc.chart" . }}
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    spec:
      type: {{ .Values.service.type }}
      ports:
        - port: {{ .Values.service.port }}
          targetPort: http
          protocol: TCP
          name: http
      selector:
        app: {{ template "customersvc.name" . }}
        release: {{ .Release.Name }}
    

    deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: {{ template "customersvc.fullname" . }}
      labels:
        app: {{ template "customersvc.name" . }}
        chart: {{ template "customersvc.chart" . }}
        draft: {{ default "draft-app" .Values.draft }}
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    spec:
      replicas: {{ .Values.replicaCount }}
      selector:
        matchLabels:
          app: {{ template "customersvc.name" . }}
          release: {{ .Release.Name }}
      template:
        metadata:
          labels:
            app: {{ template "customersvc.name" . }}
            draft: {{ default "draft-app" .Values.draft }}
            release: {{ .Release.Name }}
          annotations:
            buildID: {{ .Values.buildID }}
        spec:
          containers:
            - name: {{ .Chart.Name }}
              image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
              imagePullPolicy: {{ .Values.image.pullPolicy }}
              ports:
                - name: http
                  containerPort: 80
                  protocol: TCP
              {{- if .Values.probes.enabled }}
              livenessProbe:
                httpGet:
                  path: /
                  port: http
              readinessProbe:
                httpGet:
                  path: /
                  port: http
              {{- end }}
              env:
                {{- $root := . }}
                {{- range $ref, $values := .Values.secrets }}
                {{- range $key, $value := $values }}
                - name: {{ $ref }}_{{ $key }}
                  valueFrom:
                    secretKeyRef:
                      name: {{ template "customersvc.fullname" $root }}-{{ $ref | lower }}
                      key: {{ $key }}
                {{- end }}
                {{- end }}
              resources:
          imagePullSecrets:
            - name: myaksdockerauth
        {{- with .Values.nodeSelector }}
          nodeSelector:
    {{ toYaml . | indent 8 }}
        {{- end }}
        {{- with .Values.affinity }}
          affinity:
    {{ toYaml . | indent 8 }}
        {{- end }}
        {{- with .Values.tolerations }}
          tolerations:
    {{ toYaml . | indent 8 }}
        {{- end }}
    

    ingress.yaml

    {{- if .Values.ingress.enabled -}}
    {{- $fullName := include "customersvc.fullname" . -}}
    {{- $servicePort := .Values.service.port -}}
    {{- $ingressPath := .Values.ingress.path -}}
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: {{ $fullName }}
      labels:
        app: {{ template "customersvc.name" . }}
        chart: {{ template "customersvc.chart" . }}
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    {{- with .Values.ingress.annotations }}
      annotations:
    {{ toYaml . | indent 4 }}
    {{- end }}
    spec:
    {{- if .Values.ingress.tls }}
      tls:
      {{- range .Values.ingress.tls }}
        - hosts:
          {{- range .hosts }}
            - {{ . }}
          {{- end }}
          secretName: {{ .secretName }}
      {{- end }}
    {{- end }}
      rules:
      {{- range .Values.ingress.hosts }}
        - host: {{ . }}
          http:
            paths:
              - path: {{ $ingressPath }}
                backend:
                  serviceName: {{ $fullName }}
                  servicePort: http
      {{- end }}
    {{- end }}
    

    secrets.yaml

    {{- $root := . }}
    {{- range $name, $values := .Values.secrets }}
    apiVersion: v1
    kind: Secret
    metadata:
      name: {{ template "customersvc.fullname" $root }}-{{ $name | lower }}
    data:
      {{- range $key, $value := $values }}
      {{ $key }}: {{ $value | b64enc }}
      {{- end }}
    ---
    {{- end }}
    

    Tuesday, April 23, 2019 6:42 AM
  • Hi,

    I see a secret called "azds-storage".

    Do you have Azure dev spaces enabled on the cluster?

    If yes , Then try to deploy this helm chart on a different namespace. 

    I will go through your chart and let you know if there are issues.

    Tuesday, April 23, 2019 9:47 AM
    Moderator
  • Hi,

    yes. It is enabled. It works with azure devspaces:

    kubectl get svc --all-namespaces
    NAMESPACE     NAME                                                  TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)                                     AGE
    default       customersvc                                           LoadBalancer   10.0.215.137   52.233.189.2    80:31506/TCP                                6m20s

    Tuesday, April 23, 2019 11:38 AM
  • Hi,

    Previously the helm install didn't work on the default project right?

    Now it looks like the service got deployed and working fine in the same default namespace.

    Did you made any changes to get the helm install working?

    Tuesday, April 23, 2019 12:37 PM
    Moderator
  • Hi,

    no, I have not made any changes. The deployment from azure devops is still not working. i receive the error message:

    release Release-25 failed: Ingress.extensions "customersvc" is invalid:

    spec: Invalid value: []extensions.IngressRule(nil): either `backend` or `rules` must be specified

    Thanks for your help.

    Tuesday, April 23, 2019 3:10 PM
  • Thanks.

    I was in the assumption that you are unable to deploy using helm when running "helm install" from your laptop.

    Did you got the first error also from the Azure devops?

    Your recent ingress error is because , ingress dont know where to forward the traffic.
    In the begning  you have given the helm install debug output. Please check the  yaml generated for ingress. 

    You need to add the service to forward the traffic to.

    Tuesday, April 23, 2019 4:33 PM
    Moderator
  • Hi,

    yes. They are all from the azure devops pipelines. 

    Wednesday, April 24, 2019 7:20 AM
  • ok. Azure Dev spaces is configured to the default namespace right.

    Can you deploy from Azure devops to a namespace other than default?

    Azure dev spaces adds extra container for all the deployments in the configured namespace. That  will messup when you are deploying from other means.

    Also install the helm chart to other namespace form your laptop. So that we can make sure that you dont have any problems with the helm chart.

    Wednesday, April 24, 2019 8:43 AM
    Moderator
  • I tried to deploy your template.

    i got 2 issues on ingress.

    We need to specify hosts in values.yaml file. Change the path varibale under ingress to paths. Because tenmplates/ingress.yaml expects "paths" in linu number 3. paths has to be an array because templates/ingress.yaml iterated though that.

    I modified the ingress part in values.yaml. Try this out and let me know.

    ingress:
      enabled: true
      annotations:
        # kubernetes.io/tls-acme: "true"
      paths: ['/']
      hosts:
         - somednsname
      tls: []
        # - secretName: chart-example-tls
        #   hosts:
        #     - chart-example.local

    Wednesday, April 24, 2019 9:32 AM
    Moderator
  • Hi,

    unfortunately it does not work.

    I get the following error now:

    2019-04-24T11:52:31.7675127Z ##[error]Error: Error: Reading chart 'customersvc' default values

    (# Default values for customersvc.

    # This is a YAML-formatted file.
    # Declare variables to be passed into your templates.
    fullnameOverride: customersvc
    replicaCount: 1
    image:
    repository: customersvc
    tag: stable
    pullPolicy: IfNotPresent
    imagePullSecrets:
    - name: myaksdockerauth
    # Optionally specify an array of imagePullSecrets.
    # Secrets must be manually created in the namespace.
    # ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
    #
    # This uses credentials from secret "myRegistryKeySecretName".
    # - name: myRegistryKeySecretName
    service:
    type: LoadBalancer
    port: 80
    probes:
    enabled: false
    ingress:
    enabled: true
    annotations:
    # kubernetes.io/tls-acme: "true"
    paths: ['/']
    hosts:
    - customersvc.local
    tls: []
    # - secretName: chart-example-tls
    # hosts:
    # - chart-example.local
    secrets: {}
    # Optionally specify a set of secret objects whose values
    # will be injected as environment variables by default.
    # You should add this section to a file like secrets.yaml
    # that is explicitly NOT committed to source code control
    # and then include it as part of your helm install step.
    # ref: https://kubernetes.io/docs/concepts/configuration/secret/
    #
    # This creates a secret "mysecret" and injects "mypassword"
    # as the environment variable mysecret_mypassword=password.
    # mysecret:
    # mypassword: password
    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: 128Mi
    # requests:
    # cpu: 100m
    # memory: 128Mi
    nodeSelector: {}
    tolerations: []
    affinity: {}): error converting YAML to JSON: yaml: line 29: did not find expected key


    Stupid question: Why must a host been specified? I expected it being optional as found here: https://kubernetes.io/docs/concepts/services-networking/ingress/

    An optional host. In this example, no host is specified, so the rule applies to all inbound HTTP

    traffic through the IP address specified.

    If a host is provided (for example, foo.bar.com), the rules apply to that host.


    I thought  this

     rules:
      {{- range .Values.ingress.hosts }}
        - host: {{ . }}
          http:
            paths:
              - path: {{ $ingressPath }}
                backend:
                  serviceName: {{ $fullName }}
                  servicePort: http

    defines the path to the backing service.



    Wednesday, April 24, 2019 12:02 PM
  • Also helm lint shows an error:

    values.yaml: unable to parse YAML
            error converting YAML to JSON: yaml: line 29: did not find expected key

    Wednesday, April 24, 2019 1:29 PM
  • Hi,
    I turned back some of the changes and solved some issues. Now I have this one left:

    2019-04-24T15:07:18.4539909Z ##[error]Error: release Release-33 failed: Ingress in

    version "v1beta1" cannot be handled as a Ingress: v1beta1.Ingress.Spec:

    v1beta1.IngressSpec.Rules: []v1beta1.IngressRule: decode slice:

    expect [ or n, but found {, error found in #10 byte of ...

    |{"rules":{"http":{"p|..., bigger context ...|tomersvc","namespace":"default"},

    "spec":{"rules":{"http":{"paths":[{"backend":{"serviceName":"custom|...

    Helm install dry-run shows the following:

    # Source: customersvc/templates/ingress.yaml
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: customersvc
      labels:
        app: customersvc
        chart: customersvc-0.1.0
        release: quiet-armadillo
        heritage: Tiller
    spec:
      rules:
          http:
            paths:
              - path: /
                backend:
                  serviceName: customersvc
                  servicePort: http


    Helm lint shows no error:

    [INFO] Chart.yaml: icon is recommended
    
    1 chart(s) linted, no failures

    the ingress.yaml looks now like this:

    {{- $fullName := include "customersvc.fullname" . -}}
    {{- $servicePort := .Values.service.port -}}
    {{- $ingressPath := .Values.ingress.path -}}
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: {{ $fullName }}
      labels:
        app: {{ template "customersvc.name" . }}
        chart: {{ template "customersvc.chart" . }}
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    spec:
      rules:
          http:
            paths:
              - path: / 
                backend:
                  serviceName: {{ $fullName }}
                  servicePort: http


    But it has deployed sth.

    If  I do a 

    kubectl get pod

    NAME                           READY   STATUS             RESTARTS   AGE
    customersvc-54b6d46d5f-hd5rf   1/2     ImagePullBackOff   0          5m44s

    A kubectl describe pod gives me this output:

    Warning Failed 5m29s (x3 over 6m12s) kubelet, aks-agentpool-31244857-2

    Failed to pull image "microsvcpocacr.azurecr.io/myaksd68b:22":

    [rpc error: code = Unknown desc = Error response from daemon:

    manifest for microsvcpocacr.azurecr.io/myaksd68b:22 not found: manifest unknown:

    manifest unknown, rpc error: code = Unknown desc = Error response from daemon:

    Get https://microsvcpocacr.azurecr.io/v2/myaksd68b/manifests/22: unauthorized:

    authentication required, rpc error: code = Unknown desc = Error response from daemon:

    Get https://microsvcpocacr.azurecr.io/v2/myaksd68b/manifests/22:

    unauthorized: authentication required] Warning Failed 5m29s (x3 over 6m12s) kubelet, aks-agentpool-31244857-2 Error: ErrImagePull Normal BackOff 5m2s (x5 over 6m11s) kubelet, aks-agentpool-31244857-2 Back-off pulling image "microsvcpocacr.azurecr.io/myaksd68b:22" Warning Failed 66s (x21 over 6m11s) kubelet, aks-agentpool-31244857-2 Error: ImagePullBackOff

    Is it possible that we are searching at the wrong place? 


    Wednesday, April 24, 2019 3:11 PM
  • I solved the pull problem. It works now. But I still get the error in the release pipeline:

    019-04-25T09:43:51.9193823Z ##[error]Error: release Release-40 failed:

    Ingress in version "v1beta1" cannot be handled as a Ingress:

    v1beta1.Ingress.Spec: v1beta1.IngressSpec.Rules: []v1beta1.IngressRule: decode slice:

    expect [ or n, but found {, error found in #10 byte of ...

    |{"rules":{"http":{"p|..., bigger context ...|tomersvc","namespace":"default"},

    "spec":{"rules":{"http":{"paths":[{"backend":{"serviceName":"custom|...

    Nevertheless the service has been created:

    kubectl get svc
    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)        AGE
    customersvc   LoadBalancer   10.0.144.69   52.232.7.171   80:30097/TCP   4m21s


    the pods are up and running:

    kubectl get pod
    NAME                          READY   STATUS    RESTARTS   AGE
    customersvc-5fb68478c-vdjvz   2/2     Running   0          5m12s

    And the service is reachable from the internet....

    But if i do a helm ls nothing is shown.....

    Thursday, April 25, 2019 9:53 AM
  • Hi,

    Looks like some issue with the ingress values which we have given in Values.yaml.

    i have added a modified ingress in Values.yaml in the previous comment. I hope you have added that suggestion.

    If you are still facing isssues please post the ingress part of your Values.yaml and templates/ingress.yaml

    Thursday, April 25, 2019 10:43 AM
    Moderator
  • Hi,

    do you mean this:

    ingress:
      enabled: true
      annotations:
        # kubernetes.io/tls-acme: "true"
      paths: ['/']
      hosts:
         - somednsname
      tls: []
        # - secretName: chart-example-tls
        #   hosts:
        #     - chart-example.local


    yes, I tried it, but received an error message. Also linting did not work any more.

    2019-04-24T11:52:31.7675127Z ##[error]Error: Error: Reading chart 'customersvc' default values

    (# Default values for customersvc.

    The files look now like this:

    ingress.yaml

    {{- $fullName := include "customersvc.fullname" . -}}
    {{- $servicePort := .Values.service.port -}}
    {{- $ingressPath := .Values.ingress.path -}}
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: {{ $fullName }}
      labels:
        app: {{ template "customersvc.name" . }}
        chart: {{ template "customersvc.chart" . }}
        release: {{ .Release.Name }}
        heritage: {{ .Release.Service }}
    spec:
      rules:
          http:
            paths:
              - path: / 
                backend:
                  serviceName: {{ $fullName }}
                  servicePort: http

    ingress part in values.yaml:

    
    ingress:
      enabled: true
      annotations:
        # kubernetes.io/tls-acme: "true"
      path: /
      #hosts:
      #   - customersvc.local
     # tls: []
        # - secretName: chart-example-tls
        #   hosts:
        #     - chart-example.local
    #secrets: {}
      # Optionally specify a set of secret objects whose values
      # will be injected as environment variables by default.
      # You should add this section to a file like secrets.yaml
      # that is explicitly NOT committed to source code control
      # and then include it as part of your helm install step.
      # ref: https://kubernetes.io/docs/concepts/configuration/secret/
      #
      # This creates a secret "mysecret" and injects "mypassword"
      # as the environment variable mysecret_mypassword=password.
      # mysecret:
      #   mypassword: password
    #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: 128Mi
      # requests:
      #  cpu: 100m
      #  memory: 128Mi
    #nodeSelector: {}




    Thursday, April 25, 2019 10:52 AM