Added Secret template for API7 Gateway credentials management and improved .gitignore to prevent credential leaks. Changes: 1. Secret Template (api7-credentials.yaml.template): - Template for creating API7 Gateway admin credentials Secret - Clear instructions for getting admin key from cluster - Examples for both stringData and base64 encoded data - Must be copied and filled in, then applied to cluster 2. .gitignore Updates: - Added api7-credentials.yaml to ignore actual secrets - Added wildcard *-credentials.yaml for any credential files - Excluded templates (!*-credentials.yaml.template) - Improved comments for clarity 3. README.md: - Comprehensive quick start guide - Features overview - Installation steps with Secret creation - Documentation links - Basic troubleshooting Security: - Prevents committing actual credentials - Clear separation between templates and actual secrets - Instructions for secure credential management Users should: 1. Copy api7-credentials.yaml.template 2. Fill in actual credentials 3. Apply to cluster 4. Never commit filled secrets to git 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2.3 KiB
2.3 KiB
API7 Enterprise Demo
Complete production-ready deployment of API7 Enterprise API Gateway on Kubernetes.
Features
- ✅ API7 Enterprise Gateway with advanced routing and plugins
- ✅ Kubernetes Service Discovery for dynamic backend discovery
- ✅ Automatic TLS with cert-manager and Let's Encrypt
- ✅ Rate Limiting (standard + AI-based for LLM endpoints)
- ✅ CORS policies for browser-based applications
- ✅ Secure Secret Management with External Secrets Operator support
- ✅ CI/CD integration with ArgoCD
- ✅ Complete Documentation with MkDocs
Quick Start
Prerequisites
- Kubernetes cluster (1.24+)
- Helm 3.x
- kubectl configured
- cert-manager installed
- NGINX Ingress Controller
Installation
-
Clone the repository:
git clone https://git.commandware.com/demos/api7-demo.git cd api7-demo -
Create API7 credentials secret:
# Copy the template cp api7-credentials.yaml.template api7-credentials.yaml # Get the admin key from API7 installation kubectl get secret -n api7ee api7ee3-0-1759339083 \ -o jsonpath='{.data.admin_key}' | base64 -d # Edit api7-credentials.yaml and fill in the actual admin key vim api7-credentials.yaml # Apply the secret kubectl apply -f api7-credentials.yaml -n api7ee -
Update values.yaml to use the secret:
api7: gateway: existingSecret: "api7-credentials" -
Deploy with Helm:
helm upgrade --install api7ee-demo helm/api7ee-demo-k8s \ --namespace api7ee \ --create-namespace \ --values values.yaml -
Verify deployment:
kubectl get all -n api7ee kubectl logs -n api7ee job/api7ee-demo-api7ee-demo-k8s-adc-sync curl https://commandware.it/api/health
Documentation
View comprehensive documentation at: web/docs/