===== Creating Local Users in OKD/Openshift 4.21 Using HTPasswd ===== A fresh OKD installation only provides the ``kubeadmin`` user. To allow local users to log in and deploy pods, configure an HTPasswd identity provider. ---- ==== Step 1: Create the htpasswd file ==== docker run --rm \ -v $(pwd):/work \ docker.io/httpd:2 \ htpasswd -cbB /work/users.htpasswd user1 MyPassword123 docker run --rm \ -v $(pwd):/work \ docker.io/httpd:2 \ htpasswd -bB /work/users.htpasswd user2 MyPassword123 docker run --rm \ -v $(pwd):/work \ docker.io/httpd:2 \ htpasswd -bB /work/users.htpasswd user3 MyPassword123 ---- ==== Step 2: Create the secret in the openshift-config namespace ==== oc create secret generic htpasswd-secret \ --from-file=htpasswd=users.htpasswd \ -n openshift-config ---- ==== Step 3: Configure OAuth to use HTPasswd ==== Edit the OAuth configuration: oc edit oauth cluster Add: spec: identityProviders: - name: local-users mappingMethod: claim type: HTPasswd htpasswd: fileData: name: htpasswd-secret Wait for the OAuth operator to restart. ---- ==== Step 4: Test login ==== Log out of the Web Console and log in with: * Username: ``myuser`` * Password: ``MyPassword123`` ---- ==== Step 5: Grant permissions to the new user ==== Allow user to create their own Projects: oc adm policy add-cluster-role-to-user self-provisioner myuser Or give admin access to a specific namespace: oc adm policy add-role-to-user admin myuser -n mynamespace The user can now create and run pods. Grant access to others to existing project: oc adm policy add-role-to-user admin user1 -n project1 oc adm policy add-role-to-user admin user2 -n project1 oc adm policy add-role-to-user admin user3 -n project1