Experimental This project is experimental and a work in progress. The support is provided best-effort by the Kubernetes Addons community.
This repository contains a collection of Terraform modules (addons) to help automate the deploy and management of Kubernetes components in Kubernetes environments running on Equinix Metal baremetal.
This project is intended to be used as a Terraform module.
This project may also be forked, cloned, or downloaded and modified as needed as the base in your integrations and deployments.
- Have a running Kubernetes cluster running on Equinix Metal baremetal.
- Install Terraform using the official guides at https://learn.hashicorp.com/tutorials/terraform/install-cli.
- It may be useful to install metal-cli.
Checkout examples
directory within any of the available modules to define required files and installation steps.
Each module includes an examples
directory with configuration examples specific to them.
As this project grows and more modules become available, an examples
directory will be included in the root directory, with blueprints to provision complete solutions.
Name | Version |
---|---|
terraform | >= 1.0.0 |
equinix | >= 1.11.1 |
helm | >= 2.8.0 |
No providers.
Name | Source | Version |
---|---|---|
cloud_provider_equinix_metal | ./modules/cloud_provider_equinix_metal | n/a |
longhorn | ./modules/longhorn | n/a |
metallb | ./modules/metallb | n/a |
rook | ./modules/rook | n/a |
No resources.
Name | Description | Type | Default | Required |
---|---|---|---|---|
equinix_metro | Equinix metro code | string |
n/a | yes |
equinix_project | Equinix project | string |
n/a | yes |
kubeconfig_local_path | Depending on your setup, you may need to specify the path to the kubeconfig file locally | string |
n/a | yes |
kubeconfig_remote_path | Depending on your setup, you may need to specify the path to the kubeconfig file hosted on the remote server | string |
n/a | yes |
ssh_host | The address of the server from where to perform kubectl installations and changes | string |
n/a | yes |
ssh_private_key | The contents of an SSH key to use for the connection. These can be loaded from a file on disk using the file function | string |
n/a | yes |
cloud_provider_equinix_metal_config | Configuration for cloudproviderequinixmetal add-on | any |
{} |
no |
enable_cloud_provider_equinix_metal | Enable cloudproviderequinixmetal add-on | bool |
false |
no |
enable_longhorn | Enable Longhorn add-on | bool |
false |
no |
enable_metallb | Enable Metallb add-on | bool |
false |
no |
enable_rook | Enable Rook add-on | bool |
false |
no |
longhorn_config | Configuration for Longhorn add-on | any |
null |
no |
metallb_config | Configuration for Metallb add-on | any |
{} |
no |
rook_config | Configuration for Rook add-on | any |
null |
no |
ssh_user | The user to use for the connection | string |
"root" |
no |
tags | Additional tags (e.g. ['k8s ,production ] |
list(string) |
[] |
no |
Name | Description |
---|---|
cloud_provider_equinix_metal | Cloud Provider Equinix Metal add-on outputs |
cloud_provider_equinix_metal_prerequisites | Cloud Provider Equinix Metal add-on prerequisites for device provisioning |
metallb | MetaLB addon outputs |
If you are interested in adding new addons, please see CONTRIBUTING A NEW ADDON section for more information and tools available.