Skip to content

equinix-labs/terraform-equinix-kubernetes-addons

Repository files navigation

Terraform Equinix Kubernetes Addons

Experimental terraform

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.

Usage

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.

Prerequisites

Steps

Checkout examples directory within any of the available modules to define required files and installation steps.

Examples

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.

Requirements

Name Version
terraform >= 1.0.0
equinix ~> 2.0
helm >= 2.8.0
kubernetes >=2.17.0

Providers

No providers.

Modules

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

Resources

No resources.

Inputs

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

Outputs

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

Adding a new Addon

If you are interested in adding new addons, please see CONTRIBUTING A NEW ADDON section for more information and tools available.