|
1 | 1 | # Getting started |
2 | 2 |
|
3 | | -Official helm charts for deploying datafold into k8s. |
| 3 | +Official helm charts for deploying Datafold into Kubernetes. |
4 | 4 |
|
5 | | -This repository is in development and the instructions for installation and |
6 | | -upgrades will be added later. |
| 5 | +## Preferred Method: Deploy with Datafold Operator |
| 6 | + |
| 7 | +The recommended way to deploy Datafold is using our operator, which provides a simpler and more manageable deployment experience. |
| 8 | + |
| 9 | +### Prerequisites |
| 10 | + |
| 11 | +You'll need two files from Datafold: |
| 12 | +- `datafold-operator-secrets.yaml` - Contains application secrets and configuration |
| 13 | +- `datafold-docker-secret.yaml` - Contains Docker registry credentials |
| 14 | + |
| 15 | +### Step 1: Create Namespace |
| 16 | + |
| 17 | +Create a namespace for your Datafold deployment: |
| 18 | + |
| 19 | +```shell |
| 20 | +kubectl create namespace datafold-apps |
| 21 | +kubectl config set-context --current --namespace=datafold-apps |
| 22 | +``` |
| 23 | + |
| 24 | +### Step 2: Deploy Docker Secrets |
| 25 | + |
| 26 | +Deploy the Docker registry secret to allow pulling private Datafold images: |
| 27 | + |
| 28 | +```shell |
| 29 | +kubectl apply -f datafold-docker-secret.yaml |
| 30 | +``` |
| 31 | + |
| 32 | +### Step 3: Configure and Deploy Application Secrets |
| 33 | + |
| 34 | +Update the `datafold-operator-secrets.yaml` file with your specific configuration (namespace, keys, |
| 35 | +email server password, etc.) and deploy it: |
| 36 | + |
| 37 | +```shell |
| 38 | +kubectl apply -f datafold-operator-secrets.yaml |
| 39 | +``` |
| 40 | + |
| 41 | +### Step 4: Add Helm Repository |
| 42 | + |
| 43 | +Add the Datafold Helm repository: |
| 44 | + |
| 45 | +```shell |
| 46 | +helm repo add datafold https://charts.datafold.com |
| 47 | +helm repo update |
| 48 | +``` |
| 49 | + |
| 50 | +### Step 5: Deploy the Operator |
| 51 | + |
| 52 | +Deploy the Datafold operator using the datafold-manager chart: |
| 53 | + |
| 54 | +```shell |
| 55 | +helm upgrade --install datafold-manager datafold/datafold-manager \ |
| 56 | + --namespace datafold-apps \ |
| 57 | + --set namespace.name=datafold-apps |
| 58 | +``` |
| 59 | + |
| 60 | +### Step 6: Create DatafoldApplication |
| 61 | + |
| 62 | +Create a `DatafoldApplication` custom resource to define your Datafold deployment. See the `examples/` directory for configuration templates: |
| 63 | + |
| 64 | +```shell |
| 65 | +kubectl apply -f examples/datafold-application-full.yaml |
| 66 | +``` |
| 67 | + |
| 68 | +The operator will automatically deploy and manage your Datafold application based on the `DatafoldApplication` specification. |
| 69 | + |
| 70 | +### Configuration Examples |
| 71 | + |
| 72 | +The `examples/` directory contains various `DatafoldApplication` configuration templates for different deployment scenarios: |
| 73 | + |
| 74 | +- `datafold-application-full.yaml` - Complete production configuration with all components |
| 75 | +- `datafold-application-minimal.yaml` - Minimal configuration for development/testing |
| 76 | +- `datafold-application-aws-lb.yaml` - AWS-specific configuration with load balancer |
| 77 | +- `datafold-application-gcp-lb.yaml` - GCP-specific configuration with load balancer |
| 78 | +- `datafold-application-signoz.yaml` - Configuration with SigNoz monitoring |
| 79 | +- `datafold-application-datadog.yaml` - Configuration with Datadog monitoring |
| 80 | + |
| 81 | +Choose the example that best matches your environment and customize it as needed. |
| 82 | + |
| 83 | +## Alternative Method: Direct Helm Charts Deployment |
| 84 | + |
| 85 | +For users who prefer the traditional Helm charts approach or need more direct control over the deployment. |
| 86 | +This method is significantly harder and more complex. |
7 | 87 |
|
8 | 88 | ### Prepare your shell environment |
9 | 89 |
|
@@ -32,23 +112,34 @@ kubectl create secret docker-registry datafold-docker-secret \ |
32 | 112 | --docker-email=support@datafold.com |
33 | 113 | ``` |
34 | 114 |
|
| 115 | +### Create a values.yaml file |
| 116 | + |
| 117 | +The helm chart requires a complete `values.yaml` file that merges configuration from multiple sources. You can use our example as a starting point: |
| 118 | + |
| 119 | +```shell |
| 120 | +# Copy and customize the example values file |
| 121 | +cp examples/old-method-values-example.yaml values.yaml |
| 122 | + |
| 123 | +# Edit values.yaml with your specific configuration: |
| 124 | +# - Update serverName, clusterName, and other global settings |
| 125 | +# - Configure your database connection details |
| 126 | +# - Set up AWS load balancer ARNs and target groups |
| 127 | +# - Adjust resource limits and worker counts as needed |
| 128 | +``` |
| 129 | + |
| 130 | +The example file is based on a real dedicated cloud deployment and includes all necessary configuration sections. |
| 131 | + |
35 | 132 | ### Install from our helm repo |
36 | 133 |
|
37 | 134 | Make sure to use the latest release from the helm-charts from our release list: |
38 | 135 |
|
39 | 136 | https://github.com/datafold/helm-charts/releases |
40 | 137 |
|
41 | | -(replace 0.6.84 with the most recent release number) |
42 | | - |
43 | | -``` |
| 138 | +```shell |
44 | 139 | helm repo add datafold https://charts.datafold.com |
| 140 | +helm repo update |
45 | 141 | helm upgrade --install datafold datafold/datafold \ |
46 | | - --version 0.6.84 \ |
47 | | - --set global.datafoldVersion="<version_tag>" \ |
48 | | - --set global.serverName="<access-url-on-lb>" \ |
49 | | - --set global.cloudProvider="aws" \ |
50 | | - --set global.awsTargetGroupArn="<replace-with-target-group-arn>" \ |
51 | | - --set global.awsLbCtrlArn="<replace-with-load-balancer-controller-role-arn>" |
| 142 | + --values values.yaml |
52 | 143 |
|
53 | 144 | ## Development and Validation |
54 | 145 |
|
|
0 commit comments