An open API service indexing awesome lists of open source software.

https://github.com/spotinst/terraform-spotinst-ocean-controller

A Terraform module to install Ocean Controller.
https://github.com/spotinst/terraform-spotinst-ocean-controller

netapp-public ocean owned-by-anurag-sharma terraform

Last synced: 5 months ago
JSON representation

A Terraform module to install Ocean Controller.

Awesome Lists containing this project

README

          

# 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 ](https://registry.terraform.io/modules/spotinst/kubernetes-controller/ocean)

## Table of Contents

- [Usage](#usage)
- [Examples](#examples)
- [Requirements](#requirements)
- [Providers](#providers)
- [Modules](#modules)
- [Resources](#resources)
- [Inputs](#inputs)
- [Outputs](#outputs)
- [Documentation](#documentation)
- [Getting Help](#getting-help)
- [Community](#community)
- [Contributing](#contributing)
- [License](#license)

## Usage

```hcl
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

- [Simple Installation](https://github.com/spotinst/terraform-spotinst-ocean-controller/tree/master/examples/simple-installation)
- [Azure Installation](https://github.com/spotinst/terraform-spotinst-ocean-controller/tree/master/examples/azure-installation)

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 0.13.0 |
| [kubernetes](#requirement\_kubernetes) | ~> 2.0 |

## Providers

| Name | Version |
|------|---------|
| [kubernetes](#provider\_kubernetes) | 2.2.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [kubernetes_cluster_role.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/cluster_role) | resource |
| [kubernetes_cluster_role_binding.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/cluster_role_binding) | resource |
| [kubernetes_config_map.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/config_map) | resource |
| [kubernetes_deployment.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/deployment) | resource |
| [kubernetes_job.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/job) | resource |
| [kubernetes_secret.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/secret) | resource |
| [kubernetes_service_account.this](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/service_account) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|
| [acd\_identifier](#input\_acd\_identifier) | Specifies a unique identifier used by the Ocean AKS Connector when importing an AKS cluster | `string` | `null` | no |
| [aks\_connector\_enabled](#input\_aks\_connector\_enabled) | Controls whether the Ocean AKS Connector should be deployed (requires a valid `acd_identifier`) | `bool` | `true` | no |
| [aks\_connector\_image](#input\_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](#input\_aks\_connector\_job\_name) | Overrides the default job name for the Ocean AKS Connector | `string` | `null` | no |
| [aks\_connector\_version](#input\_aks\_connector\_version) | Specifies the Docker version for the Ocean AKS Connector that should be deployed | `string` | `"1.0.8"` | no |
| [base\_url](#input\_base\_url) | Specifies the base URL to be used by the HTTP client | `string` | `""` | no |
| [ca\_bundle\_secret\_name](#input\_ca\_bundle\_secret\_name) | Overrides the default secret name for custom CA bundle | `string` | `null` | no |
| [cluster\_identifier](#input\_cluster\_identifier) | Specifies the cluster identifier | `string` | n/a | yes |
| [config\_map\_name](#input\_config\_map\_name) | Overrides the default configmap name | `string` | `null` | no |
| [controller\_image](#input\_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](#input\_controller\_version) | Specifies the Docker version for the Ocean Controller that should be deployed | `string` | `"1.0.101"` | no |
| [create\_controller](#input\_create\_controller) | Controls whether the Ocean Controller should be deployed (it affects all resources) | `bool` | `true` | no |
| [disable\_auto\_update](#input\_disable\_auto\_update) | Controls whether the auto-update feature should be disabled | `bool` | `false` | no |
| [enable\_csr\_approval](#input\_enable\_csr\_approval) | Controls whether the CSR approval feature should be enabled | `bool` | `false` | no |
| [image\_pull\_policy](#input\_image\_pull\_policy) | Specifies the image pull policy (one of: Always, Never, IfNotPresent) | `string` | `"Always"` | no |
| [image\_pull\_secrets](#input\_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](#input\_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](#input\_proxy\_url) | Specifies the proxy server URL to communicate through | `string` | `""` | no |
| [resources\_limits](#input\_resources\_limits) | Specifies the definition of the maximum amount of compute resources allowed | `map(any)` | `null` | no |
| [resources\_requests](#input\_resources\_requests) | Specifies the definition of the minimum amount of compute resources required | `map(any)` | `null` | no |
| [secret\_name](#input\_secret\_name) | Overrides the default secret name | `string` | `null` | no |
| [service\_account\_name](#input\_service\_account\_name) | Overrides the default service account name | `string` | `null` | no |
| [spotinst\_account](#input\_spotinst\_account) | Specifies the Spot account ID | `string` | n/a | yes |
| [spotinst\_token](#input\_spotinst\_token) | Specifies the Spot Personal Access token | `string` | n/a | yes |
| [tolerations](#input\_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](#namespace) | Specifies the workload's namespace name | `string` | kube-system | no |

## Outputs

No outputs.

## Documentation

If you're new to [Spot](https://spot.io/) and want to get started, please checkout our [Getting Started](https://docs.spot.io/connect-your-cloud-provider/) guide, available on the [Spot Documentation](https://docs.spot.io/) website.

## Getting Help

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

- Ask a question on [Stack Overflow](https://stackoverflow.com/) and tag it with [terraform-spotinst](https://stackoverflow.com/questions/tagged/terraform-spotinst/).
- Join our [Spot](https://spot.io/) community on [Slack](http://slack.spot.io/).
- Open an issue.

## Community

- [Slack](http://slack.spot.io/)
- [Twitter](https://twitter.com/spot_hq/)

## Contributing

Please see the [contribution guidelines](CONTRIBUTING.md).

## License

Code is licensed under the [Apache License 2.0](LICENSE).