Before You Begin
Prerequisites:
Running kubernetes cluster or local minikube installation
Configured and installed kubectl
The steps described assume familiarity with kubernetes. The required images are available in the Dockerhub registry under the organization FydeInc.
Helm Chart
The helm chart is available at Artifactory and includes:
Orchestrator
Envoy
Redis (from dandy-developer chart)
HTTP resource (to test access)
Check the Artifactory link or values.yaml file for all the configuration parameters.
Deployment
Create a custom-values.yaml file with the desired values.
Minimum required configuration for a successful deployment:
'orchestrator.enrollmentToken.existingSecret.*’ or ‘orchestrator.enrollmentToken.newSecret’
Minimum required configuration to allow external access:
‘envoy.loadBalancer.enabled’
‘envoy.loadBalancer.annotations’
Add the helm repo and install the chart:
<code sh> helm repo add barracuda-cloudgen-access https://barracuda-cloudgen-access.github.io/helm-charts helm install my-release barracuda-cloudgen-access/cga-proxy --namespace my-namespace --values custom-values.yaml </code sh>
Optionally, instead of using “helm install”, export the yaml files and deploy using your preferred method:
<code sh> helm template barracuda-cloudgen-access/cga-proxy --values custom-values.yaml </code sh>
Example
This extended example for a high availability deployment uses AWS NLB and Prometheus service monitors:
<code yaml>
nameOverride: cga-proxy-my-deploy
serviceMonitor: true
priorityClassName: high-priority orchestrator:
enrollmentToken:
existingSecret:
name: cga-orchestrator-secret
key: enrollment-token
highAvailability:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi envoy:
replicaCount: 3
loadBalancer:
enabled: true
annotations:
service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags:
app=cga-proxy,service=envoy-proxy-external,namespace=cga-proxy-my-deploy
service.beta.kubernetes.io/aws-load-balancer-type: nlb
externalTrafficPolicy: Local
port: 443 resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi redis-ha:
nameOverride: redis
priorityClassName: high-priority
redis:
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 100m
memory: 200Mi
sentinel:
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 100m
memory: 200Mi
hardAntiAffinity: true
exporter:
enabled: true
resources:
requests:
cpu: 100m
memory: 200Mi
limits:
cpu: 100m
memory: 200Mi
serviceMonitor:
enabled: true
podDisruptionBudget:
minAvailable: 2
persistentVolume:
enabled: false
http-test:
enabled: true
</code yaml> 