Deploy GitGuardian Self-Hosted on Google Kubernetes Engine (GKE) through the Google Cloud Marketplace.
GitGuardian is the leading code security platform for secrets detection and code security. This repository contains the GCP Marketplace deployer wrapper for GitGuardian Self-Hosted, enabling one-click deployment on GKE clusters.
- ๐ Secrets Detection - Detect hardcoded secrets in source code and CI/CD pipelines
- ๐ก๏ธ Code Security - Comprehensive security scanning for your codebase
- ๐ Dashboard - Centralized security dashboard for your organization
- ๐ Integrations - Native integrations with GitHub, GitLab, Bitbucket, and more
- ๐ Scalable - Horizontally scalable architecture for enterprise workloads
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ-โโ
โ Google Cloud โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ-โ โ
โ โ GKE Cluster โ โ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ โ
โ โ โ Frontend โ โ Workers โ โ APIs โ โ โ
โ โ โโโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโ โโโโโโโโฌโโโโโโโ โ โ
โ โ โ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Managed Services โ โ
โ โ โโโโโโโโโโโโโโโโโ โโโโโโดโโโโโโโโโ โ โ
โ โ โ Cloud SQL โ โ Memorystore โ โ โ
โ โ โ (PostgreSQL) โ โ (Redis) โ โ โ
โ โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ-โ
For detailed architecture information, see the GitGuardian Self-Hosted documentation.
Before deploying GitGuardian, ensure you have:
- GKE cluster running Kubernetes 1.32 or later
- PostgreSQL 16 or later
# Create database
gcloud sql databases create gitguardian --instance=YOUR_INSTANCE_NAME- Redis 6.x or later / Valkey 8.1 or later
- Valid GitGuardian Self-Hosted license
- License ID from your GitGuardian account
- Contact support@gitguardian.com to obtain a license
- Domain name pointing to your cluster's ingress
- TLS certificate (optional but recommended)
- Go to GitGuardian on GCP Marketplace
- Click Configure
- Select your GKE cluster and namespace
- Fill in the required configuration:
- License ID: Your GitGuardian license ID
- Admin Email: Email for the initial admin user
- PostgreSQL Host: Cloud SQL instance IP
- Redis Host: Memorystore instance IP
- Hostname: Your GitGuardian domain (e.g.,
gitguardian.example.com)
- Click Deploy
| Parameter | Description |
|---|---|
License Id |
Your GitGuardian license ID |
Hostname |
Public hostname for GitGuardian |
Admin email |
Admin user email |
PostgreSQL Host |
PostgreSQL host (Cloud SQL IP) |
PostgreSQL Password |
PostgreSQL password |
Redis host |
Redis host (Memorystore IP) |
| Parameter | Default | Description |
|---|---|---|
PostgreSQL Port |
5432 |
PostgreSQL port |
PostgreSQL Database |
gitguardian |
Database name |
PostgreSQL TLS Mode |
require |
SSL mode (disable, allow, prefer, require) |
Redis port |
6379 |
Redis port |
Enable Ingress (Use loadbalancer) |
true |
Enable Kubernetes Ingress |
Enable TLS for Ingress |
false |
Enable TLS for Ingress |
After deployment, verify the installation:
# Check application status
kubectl get applications -n $NAMESPACE
# Check all pods are running
kubectl get pods -n $NAMESPACE
# Check services
kubectl get svc -n $NAMESPACE
# View application logs
kubectl logs -l app.kubernetes.io/name=gitguardian -n $NAMESPACE --tail=100-
Get the Ingress IP:
kubectl get ingress -n $NAMESPACE -
Configure your DNS to point to the Ingress IP
-
Access GitGuardian at
https://your-hostname -
Log in with the admin email and generated password:
kubectl get secret -n $NAMESPACE -o jsonpath='{.data.admin-password}' | base64 -d
Copy docs/values-gcp.yaml and replace all REPLACE_ME placeholders with your actual values.
helm registry login registry.replicated.com \
--username YOUR_EMAIL \
--password YOUR_LICENSE_ID# Set variables
RELEASE_NAME=gitguardian
CHANNEL=stable # Or: beta, unstable
VERSION=0.1.9 # Target version
NAMESPACE=gim
# Generate manifests
helm template $RELEASE_NAME \
oci://registry.replicated.com/gitguardian/$CHANNEL/gitguardian \
--version $VERSION \
--namespace $NAMESPACE \
-f values-gcp.yaml \
> tpl.yamlMigration jobs are immutable and must be deleted before applying the new manifests:
kubectl delete job -n $NAMESPACE -l app.kubernetes.io/component=pre-deploy --ignore-not-found
kubectl delete job -n $NAMESPACE -l app.kubernetes.io/component=post-deploy --ignore-not-foundkubectl apply -f tpl.yaml --namespace $NAMESPACE# Check pods are running
kubectl get pods -n $NAMESPACE
# Watch migration jobs complete
kubectl get jobs -n $NAMESPACE -wUse Cloud SQL automated backups or create manual backups:
gcloud sql backups create --instance=YOUR_INSTANCE_NAMEExport your configuration:
kubectl get configmap -n $NAMESPACE -o yaml > gitguardian-config-backup.yaml
kubectl get secret -n $NAMESPACE -o yaml > gitguardian-secrets-backup.yaml- Go to Kubernetes Engine > Applications
- Select your GitGuardian application
- Click Delete
kubectl delete application $APP_NAME -n $NAMESPACE
kubectl delete namespace $NAMESPACE
โ ๏ธ Warning: This will delete all GitGuardian resources. Ensure you have backed up your data before uninstalling.
Check pod events:
kubectl describe pod -l app.kubernetes.io/name=gitguardian -n $NAMESPACEVerify Cloud SQL connectivity:
kubectl run pg-test --rm -it --image=postgres:14 --restart=Never -- \
psql "host=YOUR_CLOUD_SQL_IP dbname=gitguardian user=gitguardian"Verify your license ID is correct and active. Contact support@gitguardian.com if issues persist.
- ๐ GitGuardian Documentation
- ๐ฌ GitGuardian Support
- ๐ Report Issues
For support inquiries:
- Enterprise customers: Contact your GitGuardian account manager or support@gitguardian.com
- Documentation: docs.gitguardian.com
This deployer wrapper is provided under the Apache License 2.0.
GitGuardian Self-Hosted requires a valid commercial license. Contact support@gitguardian.com for licensing information.
Made with โค๏ธ by GitGuardian