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>
87 lines
2.3 KiB
Markdown
87 lines
2.3 KiB
Markdown
# 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
|
|
|
|
1. **Clone the repository:**
|
|
```bash
|
|
git clone https://git.commandware.com/demos/api7-demo.git
|
|
cd api7-demo
|
|
```
|
|
|
|
2. **Create API7 credentials secret:**
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
3. **Update values.yaml to use the secret:**
|
|
```yaml
|
|
api7:
|
|
gateway:
|
|
existingSecret: "api7-credentials"
|
|
```
|
|
|
|
4. **Deploy with Helm:**
|
|
```bash
|
|
helm upgrade --install api7ee-demo helm/api7ee-demo-k8s \
|
|
--namespace api7ee \
|
|
--create-namespace \
|
|
--values values.yaml
|
|
```
|
|
|
|
5. **Verify deployment:**
|
|
```bash
|
|
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/](web/docs/)**
|
|
|
|
- [Getting Started](web/docs/getting-started.md)
|
|
- [Architecture](web/docs/architecture.md)
|
|
- [Ingress & Routing](web/docs/ingress-routing.md)
|
|
- [Service Discovery](web/docs/service-discovery.md)
|
|
- [Secret Management](web/docs/secret-management.md)
|
|
- [Troubleshooting](web/docs/troubleshooting.md)
|
|
|
|
## Support
|
|
|
|
- Issues: https://git.commandware.com/demos/api7-demo/issues
|
|
- API7 Docs: https://docs.api7.ai/enterprise/
|