Skip to content

spotinst/terraform-spotinst-ocean-gcp-k8s-vng

Repository files navigation

terraform-spotinst-ocean-gcp-k8s-vng

Terraform module for Spotinst provider resource spotinst_ocean_gke_launch_spec

This resource can be imported from GKE node pool or not. If you want to import the node pool and create the VNG from it, please provide node_pool_name.

Usage

module "ocean-gcp-k8s-vng" {
    source = "spotinst/ocean-gcp-k8s-vng/spotinst"

    ocean_id            = module.ocean-gcp-k8s.ocean_id
    node_pool_name      = "pool-1"
  }

Documentation

  • ocean-gcp-k8s - Creates Ocean Cluster Doc
  • ocean-gcp-k8s-vng - (Optional) Add custom virtual node groups with custom configs Doc
  • ocean-controller - Create and installs Spot Ocean controller pod Doc

If you're new to Spot and want to get started, please checkout our Getting Started guide, available on the Spot Documentation website.

Getting Help

We use GitHub issues for tracking bugs and feature requests. Please use these community resources for getting help:

Community

Contributing

Please see the contribution guidelines.

Requirements

Name Version
terraform >= 0.13.1
spotinst >= 1.39.0

Providers

Name Version
google n/a
spotinst >= 1.39.0

Modules

No modules.

Resources

Name Type
spotinst_ocean_gke_launch_spec.launchspec resource
google_compute_image.COS data source

Inputs

Name Description Type Default Required
auto_headroom_percentage Set automatic headroom per launch spec. Number between 0-200 to control the headroom % of the specific Virtual Node Group. Effective when cluster.autoScaler.headroom.automatic.is_enabled = true is set on the Ocean cluster. number null no
batch_size_percentage Sets the percentage of the instances to deploy in each batch. number 20 no
cpu_per_unit Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU. number null no
enable_integrity_monitoring Boolean. Enable the integrity monitoring parameter on the GCP instances. bool null no
enable_secure_boot Boolean. Enable the secure boot parameter on the GCP instances. bool null no
gpu_per_unit Optionally configure the number of GPUS to allocate for each headroom unit. number null no
instance_types List of supported machine types for the Launch Spec. list(string) null no
labels Optionally adds labels to instances launched in an Ocean cluster.
list(object({
key = string
value = string
}))
null no
local_ssd_count Defines the number of local SSDs to be attached per node for this VNG. number null no
max_instance_count Option to set a maximum number of instances per virtual node group. Can be null. If set, the value must be greater than or equal to 0. number 1000 no
memory_per_unit Optionally configure the amount of memory (MiB) to allocate for each headroom unit. number null no
metadata (Required only if node_pool_name is not set) Cluster's metadata.
list(object({
key = string
value = string
}))
null no
min_instance_count Option to set a minimum number of instances per virtual node group. Can be null. If set, the value must be greater than or equal to 0. number 0 no
name The launch specification name string null no
node_pool_name The node pool you wish to use in your Launch Spec (VNG). string null no
num_of_units The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU. number null no
ocean_id The ID of the Ocean Cluster string n/a yes
preemptible_percentage Defines the desired preemptible percentage for this launch specification. number 100 no
restrict_scale_down Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty. bool false no
root_volume_size Root volume size (in GB). number null no
root_volume_type Root volume disk type. Valid values: pd-standard, pd-ssd string null no
scheduling_task Used to define scheduled tasks such as a manual headroom update.
object({
is_enabled = bool
cron_expression = string
task_type = string
num_of_units = string
cpu_per_unit = string
gpu_per_unit = string
memory_per_unit = string
})
null no
service_account The account used by applications running on the VM to call GCP APIs. string null no
should_roll Enables the roll bool false no
source_image Image URL string null no
tags Tags to be added to resources map(string) null no
taints Optionally adds labels to instances launched in an Ocean cluster.
list(object({
key = string
value = string
effect = string
}))
null no
initial_nodes Initial Nodes to launch when vng is created. number null no

Outputs

Name Description
launchspec_id n/a