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 | ~> 2.0 |
helm | >= 2.8.0 |
kubernetes | >=2.17.0 |
No providers.
Name | Source | Version |
---|---|---|
cloud_provider_equinix_metal | ./modules/cloud_provider_equinix_metal | n/a |
kube_vip | ./modules/kube-vip | n/a |
longhorn | ./modules/longhorn | n/a |
metallb | ./modules/metallb | n/a |
portworx | ./modules/portworx | n/a |
portworx_data_services | ./modules/portworx-data-services | n/a |
rook | ./modules/rook | n/a |
No resources.
Name | Description | Type | Default | Required |
---|---|---|---|---|
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_kube_vip | Enable Kube-vip add-on | bool |
false |
no |
enable_longhorn | Enable Longhorn add-on | bool |
false |
no |
enable_metallb | Enable Metallb add-on | bool |
false |
no |
enable_portworx | Enable Portworx add-on | bool |
false |
no |
enable_portworx_data_services | Enable Portworx_data_services add-on | bool |
false |
no |
enable_rook | Enable Rook add-on | bool |
false |
no |
equinix_metro | Equinix metro code | string |
null |
no |
equinix_project | Equinix project | string |
null |
no |
kube_vip_config | Configuration for Kube-vip add-on | any |
{} |
no |
kubeconfig_local_path | Depending on your setup, you may need to specify the path to the kubeconfig file locally | string |
null |
no |
kubeconfig_remote_path | Depending on your setup, you may need to specify the path to the kubeconfig file hosted on the remote server | string |
null |
no |
longhorn_config | Configuration for Longhorn add-on | any |
null |
no |
metallb_config | Configuration for Metallb add-on | any |
{} |
no |
portworx_config | Configuration for Portworx add-on | any |
{} |
no |
portworx_data_services_config | Configuration for Portworx_data_services add-on | any |
{} |
no |
rook_config | Configuration for Rook add-on | any |
null |
no |
ssh_host | The address of the server from where to perform kubectl installations and changes | string |
null |
no |
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 |
null |
no |
ssh_user | The user to use for the connection | string |
null |
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 |
kube_vip | Map of attributes available for the Kube-vip addon |
metallb | MetaLB addon outputs |
portworx | Portworx add-on outputs |
portworx_data_services | Map of attributes available for the Portworx_data_services addon |
If you are interested in adding new addons, please see CONTRIBUTING A NEW ADDON section for more information and tools available.