This directory contains Tekton pipeline-based deployment for the CI Analysis Agent with multi-user support.
deploy/
├── tekton/ # Tekton pipeline manifests
│ ├── pipeline.yaml # Main CI/CD pipeline
│ ├── tasks.yaml # Custom Tekton tasks
│ ├── rbac.yaml # Service account and RBAC
│ ├── triggers.yaml # GitHub webhook triggers
│ ├── pipeline-run.yaml # Pipeline run template
│ ├── user-examples.yaml # Multi-user deployment examples
│ ├── deploy-pipeline.sh # Legacy deployment script
│ ├── deploy-user-namespace.sh # User-namespace deployment script
│ └── README.md # Tekton pipeline documentation
├── k8s/ # DEPRECATED: Legacy manual manifests
│ └── README.md # Deprecation notice
└── README.md # This file
The CI Analysis Agent now uses Tekton pipelines for automated CI/CD with complete multi-user support:
flowchart TD
Start([User Wants to Deploy]) --> Check{Prerequisites<br/>Met?}
Check -->|No| Install[Install Prerequisites:<br/>• OpenShift 4.19+<br/>• Tekton Pipelines<br/>• Tekton Triggers<br/>• Registry Access]
Check -->|Yes| Choose{Deployment<br/>Method?}
Install --> Choose
Choose -->|Automated| Script[Use deploy-user-namespace.sh]
Choose -->|Manual| Template[Use sed with templates]
Choose -->|Webhook| Webhook[Configure GitHub webhook]
Script --> RunScript[./deploy-user-namespace.sh alice]
Template --> ManualSteps[Manual sed commands<br/>Replace NAMESPACE_PLACEHOLDER]
Webhook --> SetupWebhook[Setup GitHub webhook URL]
RunScript --> CreateSecret[Create Registry Secret<br/>in user namespace]
ManualSteps --> CreateSecret
SetupWebhook --> CreateSecret
CreateSecret --> Deploy[Deploy Pipeline Resources<br/>to ci-analysis-alice namespace]
Deploy --> Monitor[Monitor Pipeline<br/>tkn pipelinerun logs]
Monitor --> Success([✅ Deployment Complete<br/>Alice can access her instance])
subgraph "User Namespace: ci-analysis-alice"
Resources[📋 Created Resources:<br/>• Pipeline & Tasks<br/>• RBAC & ServiceAccount<br/>• Triggers & Webhook<br/>• Registry Secret]
end
subgraph "Result"
URL[🌐 Access URL:<br/>https://alice-ci-analysis-agent<br/>-ci-analysis-alice.apps.cluster.com]
end
Success --> Resources
Success --> URL
style Start fill:#e1f5fe
style Success fill:#e8f5e8
style Check fill:#fff3e0
style Choose fill:#f3e5f5
style Script fill:#e0f2f1
style Template fill:#fce4ec
style Webhook fill:#e8eaf6
Automated Deployment (Recommended):
# Deploy pipeline for a specific user
cd deploy/tekton
chmod +x deploy-user-namespace.sh
./deploy-user-namespace.sh <username>
# Example: Deploy for user "alice"
./deploy-user-namespace.sh aliceEach user gets their own isolated deployment:
- Namespace:
ci-analysis-<username> - Complete Isolation: All resources deployed per user
- No Shared Infrastructure: Every user has their own pipeline stack
- Automatic GitHub Integration: Webhook-triggered deployments
- OpenShift 4.19+ or Kubernetes 1.25+
- Tekton Pipelines installed on cluster
- Tekton Triggers installed on cluster
- Node Architecture: linux/amd64 nodes (required for Ollama)
- Registry Access: Quay.io or container registry credentials
- Storage: At least 10GB per user for model data
- Multi-User Support: Complete isolation per user
- CI/CD Pipeline: Automated build and deployment
- GitHub Integration: Webhook-triggered deployments
- Security: Non-root containers (OpenShift compatible)
- Persistence: Model data persisted across restarts
- Health Checks: Readiness and liveness probes
- External Access: OpenShift Routes per user
The Tekton pipeline includes:
- Git Clone - Checkout source code
- Create Namespace - User-specific namespace creation
- Build Image - Container image build and push
- Deploy Ollama - AI model serving deployment
- Deploy Agent - Main application deployment
- Load Model - Download and configure AI model
- Create Route - External access configuration
If you encounter issues:
- Check pipeline logs:
tkn pipelinerun logs --last -f -n ci-analysis-<username> - Verify deployments:
oc get all -n ci-analysis-<username> - Check webhook URL:
oc get route ci-analysis-agent-webhook -n ci-analysis-<username> - See detailed documentation: tekton/README.md
The previous manual K8s/OpenShift deployment approach has been replaced with this automated Tekton pipeline approach for better CI/CD integration and multi-user support.