The upstream source for the login, errors, and providers HTML templates for OpenShift.
View the templates at https://openshift.github.io/oauth-templates/.
- Install Jekyll.
- Run
bundle install
. - Run
bundle exec jekyll serve
.
Github Pages only runs in safe mode, preventing the usage of symlinks, so PatternFly source must be manually copied to _includes
.
- Install Yarn.
- Run
yarn upgrade @patternfly/patternfly
. - Copy the contents of
node_modules/@patternfly/patternfly
to_includes/patternfly
. - Delete
_includes/patternfly/assets
and_includes/patternfly/icons
as they are not needed. - Commit the changes.
The default templates for OKD are built into the oauth server template.go files via the following method:
- Copy the generated source in
_site/okd/errors.html
to the corresponding template at https://github.com/openshift/oauth-server/blob/master/pkg/server/errorpage/templates.go. - Copy the generated source in
_site/okd/login.html
to the corresponding template at https://github.com/openshift/oauth-server/blob/master/pkg/server/login/templates.go. - Copy the generated source in
_site/okd/providers.html
to the corresponding template at https://github.com/openshift/oauth-server/blob/master/pkg/server/selectprovider/templates.go. - Submit a pull request to https://github.com/openshift/oauth-server containing the copied changes.
To test the changes:
- Create three key/value secrets in the
openshift-config
namespace with the following values:-
Secret Name:
error
Key:
errors.html
Value: html from
https://github.com/openshift/oauth-server/blob/<HASH>/pkg/server/errorpage/templates.go
-
Secret Name:
login
Key:
login.html
Value: html from
https://github.com/openshift/oauth-server/blob/<HASH>/pkg/server/login/templates.go
-
Secret Name:
provider
Key:
providers.html
Value: html from
https://github.com/openshift/oauth-server/blob/<HASH>/pkg/server/selectprovider/templates.go
-
- Update
spec
inhttps://<HOSTNAME>/k8s/cluster/config.openshift.io~v1~OAuth/cluster/yaml
with the following:templates: error: name: error login: name: login providerSelection: name: provider
- Wait for new pods to be deployed at
https://<HOSTNAME>/k8s/ns/openshift-authentication/pods
To undo the changes for testing:
- Remove the changes from step 2 above at
https://<HOSTNAME>/k8s/cluster/config.openshift.io~v1~OAuth/cluster/yaml
. - Delete the secrets created in step 1 above.
The OCP branded templates take advantage of the override mechanism by providing customized templates via secrets via the following method:
- Copy a Base64-encoded version of the generated source in
_site/ocp/errors.html
to https://github.com/openshift/cluster-authentication-operator/blob/master/manifests/06_branding_secret.yaml#L9. - Copy a Base64-encoded version of the generated source in
_site/ocp/login.html
to https://github.com/openshift/cluster-authentication-operator/blob/master/manifests/06_branding_secret.yaml#L7. - Copy a Base64-encoded version of the generated source in
_site/ocp/providers.html
to https://github.com/openshift/cluster-authentication-operator/blob/master/manifests/06_branding_secret.yaml#L8. - Submit a pull request to https://github.com/openshift/cluster-authentication-operator containing the copied changes.
To test the changes:
- Scale
cluster-version-operator
to zero pods in the web console by visitinghttps://<HOSTNAME>/k8s/ns/openshift-cluster-version/deployments/cluster-version-operator
and using the pod donut controls to set pods to zero. Additionally, pause rollouts viaActions > Pause Rollouts
. - Delete the existing branding secret:
oc delete secret v4-0-config-system-ocp-branding-template -n openshift-authentication
- Recreate the branding secret:
oc create -f https://raw.githubusercontent.com/openshift/cluster-authentication-operator/<HASH>/manifests/06_branding_secret.yaml
- Delete existing openshift-authentication pods so they are regenerated with the new branding secret:
oc delete pods --all -n openshift-authentication
To undo the changes for testing:
- Resume rollouts of
cluster-version-operator
in the web console by visitinghttps://<HOSTNAME>/k8s/ns/openshift-cluster-version/deployments/cluster-version-operator
viaActions > Resume Rollouts
and scale pods back to one using the pod donut controls.