We’ve deployed nginx ingress controller without changing any default value. Now when we are trying to access keycloak service using this nginx proxy it’s responding but not able to access admin console. It keeps ‘loading the admin console’.
here is the configuration of keycloak:
service and deployment: https://raw.githubusercontent.com/keycloak/keycloak-quickstarts/latest/kubernetes-examples/keycloak.yaml
ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: keycloak
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: keycloak.mydomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: keycloak
port:
number: 8080
Due to unchanged default value server-snippets
and location-snippets
are disabled. But if it is mandatory then please provide suggestion along with it.
Any help would be appreciated.
Service.type
is already set to ClusterIP
ERROR in console:
Refused to frame 'http://keycloak.mydomain.com/' because it violates the following Content Security Policy directive: "frame-src 'self'".
Here is the describe output of ingress:
Name: keycloak
Labels: <none>
Namespace: default
Address: <AWSLoadBalancerIP>.elb.amazonaws.com
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
keycloak.prod-pl.qritive.com
/ keycloak:8080 (172.24.28.112:8080)
Annotations: <none>
Events: <none>
2
Answers
Try adding the env var : KEYCLOAK_HOSTNAME & PROXY_ADDRESS_FORWARDING i was also trying to use Nginx ingress.
Check below configuration once
My GitHub ref
By looking into the yaml file of keycloak service, its type is Loadbalancer. Change it to clusterIP and then deploy it. also make sure that
connect the ingress to the respective pod port. if not then run the following command to see the problem
kubectl describe service keycloak