General - Using Terraform to deploy the Helm chart...
# all-things-deployment
h
General - Using Terraform to deploy the Helm charts on the EKS cluster , getting this Release "datahub-prerequisites" does not exist. Installing it now. 98Error: template: datahub-prerequisites/templates/serviceaccount.yaml114: executing "datahub-prerequisites/templates/serviceaccount.yaml" at <.Values.serviceAccount.create>: nil pointer evaluating interface {}.create Has anyone faced this , or any directions on this is greatly appreciated.
e
This is very weird. Prerequisites doesn’t have templates on it’s own. You are using the datahub official helm chart right? Also, I’m suspecting you will only use schema registry?
h
Yes Dexter using only schema registry , do I get rid of the templates folder ?
e
Are you using local helm charts? Did you have to make local changes?
h
No, no local changes required. this folder must have got added during testing. checked against the helm chart repo for Datahub.
e
got it!
let me know if it still fails
h
The pipeline is passing through, but the Helm chart doesnt get deployed. Not sure what could be the issue. Still debuggin.
Resolved the prerequisites issue. Now when I deploy datahub charts I get module.main.helm_release.datahub: Creating... 324Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port.number): invalid type for io.k8s.api.networking.v1.ServiceBackendPort.number: got "string", expected "integer" 325 on ../../helm-datahub.tf line 1, in resource "helm_release" "datahub":
Any Ideas ?
here
@handsome-football-66174
note $svcPort is .Values.service.port above
unless you are specifically setting it to another value
h
Copy code
datahub-frontend:
  enabled: true
  image:
    repository: linkedin/datahub-frontend-react
    tag: "v0.8.14"
  # Set up ingress to expose react front-end
  service:
    type: NodePort
    port: 9002
  ingress:
    enabled: true
    className: "frontend"
    annotations:
      <http://kubernetes.io/ingress.class|kubernetes.io/ingress.class>: alb
      # <https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/annotations/#scheme>
      <http://alb.ingress.kubernetes.io/scheme|alb.ingress.kubernetes.io/scheme>: internal
      # <https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html>
      <http://alb.ingress.kubernetes.io/target-type|alb.ingress.kubernetes.io/target-type>: instance
      <http://alb.ingress.kubernetes.io/certificate-arn|alb.ingress.kubernetes.io/certificate-arn>: <arn>
      <http://alb.ingress.kubernetes.io/inbound-cidrs|alb.ingress.kubernetes.io/inbound-cidrs>: 0.0.0.0/0
      <http://alb.ingress.kubernetes.io/listen-ports|alb.ingress.kubernetes.io/listen-ports>: '[{"HTTP": 80}, {"HTTPS":443}]'
      <http://alb.ingress.kubernetes.io/actions.ssl-redirect|alb.ingress.kubernetes.io/actions.ssl-redirect>: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
      # <https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/annotations/#subnets>
      <http://alb.ingress.kubernetes.io/subnets|alb.ingress.kubernetes.io/subnets>: abc
      <http://alb.ingress.kubernetes.io/backend-protocol|alb.ingress.kubernetes.io/backend-protocol>: HTTP
    hosts:
      - host: <host>
        redirectPaths:
          - path: /*
            name: ssl-redirect
            port: use-annotation
        paths:
          - /*
        hostedZoneId: zone
    tls: [ ]
No changes there. using the usual configuration
e
can you try removing service.port?
h
No change to the error Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port.number): invalid type for io.k8s.api.networking.v1.ServiceBackendPort.number: got "string", expected "integer" helm.go88 [debug] error validating "": error validating data: ValidationError(Ingress.spec.rules[0].http.paths[0].backend.service.port.number): invalid type for io.k8s.api.networking.v1.ServiceBackendPort.number: got "string", expected "integer"
Our EKS cluster version does not effect this ?
e
can you try doing running helm template command
to get the ingress.yaml it’s trying to deploy?
i don’t see why this would fail
h
ok let me try
helm template . -f values.yaml  Error: found in Chart.yaml, but missing in charts/ directory: datahub-gms, datahub-frontend, datahub-mae-consumer, datahub-mce-consumer, datahub-ingestion-cron, datahub-jmxexporter
e
helm dep update
h
@early-lamp-41924 - Let me know a good time to reach out on this. Would like to understand , if it is because of some misconfiguration.
e
Sry i have no more ideas on this one
Can you try talking to cloud infra folks at your company? Looks correct to me
h
@early-lamp-41924 - Once we modify _helper.tpl (in datahub frontend and gms subcharts directory )file to this and use these for deploying the Helm charts
Copy code
{{- define "datahub-frontend.ingress.apiVersion" -}}
{{- if semverCompare ">=1.22-0" .Capabilities.KubeVersion.Version -}}
{{- print "<http://networking.k8s.io/v1|networking.k8s.io/v1>" -}}
{{- else if semverCompare "<1.14-0" .Capabilities.KubeVersion.Version }}
{{- print "extensions/v1beta1" -}}
We are not facing issue. Can we get this modified/create a pull request for the same ?
e
Yes! Feel free to create a pr!
👍 1
h