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.
- Host: GitHub
- URL: https://github.com/spotinst/terraform-spotinst-ocean-controller
- Owner: spotinst
- License: apache-2.0
- Created: 2020-03-16T14:09:30.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-18T08:05:17.000Z (over 1 year ago)
- Last Synced: 2024-09-19T08:05:31.790Z (over 1 year ago)
- Topics: netapp-public, ocean, owned-by-anurag-sharma, terraform
- Language: HCL
- Homepage: https://registry.terraform.io/modules/spotinst/ocean-controller/spotinst
- Size: 175 KB
- Stars: 12
- Watchers: 6
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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).