Welcome to the Showroom OpenShift application.
Showroom has flexible namespace creation to accomodate deployment as cluster-admin, regular users, or service accounts.
-
Deploying the Helm Chart as cluster-admin (default)
By default, this Helm Chart attempts to create a Namespace for showroom. Cluster-admin can create and manage cluster resources like Namespaces.
-
Deploying as Service Account
If you will be deploying this Helm Chart as a service account, you must create the Namespace in advance. Indicate
--set namespace.create=false
in your execution of this command to avoid RBAC errors. -
Namespace name generation
By default, namespace names are generated as
showroom-GUID
. This may be overriden in your helm execution.
To deploy Showroom you’ll need:
-
A GUID, indicated to helm as
guid
-
A Git repo URL with an Antora website and want OpenShift to build and deploy. Indicated to helm in
documentation.repoUrl
-
Login as an OpenShift user that can create cluster resources (namespaces, etc) like cluster-admin
-
FQDN of your default OpenShift route, indicated to helm in
deployer.domain
-
Example: apps.shared-410.openshift.redhatworkshops.io
-
-
Namespace name will always be prefixed as
showroom-
, and the suffix will beguid
. Defaults toshowroom-test
-
You can override these with helm by indicating
general.namespace=bookbag
andgeneral.guid=test
.
-
-
Optional: To provide sample asciidoc attributes to Showroom content, indicate a yaml file with sample user data.
content.user_data=<path-to-user-data.yaml>
-
Example
$HOME/sample_site/user_data.yaml--- bastion_hostname: my.bastion.hostname.example.com bastion_username: eugenedebbs
-
-
Run
helm template
with parametersgit clone https://github.com/rhpds/showroom-deployer cd ./showroom-deployer/charts helm template ./showroom-single-pod \ --set deployer.domain=apps.shared-410.openshift.redhatworkshops.io \ --set general.guid=GUID \ --set-file content.user_data=<path-to-user-data.yaml> \ --set documentation.repoUrl=https://github.com/rhpds/showroom_template_default \ | oc apply -f -
NoteIf the above doesn’t work, the following worked for me: helm template showroom showroom-single-pod \ --set deployer.domain=apps.shared-410.openshift.redhatworkshops.io \ --set general.guid=my-test \ --set documentation.repoUrl=https://github.com/rhpds/showroom_template_default \ | oc apply -f -
-
Add the helm repo
helm repo add rhpds https://rhpds.github.io/showroom-deployer
-
Refresh the repo
helm repo update
-
Install the latest
helm install myshowroom rhpds/showroom --create-namespace \ --set deployer.domain=apps.shared-410.openshift.redhatworkshops.io \ --set general.guid=GUID \ --set-file content.user_data=<path-to-user-data.yaml> \ --set documentation.repoUrl=https://github.com/rhpds/showroom_template_default helm install myshowroom myrhpds/showroom --set deployer.domain=apps.shared-410.openshift.redhatworkshops.io --set general.guid=test --set-file content.user_data=/Users/jmaltin/tmp/azure-user-data.yaml --debug --create-namespace --set namespace.create=false
Note
|
The above creates the namespace showroom-test where the helm release exists, AND creates the namespace showroom-test2 there the actual application is deployed.
|
Hosting Helm Repo with on https://rhpds.github.io/
I added a few actions to the rhpds github org.
-
helm/[email protected]
-
helm/chart-testing-action@master
-
Setup a branch in your repo which gh-pages will host. Call it
gh-pages
git checkout --orphan gh-pages git rm -rf . git commit -m "Initial commit for gh-pages" --allow-empty git push
-
Get gh-pages working for your repo.
-
Go to the
settings
page on your repository and set thesource branch
to thegh-pages
branch you just created.
-
-
Check out the github workflows in this repo for
-
.github/workflows/release-helm.yaml: Commits to
/charts
triggering a release to https://rhpds.github.io/<your repo name>
-
-
Basic AgD Integration
-
Test applicationSet
-
for dedicated OCP cluster, just install helm chart (?)
It is possible to deploy the helm chart with ArgoCD. This repo provides an ArgoCD/Application for your convenience.
oc create -f ./setup/argocd/application.yaml
The chart can be installed multiple times in one namespace per user. You control this in helm values.yaml.
An easy way to setup and manage a multi-user deployment is via the ArgoCD/ApplicationSet.
oc create -f ./argocd/applicationset.yaml