fleet/infrastructure/sandbox/PreProvisioner/lambda/deploy_terraform/fleet
Robert Fairburn 2649073d91
Comment cost-saving changes in sandbox Helm Chart (#12424)
These are comments for 3 of the main changes that prevent lingering
containers from causing runaway costs in sandbox.
2023-06-21 14:35:48 -05:00
..
templates Comment cost-saving changes in sandbox Helm Chart (#12424) 2023-06-21 14:35:48 -05:00
Chart.yaml Fleet Sandbox (#5079) 2022-07-19 13:56:53 -05:00
README.md Fleet Sandbox (#5079) 2022-07-19 13:56:53 -05:00
values.yaml Add APM to sandbox (#12134) 2023-06-05 13:46:36 -04:00

Fleet Helm Chart

This directory contains a Helm Chart that makes deploying Fleet on Kubernetes easy.

Usage

1. Create namespace

This Helm chart optionally provisions a Kubernetes namespace. Alternatively, you can add one with kubectl create namespace <name> or by creating a YAML file containing the namespace and applying it to your cluster.

2. Create the necessary secrets

This Helm chart optionally creates Kubernetes Secrets for MySQL and Redis necessary for Fleet to operate. If you manually create them instead, at a minimum, secrets for the MySQL password must be created. For example, if you are deploying into a namespace called fleet:

---
kind: Secret
apiVersion: v1
metadata:
  name: mysql
  namespace: fleet
stringData:
  mysql-password: this-is-a-bad-password

If you use Fleet's TLS capabilities, TLS connections to the MySQL server, or AWS access secret keys, additional secrets and keys are needed. The name of each Secret must match the value of secretName for each section in the values.yaml file and the key of each secret must match the related key value from the values file. For example, to configure Fleet's TLS, you would use a Secret like the one below.

kind: Secret
apiVersion: v1
metadata:
  name: fleet
  namespace: fleet
stringData:
  server.cert: |
    your-pem-encoded-certificate-here    
  server.key: |
    your-pem-encoded-key-here    

Once all of your secrets are configured, use kubectl apply -f <secret_file_name.yaml> --namespace <your_namespace> to create them in the cluster.

3. Further Configuration

To configure how Fleet runs, such as specifying the number of Fleet instances to deploy or changing the logger plugin for Fleet, edit the values.yaml file to your desired settings.

4. Deploy Fleet

Once the secrets have been created and you have updated the values to match your required configuration, you can deploy with the following command.

helm upgrade --install fleet fleet \
  --namespace <your_namespace> \
  --repo https://fleetdm.github.io/fleet/charts \
  --values values.yaml