A simplified demonstration of how to automate ingress using the ngrok Kubernetes Operator with ArgoCD for GitOps workflows.
├── argocd/ # ArgoCD application definitions
│ ├── app-of-apps.yaml # App of apps pattern
│ └── applications/ # Individual application manifests
├── apps/ # Application manifests
│ └── api-demo/ # REST API demonstration app
├── infrastructure/ # Infrastructure components
│ ├── ngrok-operator/ # ngrok Operator installation
│ └── namespaces/ # Namespace definitions
- Install ArgoCD in your cluster
- Install ngrok Operator using the manifests in
infrastructure/ngrok-operator/
- Configure your ngrok credentials as described below
- Apply the app-of-apps pattern:
kubectl apply -f argocd/app-of-apps.yaml
Before deploying, you'll need to:
- Create an ngrok account and obtain an API key
- Create a Kubernetes secret with your ngrok credentials:
kubectl create secret generic ngrok-operator-credentials \
--from-literal=API_KEY=your_api_key \
--from-literal=AUTHTOKEN=your_authtoken \
-n ngrok-operator
- GitOps Workflow: All deployments managed through Git
- ngrok CRDs: Direct use of ngrok Custom Resources for internal endpoints
- App of Apps Pattern: Centralized management of multiple applications
- Internal URL: Application accessible at
https://api-demo.prod.internal
- API Demo: REST API service showcasing ngrok features
- ngrok Operator: Kubernetes operator for managing ngrok tunnels
- ArgoCD Applications: Declarative application management using plain YAML manifests
Once deployed, ArgoCD will automatically sync the applications. Any changes to this repository will trigger updates to the cluster.
Access your application at: https://gitops-demo.ngrok.app/api/