Problems installing kong-ingress with rancher

We are trying to install the kong-ingress controller into a rancher cluster.

rancher app install --set ingressController.enabled=true --set ingressController.ingressClass=ingress-kong --namespace kong-ingress kong kong-ingress

When we look into the status of the APP in the Rancher UI, it stays stalled at status INSTALLING with the error message:

Wait helm template failed. Error: found in requirements.yaml, but missing in charts/ directory: postgresql, cassandra : exit status 1

Is there a better way to install into this environment?

Component Version
Rancher v2.3.1
User Interface v2.3.18
Helm v2.10.0-rancher12

It seems like Rancher can’t handle sub-charts inside Helm.
Can you verify that with Rancher folks?

I’ll try to follow up with Rancher about that. In the mean time, should we just deploy via helm?
Does this look like a valid way to install:

helm install stable/kong --set ingressController.enabled=true --set ingressController.ingressClass=ingress-kong --namespace kong --name ingress-kong

Yes, that looks valid to me.
I’d also recommend to add --set postgresql.enabled=false and --set env.database="off", which deploys the controller without a database and doesn’t even require the two sub-charts.

I believe that we need the DB to support the JWT plugin that we use.

So we have kong installed as an ingress controller now, but I’m having issues deploying an application ingress. The application install gets this error in the Rancher UI for the APP:

Failed to install app ci-settings-auth-proxy. Error: release ci-settings-auth-proxy failed: kongingresses.configuration.konghq.com is forbidden: User "u-o2uifphcfl" cannot create kongingresses.configuration.konghq.com in the namespace "app-services"

Is this really about my user permissions? We don’t think so, since I am an owner of the namespace “app-services”.

Here are the definitions for the ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ci-settings-auth-proxy-ingress
  namespace: app-services
  annotations:
    plugins.konghq.com: jwt-plugin
    kubernetes.io/ingress.class: ingress-kong
    configuration.konghq.com: ci-settings-auth-proxy-kongingress

spec:
  rules:
    - http:
        paths:
          - path: /v4/settings
            backend:
              serviceName: ci-settings-auth-proxy
              servicePort: 80

apiVersion: configuration.konghq.com/v1
kind: KongIngress
metadata:
  name: ci-settings-auth-proxy-kongingress
  namespace: app-services
proxy:
  protocols:
    - http
  path: /
route:
  strip_path: false
  preserve_host: true

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  namespace: app-services
  name: jwt-plugin
config:
  claims_to_verify: exp
plugin: jwt

I need the KongIngress resource so that I can specify “strip_path: false”.
Kong was installed this way:

rancher app install -n kong --set ingressController.enabled=true --set ingressController.ingressClass=ingress-kong --version 0.21.1 kong kong-ingress

Just curious, how did you resolve this? I don’t have any experience with Rancher but sharing the fix here will help folks who run into the same problem in future.

That’s what it looks like.
This again could be something Rancher specific (I’m not sure).
Could you check in with Rancher folks how they handle CRDs (Custom Resource Definitions)?


© 2019 Kong Inc.    Terms  •  Privacy  •  FAQ