Skip to content

spotinst/terraform-spotinst-ocean-controller

Repository files navigation

Spot Ocean Controller Terraform Module

A Terraform module to install Ocean Controller.

IMPORTANT: Please note that Ocean Controller Version 1 will reach End-Of-Life on November 1, 2024. To take advantage of the benefits offered by Ocean Controller Version 2 and receive uninterrupted service and support, please upgrade to Version 2 at your earliest convenience. spotinst/terraform-ocean-kubernetes-controller

Table of Contents

Usage

module "ocean-controller" {
  source = "spotinst/ocean-controller/spotinst"

  # Credentials.
  spotinst_token   = var.spotinst_token
  spotinst_account = var.spotinst_account

  # Configuration.
  cluster_identifier = var.cluster_identifier
}

Examples

Requirements

Name Version
terraform >= 0.13.0
kubernetes ~> 2.0

Providers

Name Version
kubernetes 2.2.0

Modules

No modules.

Resources

Name Type
kubernetes_cluster_role.this resource
kubernetes_cluster_role_binding.this resource
kubernetes_config_map.this resource
kubernetes_deployment.this resource
kubernetes_job.this resource
kubernetes_secret.this resource
kubernetes_service_account.this resource

Inputs

Name Description Type Default Required
acd_identifier Specifies a unique identifier used by the Ocean AKS Connector when importing an AKS cluster string null no
aks_connector_enabled Controls whether the Ocean AKS Connector should be deployed (requires a valid acd_identifier) bool true no
aks_connector_image Specifies the Docker image name for the Ocean AKS Connector that should be deployed string "spotinst/ocean-aks-connector" no
aks_connector_job_name Overrides the default job name for the Ocean AKS Connector string null no
aks_connector_version Specifies the Docker version for the Ocean AKS Connector that should be deployed string "1.0.8" no
base_url Specifies the base URL to be used by the HTTP client string "" no
ca_bundle_secret_name Overrides the default secret name for custom CA bundle string null no
cluster_identifier Specifies the cluster identifier string n/a yes
config_map_name Overrides the default configmap name string null no
controller_image Specifies the Docker image name for the Ocean Controller that should be deployed string "gcr.io/spotinst-artifacts/kubernetes-cluster-controller" no
controller_version Specifies the Docker version for the Ocean Controller that should be deployed string "1.0.101" no
create_controller Controls whether the Ocean Controller should be deployed (it affects all resources) bool true no
disable_auto_update Controls whether the auto-update feature should be disabled bool false no
enable_csr_approval Controls whether the CSR approval feature should be enabled bool false no
image_pull_policy Specifies the image pull policy (one of: Always, Never, IfNotPresent) string "Always" no
image_pull_secrets Specifies a list of references to secrets in the same namespace to use for pulling the image list(string) [] no
node_selector Specifies the node selector which must match a node's labels for the Ocean Controller resources to be scheduled on that node map(string) null no
proxy_url Specifies the proxy server URL to communicate through string "" no
resources_limits Specifies the definition of the maximum amount of compute resources allowed map(any) null no
resources_requests Specifies the definition of the minimum amount of compute resources required map(any) null no
secret_name Overrides the default secret name string null no
service_account_name Overrides the default service account name string null no
spotinst_account Specifies the Spot account ID string n/a yes
spotinst_token Specifies the Spot Personal Access token string n/a yes
tolerations Specifies a list of additional toleration objects, see: https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/pod#toleration list(any)
[
{
"effect": "NoExecute",
"key": "node.kubernetes.io/not-ready",
"operator": "Exists",
"toleration_seconds": 150
},
{
"effect": "NoExecute",
"key": "node.kubernetes.io/unreachable",
"operator": "Exists",
"toleration_seconds": 150
},
{
"key": "node-role.kubernetes.io/control-plane",
"operator": "Exists"
}
]
no
namespace Specifies the workload's namespace name string kube-system no

Outputs

No outputs.

Documentation

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.

License

Code is licensed under the Apache License 2.0.