kpiwko/genaidemo25-gitops
GenAI Demo 2025 - GitOps Repository
This repository provides streamlined GitOps configurations to automate the deployment and management of OpenShift clusters for the GenAI demo modules. It is designed to use ArgoCD to run on clusters provisioned through the Red Hat Demo Platform (RHDP).
โ ๏ธ Prerequisites
Red Hat OpenShift GitOps operator (productized ArgoCD) must be installed on the target cluster(s) before deploying these configurations. This operator is typically available through the OpenShift OperatorHub.
Model Deployment
This repo now separates namespace/RBAC bootstrap from model deployment. Deploy the namespace once, then manage any number of models safely.
0) Prereqs
- OpenShift GitOps (Argo CD) installed
- RHOAI/KServe installed (use
shared-cluster/install-rhoai-argocd-app.yaml)
1) Create image pull secret (if needed)
oc -n genai25-deployments create secret docker-registry genai2025-pull-secret \
--docker-server=quay.io \
--docker-username='<user-or-robot>' \
--docker-password='<password-or-token>' \
--docker-email='<you@example.com>'2) Configure models (values)
shared-cluster/deploy-model/gpt-oss-20b.yamlandshared-cluster/deploy-model/gemma-3-27b.yaml- Ensure:
connection.namepoints to your pull secret (if required)- Unique
runtime.nameandinference.nameper model
3) Install models via Argo CD (multi-source App)
oc apply -n openshift-gitops -f shared-cluster/install-llm-models-argocd-app.yamlThis single Application deploys both models from the same chart (multi-source). The app also creates the namespace where models run.
4) Verify
oc get ns genai25-deployments
oc -n genai25-deployments get servingruntimes.serving.kserve.io
oc -n genai25-deployments get inferenceservices.serving.kserve.io
oc -n genai25-deployments get ksvcNotes:
- For
oss-gpt-20b, this chart sets a custom vLLM runtime image (0.10.1) and supports extra args viaruntime.extraArgs. - To dry-run Helm locally before Argo sync:
helm template test /Users/kpiwko/devel/ai-experiments/genaidemo25-gitops/shared-cluster/deploy-model \
-n genai25-deployments \
-f /Users/kpiwko/devel/ai-experiments/genaidemo25-gitops/shared-cluster/deploy-model/gpt-oss-20b.yaml \
| kubectl apply --dry-run=client -f -๐ Repository Structure
genaidemo25-gitops/
โโโ shared-cluster/ # Cluster-wide shared resources
โ โโโ user-setup-argocd-app.yaml # ArgoCD app for user authentication
โ โโโ rhoai-setup-argocd-app.yaml # ArgoCD app for RHOAI operator
โ โโโ user-setup/ # User authentication resources
โ โ โโโ kustomization.yaml # Kustomize resource list
โ โ โโโ hackathon-secret.yaml # HTPasswd for hackathon user
โ โ โโโ htpasswd-secret.yaml # HTPasswd for test user
โ โ โโโ oauth-cluster.yaml # OAuth configuration
โ โ โโโ test-user.yaml # User and Identity resources
โ โ โโโ test-user-rbac.yaml # RBAC permissions
โ โโโ install-rhoai/ # RHOAI operator installation
โ โ โโโ kustomization.yaml # Ordered operator installation
โ โ โโโ namespace.yaml # redhat-ods-operator namespace
โ โ โโโ operator-group.yaml # OperatorGroup
โ โ โโโ rbac-presync-monitoring.yaml # Pre-sync RBAC
โ โ โโโ subscription-authorino.yaml # Authorino operator
โ โ โโโ subscription-rhoai.yaml # RHOAI operator
โ โโโ deploy-model/ # Future model deployment configs
โ โโโ .gitkeep
โโโ module-lightspeed/ # Lightspeed module resources
โ โโโ install-pipelines-argocd-app.yaml # ArgoCD app for Pipelines
โ โโโ install-web-terminal-argocd-app.yaml # ArgoCD app for Web Terminal
โ โโโ install-pipelines/ # OpenShift Pipelines operator
โ โ โโโ kustomization.yaml # Resource ordering
โ โ โโโ namespace.yaml # openshift-pipelines namespace
โ โ โโโ operator-group.yaml # OperatorGroup
โ โ โโโ subscription.yaml # Pipelines operator subscription
โ โโโ install-web-terminal/ # Web Terminal operator
โ โโโ kustomization.yaml # Simple subscription-only setup
โ โโโ subscription.yaml # Web Terminal subscription
โโโ module-receipts/ # Future receipts module
โโโ .gitkeep
๐ง ArgoCD Application Configuration
Key Fields Explained
finalizers
Ensures ArgoCD cleans up resources before deleting the Application.
targetRevision
Specifies which Git branch or commit to use (e.g., shared-cluster-setup or HEAD).
syncOptions
Controls sync behavior, like auto-creating namespaces and resource cleanup order.
automated sync policies
Enables automatic pruning and self-healing to match cluster state to Git.
๐ Authentication Setup
User Credentials
- hackathon user (admin):
hackathon:brno123 - test user:
test-user:password123