This repository contains a Helm chart to make it easy to host Optimizely Agent in your own Kubernetes infrastructure. The Optimizely Agent allows you to run a proxy to Optimizely in your own infrastructure, to help prevent adblockers from interfering with A/B tests.
To install the chart with the release name my-agent:
helm repo add optimizely-agent https://optimizely.github.io/optimizely-agent-helm
helm install my-agent optimizely-agent/agent- To override values in a chart:
- use the
--valuesflag and pass in a file. - use the
--setflag and pass configuration from the command line.
- use the
- Use the
--set-fileflag to set individual values from a file when the value itself is too long for the command line or is dynamically generated. - To force a string value use
--set-string.
For example:
helm install --values myvalues.yaml my-agent optimizely-agent/agent --version [CURRENT_VERSION]or
helm install --set nameOverride=abc123 my-agent optimizely-agent/agent --version [CURRENT_VERSION]For more information, view the Helm install documentation or install through Artifact Hub.
To uninstall/delete the my-agent deployment:
helm delete my-agentTo see all configurable options with detailed comments, visit the values.yaml file or run:
helm show values optimizely-agent/agent| Property | Description | Defalut value |
|---|---|---|
| nameOverride | Replaces the name of the chart in the Chart.yaml file | "" |
| fullnameOverride | Completely replaces the generated name | "" |
| image.repository | Docker image to be used | optimizely/agent |
| image.tag | Docker image tag | "" |
| image.pullPolicy | Sets the policy for a container and tag when pulling the image | IfNotPresent |
| imagePullSecrets | If you are using a private registry | [] |
| serviceAccount.create | Specifies whether a service account should be created | true |
| serviceAccount.name | Optional - the name of the service account to use | "" |
| serviceAccount.annotations | Optional - annotations to add to the service account | {} |
| replicaCount | Number of deployment replicas | 1 |
| autoscaling.enabled | To allow and configure autoscaling | false |
| autoscaling.minReplicas | Minimum number of replicas | 1 |
| autoscaling.maxReplicas | Maximum number of replicas | 100 |
| autoscaling.targetCPUUtilizationPercentage | Set target percent of CPU utilization | 80 |
| autoscaling.targetMemoryUtilizationPercentage | Set target percent of memory utilization | 80 |
| nodeSelector | To constrain Pods to nodes with specific labels | {} |
| affinity | Sets the affinity Kubernetes attribute for Pods | {} |
| tolerations | Tolerations to apply to Pods | [] |
| podAnnotations | A map with Kubernetes annotations | {} |
| podSecurityContext | The security settings that you specify for a Pod apply to all Containers in the Pod | {} |
| securityContext | The security settings that you specify for agent container | {} |
| service.type | The type of network service to use and mapping of incoming ports to targetPorts | ClusterIP |
| service.ports | Ports exposed for Optimizely's Agent functionality | port: 8080, port: 8085, port: 8088 |
| ingress.enabled | Exposes HTTP and HTTPS routes from outside the cluster to services within the cluster | false |
| resources | Set a custom container | {} |
| logs.level | Configure logging level for Optimizely specific logs | debug |
| logs.pretty | Enable pretty print for Optimizely specific logs | true |
| log.includeSdkKey | Enable SDK key in logs for Optimizely specific logs | true |
| env.variables | Environment values for variables | {} |
| env.secrets | Environment values for secrets | {} |
| config | Optimizely client instance configuration properties | See values.yaml for defaults |