<p>I just installed the keycloak kubernetes operator using the official OperatorHub.io guide: <a href="https://operatorhub.io/operator/keycloak-operator" rel="nofollow noreferrer">https://operatorhub.io/operator/keycloak-operator</a></p>
<p>Afterwards I created an operator deployment by following the official keycloak getting started guide: <a href="https://www.keycloak.org/getting-started/getting-started-operator-kubernetes" rel="nofollow noreferrer">https://www.keycloak.org/getting-started/getting-started-operator-kubernetes</a></p>
<p>I can see that everything works out as the needed pods, the service and the ingress are coming up and are running after a small amount of time. What I don't understand is how to access the ingress created by the deployment as the spec does not specify the normal host of my kubernetes cluster, but this instead:</p>
<pre><code>spec:
  rules:
  - host: keycloak.local
    http:
      paths:
      - backend:
          serviceName: keycloak
          servicePort: 8443
        path: /
        pathType: ImplementationSpecific
</code></pre>
<p>That guide that I used does not specify this. What das keycloak.local mean and how do I access it?</p>
<p>EDIT: My keycloak config looks like this:</p>
<pre><code>apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  labels:
    app: mykeycloak
  name: mykeycloak
  namespace: test
spec:
  externalAccess:
    enabled: true
  instances: 1
status:
  credentialSecret: credential-mykeycloak
  externalURL: https://keycloak.local
  internalURL: https://keycloak.test.svc:8443
  message: &quot;&quot;
  phase: reconciling
  ready: true
  secondaryResources:
    ConfigMap:
    - keycloak-probes
    Deployment:
    - keycloak-postgresql
    Ingress:
    - keycloak
    PersistentVolumeClaim:
    - keycloak-postgresql-claim
    Secret:
    - credential-mykeycloak
    - keycloak-db-secret
    Service:
    - keycloak-postgresql
    - keycloak
    - keycloak-discovery
    StatefulSet:
    - keycloak
  version: 14.0.0
</code></pre>

mike
<p>You have configured the following in your Keycloak CRD.</p>
<pre><code>  externalAccess:
    enabled: true
</code></pre>
<p>That will create an Ingress-Object as you have already posted. By default, the Keycloak Operator is using <em>keycloak.local</em> as value for the <em>host</em>.</p>
<p><a href="https://github.com/keycloak/keycloak-operator/blob/master/deploy/olm-catalog/keycloak-operator/12.0.1/keycloaks.keycloak.org.crd.yaml#L62" rel="nofollow noreferrer">https://github.com/keycloak/keycloak-operator/blob/master/deploy/olm-catalog/keycloak-operator/12.0.1/keycloaks.keycloak.org.crd.yaml#L62</a></p>
<p>So if you would like to change it to <em>keycloak.example.org</em> you have to edit your Keycloak definition to something like:</p>
<pre><code>  externalAccess:
    enabled: true
    host: keycloak.example.org
</code></pre>
<p>Afterwards, your Ingress-Controller will listen to this Path in your request.</p>
<p>This should answer your first question &quot;What das keycloak.local mean&quot;.</p>
<p>Your second question, &quot;how do I access it&quot;:</p>
<p>I assume you have an Ingress Controller deployed on your system. If not, read up on the topic (<a href="https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/</a>).</p>
<p>If you have deployed an Ingress-Controller, you should be able to reach your Keycloak with the defined <em>host</em>.</p>
