{"id":22347295,"url":"https://github.com/redhat-na-ssa/demo-ai-gitops-catalog","last_synced_at":"2026-01-29T10:55:09.002Z","repository":{"id":64124175,"uuid":"565621455","full_name":"redhat-na-ssa/demo-ai-gitops-catalog","owner":"redhat-na-ssa","description":"A catalog for demos in GitOps on OpenShift","archived":false,"fork":false,"pushed_at":"2026-01-21T18:11:43.000Z","size":1966,"stargazers_count":18,"open_issues_count":6,"forks_count":16,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-22T04:22:48.992Z","etag":null,"topics":["ai","data-science","gitops","kustomization","kustomize","machine-learning","openshift"],"latest_commit_sha":null,"homepage":"https://redhat-na-ssa.github.io/demo-ai-gitops-catalog/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redhat-na-ssa.png","metadata":{"files":{"readme":"README.md","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,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-14T00:25:32.000Z","updated_at":"2026-01-21T18:11:48.000Z","dependencies_parsed_at":"2026-01-06T15:04:20.793Z","dependency_job_id":null,"html_url":"https://github.com/redhat-na-ssa/demo-ai-gitops-catalog","commit_stats":null,"previous_names":["codekow/demo-ai-gitops-catalog","redhat-na-ssa/demo-ai-gitops-catalog"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/redhat-na-ssa/demo-ai-gitops-catalog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-na-ssa%2Fdemo-ai-gitops-catalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-na-ssa%2Fdemo-ai-gitops-catalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-na-ssa%2Fdemo-ai-gitops-catalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-na-ssa%2Fdemo-ai-gitops-catalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redhat-na-ssa","download_url":"https://codeload.github.com/redhat-na-ssa/demo-ai-gitops-catalog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redhat-na-ssa%2Fdemo-ai-gitops-catalog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28876458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T10:31:27.438Z","status":"ssl_error","status_checked_at":"2026-01-29T10:31:01.017Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ai","data-science","gitops","kustomization","kustomize","machine-learning","openshift"],"created_at":"2024-12-04T10:08:54.704Z","updated_at":"2026-01-29T10:55:08.992Z","avatar_url":"https://github.com/redhat-na-ssa.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenShift Demo GitOps Catalog\n\n[![Spelling](https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/actions/workflows/spellcheck.yaml/badge.svg)](https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/actions/workflows/spellcheck.yaml)\n[![Linting](https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/actions/workflows/linting.yaml/badge.svg)](https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/actions/workflows/linting.yaml)\n\nThis project is a catalog of configurations used to provision infrastructure, on\nOpenShift, that supports machine learning (ML) and artificial intelligence (AI) workloads.\n\nThe intention of this repository is to help support practical use of OpenShift for AI / ML workloads and provide a catalog of configurations / demos / workshops.\n\nPlease look at the [GitOps Catalog](https://github.com/redhat-cop/gitops-catalog) if you only need to automate an operator install.\n\nIn this repo, look at various [kustomized configs](components/cluster-configs) and [argo apps](components/argocd/apps) for ideas.\n\nFor issues with `oc apply -k` see the [known issues](#known-issues) section below.\n\n## Prerequisites - Get a cluster\n\n- OpenShift 4.14+\n  - role: `cluster-admin` - for all [demo](demos) or [cluster](clusters) configs\n  - role: `self-provisioner` - for namespaced components\n\n[Red Hat Demo Platform](https://demo.redhat.com) Options (Tested)\n\nNOTE: The node sizes below are the **recommended minimum** to select for provisioning\n\n- \u003ca href=\"https://demo.redhat.com/catalog?item=babylon-catalog-prod/sandboxes-gpte.sandbox-ocp.prod\u0026utm_source=webapp\u0026utm_medium=share-link\" target=\"_blank\"\u003eAWS with OpenShift Open Environment\u003c/a\u003e\n  - 1 x Control Plane - `m6a.2xlarge`\n  - 0 x Workers - `m6a.2xlarge`\n- \u003ca href=\"https://demo.redhat.com/catalog?item=babylon-catalog-prod/sandboxes-gpte.ocp4-single-node.prod\u0026utm_source=webapp\u0026utm_medium=share-link\" target=\"_blank\"\u003eOne Node OpenShift\u003c/a\u003e\n  - 1 x Control Plane - `m6a.2xlarge`\n- \u003ca href=\"https://catalog.demo.redhat.com/catalog?item=babylon-catalog-prod/openshift-cnv.ocp4-cnv-gitops.prod\u0026utm_source=webapp\u0026utm_medium=share-link\" target=\"_blank\"\u003eOpenShift GitOps Blank Environment\u003c/a\u003e\n  - 1 x Control Plane - `16 cores`, `64Gi`\n\n## Getting Started\n\n### Install the [OpenShift Web Terminal](https://docs.openshift.com/container-platform/4.12/web_console/web_terminal/installing-web-terminal.html)\n\nThe following icon should appear in the top right of the OpenShift web console after you have installed the operator. Clicking this icon launches the web terminal.\n\n![Web Terminal](docs/images/web-terminal.png \"Web Terminal\")\n\nNOTE: Reload the page in your browser if you do not see the icon after installing the operator.\n\n## Make the enhanced web terminal permanent\n\n```sh\n# apply the enhanced web terminal\noc apply -k https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/demos/components/install-web-terminal\n\n# delete old web terminal\n$(wtoctl | grep 'oc delete')\n```\n\nNOTE: The following commands are available in an enhanced web terminal.\n\n\u003c!-- \nEnhance the terminal for **one time use** (ephemeral)\n\n```sh\n# bootstrap the enhanced web terminal\nYOLO_URL=https://raw.githubusercontent.com/redhat-na-ssa/demo-ai-gitops-catalog/main/scripts/library/term.sh\n\n. \u003c(curl -s \"${YOLO_URL}\")\n\nterm_init\n```\n\nNOTE: open a new terminal to full activate the new configuration --\u003e\n\n---\n\n## Apply Configurations / Demos\n\nSome basic cluster config\n\n```sh\n# scale your machinesets\n# this will set all machinesets to replica 2\nocp_machineset_scale 2\n\n# isolate your control plane nodes to not run work\nocp_control_nodes_not_schedulable\n```\n\nPick a demo you want to deploy:\n\n```sh\n# setup a dev spaces demo /w gpu\napply_firmly demos/overlays/devspaces-nvidia-gpu-autoscale\n```\n\n```sh\n# setup a rhoai demo /w gpu\napply_firmly demos/overlays/rhoai-workshop-ready\n```\n\n---\n\n### ALTERNATIVE - Use a local environment / shell\n\n1. Verify you are logged into your cluster using `oc`.\n1. Clone this repository\n\nNOTE: See the [tools section below](#tools) for more info\n\n```sh\n# verify oc login\noc whoami\n\n# git clone this repo\ngit clone https://github.com/redhat-na-ssa/demo-ai-gitops-catalog\ncd demo-ai-gitops-catalog\n\n# load functions into a bash shell\n. scripts/functions.sh\n```\n\n### Alternative - running `bootstrap.sh`\n\nRunning `scripts/bootstrap.sh` will allow you to select common options. This is a work in progress.\n\nThis script handles configurations that are not fully declarative, require imperative steps, or require user interaction.\n\n## Cherry Picking Configurations\n\nVarious kustomized [app configs](components/app-configs) and [cluster configs](components/cluster-configs) can be applied individually.\n\n[Operator installs](components/operators/) can be done quickly via `oc` - similar to the [GitOps Catalog](https://github.com/redhat-cop/gitops-catalog).\n\n`oc apply -k` and `apply_firmly` can be used interchangeably in the examples below:\n\n```sh\n# setup htpasswd based login\noc apply -k components/cluster-configs/login/overlays/htpasswd\n\n# disable self provisioner in cluster\noc apply -k components/cluster-configs/rbac/overlays/no-self-provisioner\n\n# install minio w/ minio namespace\noc apply -k components/app-configs/minio/overlays/with-namespace\n\n# install the nfs provisioner\noc apply -k components/app-configs/nfs-provisioner/overlays/default\n```\n\nExamples with operators that require CRDs\n\n```sh\n# setup serverless w/ instance\napply_firmly components/operators/serverless-operator/aggregate/default\n\n# setup acs with a minimal configuration\napply_firmly components/operators/rhacs-operator/aggregate/minimal\n```\n\n## Common functions\n\nCommon operational tasks are provided in the [scripts library](scripts/library/). You can run individual [functions](scripts/functions.sh) in a `bash` shell:\n\nNOTE: These functions are available in an [enhanced web terminal](components/operators/web-terminal/instance/overlays/enhanced/kustomization.yaml) - see [install above](#install-the-openshift-web-terminal)\n\n```sh\n# load functions\n. scripts/functions.sh\n\nget_functions\n```\n\n\u003c!-- ### Sealed Secrets Bootstrap\n\n`bootstrap.sh` will attempt to deploy sealed-secrets and requires a sealed secret master key to manage existing deployments.  \n\nIf managing an already bootstrapped cluster, the sealed-secrets key must be obtained from the initial bootstrap (ask the person who initially setup the cluster).\n\nThe sealed secret(s) for bootstrap should be located at:\n\n```sh\nbootstrap/sealed-secrets-secret.yaml\n```\n\nIf this is the first time bootstrapping a cluster, `bootstrap.sh` will deploy a new sealed-secrets controller and obtain a new secret if it does not exist. --\u003e\n\n### Workshops\n\nThis is currently under development\n\n```sh\n# load functions\n. scripts/wip/workshop_functions.sh\n\n# setup workshop with 25 users\nworkshop_setup 25\n```\n\n## Known Issues\n\n`oc apply -k` commands may fail on the first try.\n\nThis is inherent to how Kubernetes handles [custom resources (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - A CR must be created **after it has been defined** via a [custom resource definition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions).\n\nThe solution... re-run the command until it succeeds.\n\nThe function `apply_firmly` is interchangeable with `oc apply -k` and is similar to the following shell command:\n\n```sh\nuntil oc apply -k \u003c path to kustomization.yaml \u003e; do : ; done\n```\n\n### Referencing this Catalog\n\n***This repo is currently subject to frequent, breaking changes!***\n\nAlways reference with a commit hash or tag\n\n```sh\napiVersion: kustomize.config.k8s.io/v1beta1\nkind: Kustomization\nresources:\n  - https://github.com/redhat-na-ssa/demo-ai-gitops-catalog/components/app-configs/nvidia-gpu-verification/overlays/toleration-replicas-6?ref=v0.09\n```\n\n## Development\n\n### Tools\n\nThe following cli tools are required:\n\n- `bash`, `git`\n- `oc` - Download [mac](https://formulae.brew.sh/formula/openshift-cli), [linux](https://mirror.openshift.com/pub/openshift-v4/clients/ocp), [windows](https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable/openshift-client-windows.zip)\n- `kubectl` (optional) - Included in `oc` bundle\n- `kustomize` (optional) - Download [mac](https://formulae.brew.sh/formula/kustomize), [linux](https://github.com/kubernetes-sigs/kustomize/releases)\n\nNOTE: `bash`, `git`, and `oc` are available in the [OpenShift Web Terminal](https://docs.openshift.com/container-platform/4.12/web_console/web_terminal/installing-web-terminal.html)\n\nThe following are used to encrypt secrets and are optional:\n\n- `age` - [Info](https://github.com/FiloSottile/age)\n- `sops` - [Info](https://github.com/getsops/sops)\n\n### Contributing\n\nPlease run the following before submitting a PR / commit\n\n```sh\nscripts/lint.sh\n```\n\n## Additional Info\n\n\u003c!-- ### Sandbox Namespace\n\nIf you have deployed a default cluster the `sandbox` [namespace](components/cluster-configs/namespaces/instance/sandbox/namespace.yaml) is useable by all [authenticated users](components/cluster-configs/namespaces/instance/sandbox/rolebinding-edit.yaml). All objects in the sandbox are [cleaned out weekly](components/cluster-configs/namespace-cleanup/overlays/sandbox/sandbox-cleanup-cj.yaml). --\u003e\n\n### Internal Docs\n\n- [Local Docs](docs)\n- [Notes Dump](docs/notes/)\n\n## External Links\n\n- [GitOps Catalog](https://github.com/redhat-cop/gitops-catalog)\n- [Helm Chart Catalog](https://github.com/redhat-cop/helm-charts)\n- [Enhanced Web Terminal Container](https://github.com/redhat-na-ssa/ocp-web-terminal-enhanced)\n- [AI Pilot Gitops](https://github.com/redhat-na-stp-ai-practice/openshift-ai-pilot-gitops)\n- [ArgoCD - Example](https://github.com/gnunn-gitops/cluster-config)\n- [ArgoCD - Patterns](https://github.com/gnunn-gitops/standards)\n- [OpenShift - Automation](https://github.com/jharmison-redhat/openshift-setup)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-na-ssa%2Fdemo-ai-gitops-catalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredhat-na-ssa%2Fdemo-ai-gitops-catalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredhat-na-ssa%2Fdemo-ai-gitops-catalog/lists"}