openshift / cluster-authentication-operator

OpenShift operator for the top level Authentication and OAuth configs.
Apache License 2.0
46 stars 96 forks source link

cluster-authentication-operator

The authentication operator is an OpenShift ClusterOperator.
It installs and maintains the Authentication Custom Resource in a cluster and can be viewed with:

oc get clusteroperator authentication -o yaml

The Custom Resource Definition authentications.operator.openshift.io
can be viewed in a cluster with:

$ oc get crd authentications.operator.openshift.io -o yaml

Many OpenShift ClusterOperators share common build, test, deployment, and update methods.
For more information about how to build, deploy, test, update, and develop OpenShift ClusterOperators, see
OpenShift ClusterOperator and Operand Developer Document

This section explains how to deploy OpenShift with your test cluster-authentication-operator image:
Testing a ClusterOperator/Operand image in a cluster

Add a basic IdP to test your stuff

The most common identity provider for demoing and testing is the HTPasswd IdP.

To set it up, take the following steps:

  1. Create a new htpasswd file
    $ htpasswd -bBc /tmp/htpasswd testuser testpasswd
  2. (optional) Add more users
    $ htpasswd -bB /tmp/htpasswd testuser2 differentpassword
  3. Create a secret from that htpasswd in the openshift-config namespace
    oc create secret generic myhtpasswdidp-secret -n openshift-config --from-file=/tmp/htpasswd
  4. Configure the OAuth server to use the HTPasswd IdP from the secret by editing the spec of the cluster-wide OAuth/cluster object so that it looks like the one in this example:
    apiVersion: config.openshift.io/v1
    kind: OAuth
    metadata:
    name: cluster
    spec:
    identityProviders:
    - name: htpassidp
    type: HTPasswd
    htpasswd:
      fileData:
        name: myhtpasswdidp-secret
  5. The operator will now restart the OAuth server deployment and mount the new config
  6. When the operator is available again (oc get clusteroperator authentication), you should be able to log in:
    oc login -u testuser -p testpasswd