From e0cb56a5b80dacbe72e11a2cbdb481fe3252ebf5 Mon Sep 17 00:00:00 2001 From: Chris Hronek <31361051+chrishronek@users.noreply.github.com> Date: Fri, 13 Oct 2023 12:49:26 -0600 Subject: [PATCH] Add a guide for running airbyte workloads on custom nodes (#874) --- .../plural/docs/running-on-custom-nodes.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 airbyte/plural/docs/running-on-custom-nodes.md diff --git a/airbyte/plural/docs/running-on-custom-nodes.md b/airbyte/plural/docs/running-on-custom-nodes.md new file mode 100644 index 000000000..20b64f7fb --- /dev/null +++ b/airbyte/plural/docs/running-on-custom-nodes.md @@ -0,0 +1,61 @@ +## Running Airbyte Workloads on Custom Node Group + +There may be a desire to run your Airbyte workloads on a specific node size for large workloads, or maybe even +[spot instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) to achieve higher cost +savings. + +### create custom node group + +In order to run your Airbyte Workloads on custom configured nodes, you will need to first follow [these docs](https://docs.plural.sh/operations/cluster-configuration#modifying-node-types) +to create your desired nodes. For example, if you were on AWS and wanted to use spot instances you would add something +like this to your `bootstrap/terraform/main.tf` file: + +```yaml +multi_az_node_groups = { + medium_burst_spot = { + name = "medium-burst-spot" + min_capacity = 3 + desired_capacity = 3 + instance_types = ["t3.xlarge", "t3a.xlarge"] + capacity_type = "SPOT" + k8s_labels = { + "plural.sh/capacityType" = "SPOT" + "plural.sh/performanceType" = "BURST" + "plural.sh/scalingGroup" = "medium-burst-spot" + } + k8s_taints = [{ + key = "plural.sh/capacityType" + value = "SPOT" + effect = "NO_SCHEDULE" + }] + } +} +``` + +Then run `plural deploy --commit "add more spot nodes"` to update your cluster. + +> ! If you get an error like `InvalidParameterException: Minimum capacity 3 can't be greater than desired size 0` you +> may have to use your cloud CLI or console to enact the change manually and then try running again. + +### update airbyte to use node group + +After creating your custom node group, you can point configure Airbyte to use it by adding the following to your +`./airbyte/helm/values.yaml` (this can also be done in the plural application console) + +```yaml +global: + jobs: + kube: + nodeSelector: + plural.sh/capacityType: SPOT + tolerations: + - effect: NoSchedule + key: plural.sh/capacityType + operator: Equal + value: SPOT +``` + +### redeploy + +From there, you should be able to run `plural build --only airbyte && plural deploy --commit "run on spot instances"` to +use the custom node group to execute your workloads. \ No newline at end of file