I encourage an issue regarding setup the TLS Cert-Manager Controller on GKE for WSO2 API Management.
I am using WSO2 product Docker images available from WSO2 Private Docker Registry, following the Helm Chart for the deployment of WSO2 API Manager with WSO2 API Manager Analytics on Github (README). And I successfully deployed the WSO2 API Manager with Nginx Ingress Controller (deploy-a-nginx-ingress-and-a-certitificate-manager-controller-on-gke).
I want to create a Kubernetes cluster on Google Cloud Platform using an Nginx Ingress Controller to integrate with a certificate manager to automate the process of issue and renew the required certificates.
I easily replicate the TLS Cert-Manager Controller on GKE for HelloWorld example from the same medium tutorial (deploy-a-nginx-ingress-and-a-certitificate-manager-controller-on-gke).
hello-app-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
cert-manager.io/issuer: letsencrypt-production
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.k8s.io/v1beta1","kind":"Ingress","metadata":{"annotations":{"cert-manager.io/issuer":"letsencrypt-production","kubernetes.io/ingress.class":"nginx","nginx.ingress.kubernetes.io/ssl-redirect":"true"},"name":"hello-app-ingress","namespace":"default"},"spec":{"rules":[{"host":"test.japangly.xyz","http":{"paths":[{"backend":{"serviceName":"hello-app","servicePort":8080},"path":"/helloworld"}]}}],"tls":[{"hosts":["test.japangly.xyz"],"secretName":"test-japangly-xyz-tls"}]}}
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
creationTimestamp: "2020-08-30T04:27:12Z"
generation: 3
name: hello-app-ingress
namespace: default
resourceVersion: "6478"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/hello-app-ingress
uid: ea2d8b13-e9b6-4cb0-873d-76ed40253e4f
spec:
rules:
- host: test.japangly.xyz
http:
paths:
- backend:
serviceName: hello-app
servicePort: 8080
path: /helloworld
tls:
- hosts:
- test.japangly.xyz
secretName: test-japangly-xyz-tls
status:
loadBalancer:
ingress:
- ip: 35.239.145.46
However, not working the WSO2 API Management, all I get is
Kubernetes Ingress Controller Fake Certificate
wso2am-pattern-1-am-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
cert-manager.io/issuer: letsencrypt-production
kubernetes.io/ingress.class: nginx
meta.helm.sh/release-name: wso2am-pattern-1
meta.helm.sh/release-namespace: wso2-apim
nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/session-cookie-hash: sha1
nginx.ingress.kubernetes.io/session-cookie-name: route
nginx.ingress.kubernetes.io/ssl-redirect: "true"
creationTimestamp: "2020-08-30T04:41:10Z"
generation: 4
labels:
app.kubernetes.io/managed-by: Helm
name: wso2am-pattern-1-am-ingress
namespace: wso2-apim
resourceVersion: "88840"
selfLink: /apis/extensions/v1beta1/namespaces/wso2-apim/ingresses/wso2am-pattern-1-am-ingress
uid: 58f4b549-a565-493b-9f9f-72ad76877819
spec:
rules:
- host: am.japangly.xyz
http:
paths:
- backend:
serviceName: wso2am-pattern-1-am-service
servicePort: 9443
path: /
tls:
- hosts:
- am.japangly.xyz
secretName: am-japangly-xyz-tls
status:
loadBalancer:
ingress:
- ip: 35.239.145.46



cert-managerwas creating the secret but was not provisioning it further.Issueris namespaced resource and needs to be in namespace where yourIngressresides. Please tell if your namespacewso2-apimhave theIssuerneeded to provide the certificate. For troubleshooting you can run$ kubectl describe certificate -n namespace. Also the fake Kubernetes certificate is used when there is an issue with atls: secretpart. - Dawid Kruk