Installation Guide
This guide covers all installation methods for TRIGRA.
Installation Methods
Section titled “Installation Methods”Method 1: Quick Install Script (Recommended)
Section titled “Method 1: Quick Install Script (Recommended)”The easiest way to install TRIGRA:
# Install to default namespacecurl -fsSL https://raw.githubusercontent.com/Taiwrash/trigra/main/quick-install.sh | bash -s -- default
# Install to custom namespacecurl -fsSL https://raw.githubusercontent.com/Taiwrash/trigra/main/quick-install.sh | bash -s -- my-namespace
# With custom webhook secretcurl -fsSL https://raw.githubusercontent.com/Taiwrash/trigra/main/quick-install.sh | bash -s -- default my-secret-keyThe script will:
- ✅ Check prerequisites (kubectl, cluster connection)
- ✅ Create namespace if needed
- ✅ Generate webhook secret (if not provided)
- ✅ Deploy RBAC, controller, and service
- ✅ Optionally start Cloudflare Tunnel
Method 2: Helm Chart
Section titled “Method 2: Helm Chart”For more control over installation:
# Clone the repositorygit clone https://github.com/Taiwrash/trigra.gitcd trigra
# Generate webhook secretWEBHOOK_SECRET=$(openssl rand -hex 32)
# Install with Helmhelm install trigra ./helm/trigra \ --namespace default \ --set github.webhookSecret="$WEBHOOK_SECRET" \ --set github.token="YOUR_GITHUB_TOKEN" # Optional for private repos
# Get webhook URLkubectl get svc trigraMethod 3: kubectl (Manual)
Section titled “Method 3: kubectl (Manual)”For full manual control:
# 1. Apply RBACkubectl apply -f https://raw.githubusercontent.com/Taiwrash/trigra/main/deployments/kubernetes/rbac.yaml
# 2. Create secretkubectl create secret generic trigra-secret \ --from-literal=GITHUB_TOKEN="YOUR_TOKEN" \ --from-literal=WEBHOOK_SECRET="$(openssl rand -hex 32)"
# 3. Deploy controllerkubectl apply -f https://raw.githubusercontent.com/Taiwrash/trigra/main/deployments/kubernetes/deployment.yamlkubectl apply -f https://raw.githubusercontent.com/Taiwrash/trigra/main/deployments/kubernetes/service.yamlService Types
Section titled “Service Types”LoadBalancer (Default)
Section titled “LoadBalancer (Default)”Best for clusters with LoadBalancer support (cloud providers, MetalLB):
service: type: LoadBalancerNodePort
Section titled “NodePort”For clusters without LoadBalancer:
helm install trigra ./helm/trigra \ --set service.type=NodePort \ --set service.nodePort=30080Access via: http://<NODE-IP>:30080/webhook
ClusterIP with Ingress
Section titled “ClusterIP with Ingress”For production with Ingress controller:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: trigra annotations: cert-manager.io/cluster-issuer: letsencrypt-prodspec: tls: - hosts: - gitops.yourdomain.com secretName: trigra-tls rules: - host: gitops.yourdomain.com http: paths: - path: /webhook pathType: Prefix backend: service: name: trigra port: number: 80Verify Installation
Section titled “Verify Installation”# Check deployment statuskubectl get deployment trigrakubectl get pods -l app=trigra
# Check servicekubectl get svc trigra
# View logskubectl logs -f deployment/trigra
# Test health endpointcurl http://<SERVICE-IP>/healthUpgrading
Section titled “Upgrading”Helm Upgrade
Section titled “Helm Upgrade”helm upgrade trigra ./helm/trigra \ --reuse-values \ --set image.tag=new-versionkubectl Upgrade
Section titled “kubectl Upgrade”kubectl apply -f deployments/kubernetes/deployment.yamlkubectl rollout restart deployment/trigraUninstalling
Section titled “Uninstalling”helm uninstall trigrakubectl
Section titled “kubectl”kubectl delete -f deployments/kubernetes/kubectl delete clusterrolebinding trigrakubectl delete clusterrole trigraTroubleshooting
Section titled “Troubleshooting”Pods Not Starting
Section titled “Pods Not Starting”kubectl describe pod -l app=trigrakubectl logs -l app=trigraWebhook Not Working
Section titled “Webhook Not Working”# Check service is accessiblekubectl get svc trigra
# Test health endpointcurl http://<SERVICE-IP>/health
# Check GitHub webhook deliveries in your repo settingsRBAC Issues
Section titled “RBAC Issues”kubectl get sa trigrakubectl get clusterrolebinding trigra