{"id":21428091,"url":"https://github.com/redhat-developer-demos/guru-night","last_synced_at":"2025-07-14T10:31:43.417Z","repository":{"id":91531452,"uuid":"184083542","full_name":"redhat-developer-demos/guru-night","owner":"redhat-developer-demos","description":null,"archived":false,"fork":false,"pushed_at":"2020-07-24T15:24:45.000Z","size":4696,"stargazers_count":3,"open_issues_count":4,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-08T06:51:11.099Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhat-developer-demos.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-29T14:11:06.000Z","updated_at":"2020-07-20T09:07:02.000Z","dependencies_parsed_at":"2024-05-28T06:00:18.827Z","dependency_job_id":null,"html_url":"https://github.com/redhat-developer-demos/guru-night","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/redhat-developer-demos/guru-night","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer-demos%2Fguru-night","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer-demos%2Fguru-night/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer-demos%2Fguru-night/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer-demos%2Fguru-night/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-developer-demos","download_url":"https://codeload.github.com/redhat-developer-demos/guru-night/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-developer-demos%2Fguru-night/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265280659,"owners_count":23739852,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T22:10:24.289Z","updated_at":"2025-07-14T10:31:43.408Z","avatar_url":"https://github.com/redhat-developer-demos.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Red Hat Developers Workshop Guide\n:experimental:\n\nHow to setup the workshop using OpenShift4\n\n== Pre-req\n\nThe scripts uses these tools for various functions, please have them installed before proceeding further in the setup.\n\n- https://github.com/mikefarah/yq[yq]\n- https://stedolan.github.io/jq/[jq]\n- https://github.com/che-incubator/chectl[chectl]\n\n== OCP4 Setup\n\n=== RHPDS\n\nSetup OpenShift4 Cluster via RHPDS\n\n=== Bring Your Own Cluster (BYC)\nCreate a OCP4 cluster by visiting try.openshift.com and downloading the openshift installer binary for Linux or Mac\n\n1) ./openshift-install --dir=june22v2 create install-config\n\nFollow the prompts for your SSH key, your favorite AWS Region, your Route53 domain, your PullSecret (visible at try.openshift.com), etc. This creates a directory called \"june22v2\" and inside it a file called install-config.yaml\n\n2) Edit this file to override your aws/azure/gcp Instance Types (the default ones are tiny), here is an example snippet\n\n----\n  name: worker\n  platform:\n     aws:\n       type: m5.4xlarge\n\n  name: master\n  platform:\n     aws:\n       type: c5.4xlarge\n----\n\n3) ./openshift-install --dir=june22v2 create cluster\n\n4) You can monitoring the activity by refreshing your AWS EC2 console\n\n5) Make note of the resulting URLs and the kubeadmin password when the process is completed.  It will take several minutes, go have lunch.\n\n6) Also keep the kubeconfig file in june22v2/auth\n\n7) OpenShift4 CLI for your environment from https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/.\n\n== Assumption\n\nIts assumed that the cluster has been setup in one of the ways as above.\n\n== Workshop setup\n\n=== Set Environment Variables\nCopy `setEnv.example` to `setEnv.sh`. Edit `setEnv.sh` and update the variables with values to match your environment. Login in as OpenShift cluster admin\n\n[source,bash,subs=\"attributes+,+macros]\n----\noc login -u OPENSHIFT_ADMIN_USER -p $OPENSHIFT_ADMIN_USER_PASSWORD $OPENSHIFT_API_URL\n----\n\n== RHPDS\n\n=== Delete quotas\n\n[IMPORTANT]\n=====\n**ONLY FOR RHPDS**\nThe RHPDS by default applies a `ClusterResourceQuota` to the cluster, you need to remove the `ClusterResourceQuota` or alter to allow extra CPU/RAM for successful Istio install\n=====\n\n[source,bash,subs=\"attributes+,+macros\"]\n----\n# (optional) take a the back up of listed clusterresource quotas\noc get clusterresourcequotas.quota.openshift.io clusterquota-opentlc-mgr -o yaml \u003e \u003cyour-backup-dir\u003e/clusterquota-opentlc-mgr.yaml\n# scale down the operator\noc -n gpte-userquota-operator scale deployments --replicas=0 userquota-operator\n# delete the mulitproject clusterresource quota\noc delete clusterresourcequotas.quota.openshift.io clusterquota-opentlc-mgr\n# check if its deleted\noc get clusterresourcequotas.quota.openshift.io\n----\n\n=== Install Nexus\n\nSince there will be lot java artifacts required\n\n[source,bash,subs=\"attributes+,+macros\"]\n----\noc new-project rhd-workshop-infra\noc new-app -n rhd-workshop-infra sonatype/nexus\n----\n\n=== Create Workshop Users\n\n[NOTE]\n=====\nIf you are using RHPDS then the users are already created, hence you skip this step\n=====\n\n[source,bash]\n----\n./workshopper createUsers\n----\n\n=== Install Operators\n\nAll the components such as Knative Serving, Knative Eventing, Eclipse Che and Tekton will be installed using operators via https://opeatorhub.io[Opeator Hub]. As a first step towards that we need to install the sources from where the components will be installed\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installCatalogSources\n----\n\n[NOTE]\n====\nIt will take few minutes to get the operator sources to be configured\n====\n\nPlease check if your Operator Catalog looks like below before proceeding to next steps:\n\nNavigate to project `openshift-operators` and navigate to menu:Catalog[Operator Management \u003e Operator Catalogs]\n\nimage::./screenshots/operator_catalogs.png[]\n\n=== Eclipse Che\n\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\n$ *bash \u003c(curl -sL  https://www.eclipse.org/che/chectl/)*\n$ *./workshopper createCheCluster*\n----\n\n==== Workshop Che optimizations\n\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\ncat ./config/che/che.env | oc set env -e - deployment/che -n che\n----\n\n====== Get Keycloak Password\n\n[source,bash,subs=\"attributes+,+macros]\n----\n\"export KEYCLOAK_PASSWORD=$(oc get -n che deployment keycloak -o jsonpath='{.spec.template.spec.containers[pass:['*']].env[?(@.name==\"KEYCLOAK_PASSWORD\")].value}')\n----\n\n====== Get Eclipse Che URL\n\n[source,bash,subs=\"attributes+,+macros]\n----\noc get routes -n che che -o yaml | yq r - 'spec.host'\n----\n\n====== Get Keycloak URL\n\n[source,bash,subs=\"attributes+,+macros]\n----\noc get routes -n che keycloak -o yaml | yq r - 'spec.host'\n----\n\nThe following section are optional based on what components that might be needed for the workshop.\n\n=== Install Istio\n\nIstio will will be installed using Red Hat Servicemesh Operator, the following section details on how to install using operator and oc CLI.\n\n[source,bash,subs=\"attributes+,+macros\"]\n----\n./workshopper installServicemesh\n----\n\nIt will take for some time for Servicemesh and its dependencies to be resolve, you can watch the status via:\n\n[source,bash,subs=\"attributes+,+macros\"]\n----\nwatch 'oc get csv -n openshift-operators'\n----\n\nA successful install will show an output like\n\n[source,bash]\n----\nNAME                                         DISPLAY                          VERSION\n           REPLACES   PHASE\nelasticsearch-operator.4.1.18-201909201915   Elasticsearch Operator           4.1.18-2019\n09201915              Succeeded\njaeger-operator.v1.13.1                      Jaeger Operator                  1.13.1\n                      Succeeded\nkiali-operator.v1.0.5                        Kiali Operator                   1.0.5\n                      Succeeded\nservicemeshoperator.v1.0.0                   Red Hat OpenShift Service Mesh   1.0.0\n                      Succeeded\n----\n\nIMPORTANT: Operator versions may vary from your output based on the latest available csv\n\n===== Deploy Control Plane\n\n[source,bash,subs=\"attributes+,+macros\"]\n----\n./workshopper createServicemesh\n----\n\nNOTE: It will take sometime for Istio to be deployed completely, wait for all the Istio Pods to be available:\n[source,bash,subs=\"attributes+,+macros\"]\n----\noc -n istio-system get pods -w\n----\n\n[NOTE]\n====\nIf you see no pods getting created for long time, try running the command to `oc get svc -n istio-system` to see if the Servicemesh operators are copied to `istio-system` namespace. If you see them copied or copying wait for the copy to be done and run the command `./workshopper createServicemesh` again.\n====\n\n==== Get all Service URLS of Istio Services\n\n[source,bash,subs=\"attributes+,+macros]\n----\noc get routes -n istio-system -o custom-columns='NAME:.metadata.name,URL:.spec.host'\n----\n\n==== Create Istio service member roll\n----\n./workshopper addProjectsToServicemesh\n----\n\n===== Verify projects added Istio service member roll\n----\noc get -n istio-system ServiceMeshMemberRoll -o yaml\n----\n\n=== Install Knative\n\nWe will be using Knative Serving and Knative Eventing Operators to install Knative Serving and Eventing components:\n\n==== Knative Serving\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKnativeServing\n----\n\n[NOTE]\n====\nIt will take few minutes for the Knative serving pods to appear please run the following commands to watch the status:\n[source,bash,subs=\"attributes+,+macros]\n----\noc -n knative-serving get pods -w\n----\n====\n\n==== Knative Eventing\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKnativeEventing\n----\n\n[NOTE]\n====\nIt will take few minutes for the Knative eventing pods to appear please run the following commands to watch the status:\n[source,bash,subs=\"attributes+,+macros]\n----\noc -n knative-eventing get pods -w\n----\n====\n\n=== Strimzi Kafka\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKafka\n----\n\n[NOTE]\n====\nIt will take few minutes for the Kafka pods to appear please run the following commands to watch the status:\n[source,bash,subs=\"attributes+,+macros]\n----\noc -n kafka get pods -w\n----\n====\n\n=== Knative Eventing Kafka\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKnativeKafka\n----\n\n[NOTE]\n====\nIt will take few minutes for the Knative Eventing Kafka pods to appear please run the following commands to watch the status:\n[source,bash,subs=\"attributes+,+macros]\n----\noc -n knative-eventing get pods -w\n----\n====\n\n.Eventing Sources\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\n$*oc api-resources --api-group=sources.eventing.knative.dev*\nNAME               SHORTNAMES   APIGROUP                       NAMESPACED   KIND\napiserversources                sources.eventing.knative.dev   true         ApiServerSource\ncontainersources                sources.eventing.knative.dev   true         ContainerSource\ncronjobsources                  sources.eventing.knative.dev   true         CronJobSource\nkafkasources                    sources.eventing.knative.dev   true         KafkaSource\nsinkbindings                    sources.eventing.knative.dev   true         SinkBinding\n----\n\n.Channels\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\n$ *oc api-resources --api-group=messaging.knative.dev*\nNAME               SHORTNAMES   APIGROUP                NAMESPACED   KIND\nchannels           ch           messaging.knative.dev   true         Channel\ninmemorychannels   imc          messaging.knative.dev   true         InMemoryChannel\nkafkachannels      kc           messaging.knative.dev   true         KafkaChannel\nparallels                       messaging.knative.dev   true         Parallel\nsequences                       messaging.knative.dev   true         Sequence\nsubscriptions      sub          messaging.knative.dev   true         Subscription\n----\n\n=== OpenShift Pipelines\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installPipelines\n----\n\n[NOTE]\n====\nIt will take few minutes for the OpenShift pipelines pods to appear please run the following commands to watch the status:\n[source,bash,subs=\"attributes+,+macros]\n----\noc -n openshift-pipelines get pods -w\n----\n====\n\n=== kamel\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKamel\n----\n\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\n$ *kubectl api-resources --api-group=camel.apache.org*\nNAME                   SHORTNAMES   APIGROUP           NAMESPACED   KIND\nbuilds                              camel.apache.org   true         Build\ncamelcatalogs          cc           camel.apache.org   true         CamelCatalog\nintegrationkits        ik           camel.apache.org   true         IntegrationKit\nintegrationplatforms   ip           camel.apache.org   true         IntegrationPlatform\nintegrations           it           camel.apache.org   true         Integration\n----\n\n[IMPORTANT]\n----\nRun `kamel install` in the namespace where you want kamel integrations to be deployed.\nSince the opeator and API are setup globally in previous setup, you can skip the install using the options `--skip-cluster-setup` and `--skip-operator-setup` -- that is, `kamel install --skip-operator-setup --skip-cluster-setup` --\n----\n\n=== Knative Camel\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper installKnativeCamel\n----\n\n.Sources\n[source,bash,subs=\"+quotes,attributes+,+macros]\n----\n$*oc api-resources --api-group=sources.eventing.knative.dev*\nNAME               SHORTNAMES   APIGROUP                       NAMESPACED   KIND\napiserversources                sources.eventing.knative.dev   true         ApiServerSource\n*camelsources                    sources.eventing.knative.dev   true         CamelSource*\ncontainersources                sources.eventing.knative.dev   true         ContainerSource\ncronjobsources                  sources.eventing.knative.dev   true         CronJobSource\nkafkasources                    sources.eventing.knative.dev   true         KafkaSource\nsinkbindings                    sources.eventing.knative.dev   true         SinkBinding\n----\n\n== Workshop users, projects and quotas\n\n=== Cache frequently used container images\n\n[source,bash,subs=\"attributes+,+macros]\n----\n./workshopper cacheImages\n----\n\n=== Create Workshop User Group and Role\n[source,bash]\n-----\n./workshopper usersAndGroups\n-----\n\nYou can check the group users via command, which should basically list all workshop users.\n\n[source,bash]\n----\noc get groups workshop-students\n----\n\n=== Create Eclipse Che Users\n\n[source,bash]\n-----\n./workshopper createCheUsers\n-----\n\n=== Create Eclipse Che User Workspaces\n\n[source,bash]\n-----\n./workshopper createWorkspaces\n-----\n\nIt will take sometime to create the workspaces, all the workspaces created will be logged in `$PROJECT_HOME/workspace.txt` file.\n\n=== Create and configure Workshop Projects\n\n==== Create project\n\n[source,bash]\n-----\n./workshopper configProjects\n-----\n\n==== Annotate project\n\nAnnotate the projects with right OpenShift user to allow resource quotas to be applied\n\n[source,bash]\n-----\n./workshopper annotateProjects\n-----\n\n==== Configure project\n\n[source,bash]\n-----\n./workshopper configProjects\n-----\n\n== Cleanup\n\n[source,bash]\n-----\n./workshopper cleanup\n-----\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer-demos%2Fguru-night","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-developer-demos%2Fguru-night","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-developer-demos%2Fguru-night/lists"}