Deployment

The deployment section is designed to enable configuration of the deployment type, either IaaS or PaaS, within your chosen cloud provider. This section is highly adaptable, requiring only one mandatory field: type. The type field accepts one of two values:

  • IaaS: Specified as cloud_vm.
  • PaaS: Specified as kubernetes.

Additionally, the config subsection under deployment offers detailed, fine-grained configuration options for the respective cloud resources. These options vary based on the deployment type:

For cloud_vm, the configuration is limited to vpc. For kubernetes, configurations extend to vpc, kubernetes, and node_groups.

A sample deployment block can look as follows:

Minimal kubernetes type deployment
deployment:
  type: kubernetes
Advanced kubernetes type deployment with user configured vpc and k8s cluster
deployment:
  type: kubernetes
  config:
    vpc:
      create_database_subnets: true
      enable_nat_gateway: true
      one_nat_gateway_per_az: false
    kubernetes:
      k8s_version: "1.28"
      cluster_endpoint_public_access: true
      spot_instance: false
      tags:
        data_versioning: "lakefs"
    node_groups:
      - name: lakefs-node-group
        instance_types:
          - t3.medium
        desired_size: 1
        min_size: 1
        max_size: 3
        disk_size: 20

Further elaboration on these configurations can be found in the Cloud Config section.