duyet / charts

Collection of useful Helm Charts. Well test with KinD and Kubeconform
https://duyet.github.io/charts/
MIT License
15 stars 16 forks source link

"Could not find requested resource". Ingress error for apiVersion: networking.k8s.io/v1 #122

Open mustafaaykon opened 1 year ago

mustafaaykon commented 1 year ago

I am getting error while trying to enable ingress. The message is "Could not find requested resource". I checked the ingress.yaml and saw "apiVersion: networking.k8s.io/v1beta1". I am pretty new in this area, if i am missing something please help me :). ServiceType: LoadBalancer is running successfully.

duyet commented 1 year ago

This can be your cluster version is not compatible with this chart. Could you give me your cluster version?

mustafaaykon commented 1 year ago

Hi duyet, Thanks for your effort. Your chart is awesome! My cluster version is 1.22 and my api version is k8s.networking.io/v1 I overwrote your "ingress.yaml". It worked successfully for now. But, it is not covering other versions for now :/

mustafaaykon commented 1 year ago

Additionally, i want to put my k8s secret inside of the chart and use it as a environment variable. How can i do that? Thanks! Best regards.

duyet commented 1 year ago

Hi @mustafaaykon, I updated all the charts to make them compatible with all Kubernetes networking versions. You can give it another try without overwriting the ingress.yaml.

Regarding using environment variables, most of the charts have the extraEnvs, extraEnvVarsCM or env option. Could you tell me which chart you are using? If it is missing, I will update it to support that.

mustafaaykon commented 1 year ago

Thanks for your help @duyet . Actually, i am trying to use "Zeppelin Chart".

duyet commented 1 year ago

Hi @mustafaaykon, I updated the chart to support that. Please follow as this PR https://github.com/duyet/charts/pull/125#issue-1528344098

Let me know if you have any problem.

mustafaaykon commented 1 year ago

Hi @duyet. I got some problem with k8s Secret part. I am writing my secret name and the secret already exist in namespace. But whenever i tried to read it with python or spark. It is returning 'None'.

duyet commented 1 year ago

Hi @mustafaaykon, could you please give me your values.yaml file or your helm installing command?

mustafaaykon commented 1 year ago
replicaCount: 1

image:
  repository: apache/zeppelin
  tag: 0.10.1
  pullPolicy: IfNotPresent

imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""

env:
  SERVICE_DOMAIN: <"my_host_name">
  ZEPPELIN_K8S_SPARK_CONTAINER_IMAGE: <my private pyspark operator image version is v3.1.1> 
  ZEPPELIN_K8S_CONTAINER_IMAGE: apache/zeppelin:0.10.1
  ZEPPELIN_K8S_NAMESPACE: zeppelin
  ZEPPELIN_HOME: /opt/zeppelin
  ZEPPELIN_PORT: 8080
  ZEPPELIN_SERVER_RPC_PORTRANGE: 12320:12320
  FLINK_HOME: /opt/flink
  SPARK_MASTER: k8s://https://kubernetes.default.svc
  SPARK_HOME: /spark
# extraEnvVarsCM -- Extra env configmap name
extraEnvVarsCM: ""

# extraEnvVarsSecret -- Extra env secret name
extraEnvVarsSecret: <"my secret name">

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # Annotations to add to the service account
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name: ""

podAnnotations: {}

podSecurityContext: {}
  # fsGroup: 2000

securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  hosts:
    - host: <my_host_name>
      paths: ['/']
  pathType: Prefix

  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

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

autoscaling:
  enabled: true
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
  # targetMemoryUtilizationPercentage: 80

nodeSelector:
  kubernetes.io/os: linux

tolerations: []

affinity: {}
``
zanoni23 commented 1 year ago

The zeppelin ingress yaml is out of date. It is using the old spec. Ever since sometime last year with recent ingress controllers you need to specify ingressClassName in spec, and not as an annotation. And the backend config has changed format, and you have to specify pathType. Fro example (from another app):

spec:
  ingressClassName: {{ .Values.ingress.className }}
  {{- if .Values.ingress.tls_secretName }}
  tls:
    - hosts:
      - {{ .Values.ingress.host | quote }}
      secretName: {{ .Values.ingress.tls_secretName }}
  {{- end }}
  rules:
    - host: {{ .Values.ingress.host | quote }}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: {{ $fullName }}
                port:
                  number: 80