/tf-module-rancher-harvester-equinix

Terraform Module for deploying Harvester, with Rancher on vCluster and Metal Gateways for VLANs on Equinix Metal

Primary LanguageHCL

Terraform Module for Harvester and Rancher on Equinix

Introduction

This modules aims at simplifying the deployment of Harvester on top of Equinix Metal in an opinionated way, this includes:

  • Deploying Rancher as vCluster inside Harvester
  • Automatically importing Harvester as a Virtualization Cluster inside of Rancher
  • Using Equinix Metal Gateways for VLAN-tagged subnets accessible by VMs

Features

Requirements

Name Version
cloudflare 4.34.0
equinix 1.34.1
github 6.2.1
rancher2 4.1.0

Providers

Name Version
cloudflare 4.34.0
equinix 1.34.1
github 6.2.1
http 3.4.2
local 2.5.1
null 3.2.2

Modules

Name Source Version
create_vcluster ./modules/apply_manifest n/a
create_vcluster_namespace ./modules/apply_manifest n/a
harvester_cluster ./modules/terraform-harvester-equinix n/a
import_harvester ./modules/rancher_import_harvester n/a

Resources

Name Type
cloudflare_record.dns_record_rancher resource
equinix_metal_gateway.gateway_private_subnet resource
equinix_metal_gateway.gateway_public_subnet resource
equinix_metal_port_vlan_attachment.public_vlan_on_nodes resource
equinix_metal_reserved_ip_block.public_ip_block_router resource
equinix_metal_vlan.public_vlan resource
github_branch.participant_branch resource
github_repository_file.README resource
null_resource.kubeconfig resource
null_resource.set_password resource
null_resource.set_password_rancher resource
null_resource.update_server_url resource
cloudflare_zone.susecon_zone data source
equinix_metal_gateway.get_ip_id_from_gateway data source
equinix_metal_gateway.get_ip_id_from_gateway_public data source
equinix_metal_project.project_id data source
equinix_metal_reserved_ip_block.metal_gateway_subnet data source
equinix_metal_reserved_ip_block.public_subnet data source
http_http.get_token data source
local_file.harvester_kubeconfig data source

Inputs

Name Description Type Default Required
auth_token Equinix API authentication token string "" no
bootstrap_password Bootstrap password for admin string "admin" no
cloudflare_api_token Cloudflare API Token string n/a yes
cluster_number Cluster number number n/a yes
github_participant_repo GitHub Repository for the participant string n/a yes
harvester_password Password for harvester admin user string n/a yes
harvester_version Version of Harvester to deploy string "v1.2.1" no
hostname_prefix hostname prefix string "harvester-cl" no
metro Metro to deploy the Harvester cluster string "FR" no
node_count Number of nodes in the Harvester cluster number 1 no
num_of_vlans Number of VLANs to create number 1 no
participant_id Participant ID, mostly used for GitHub Branch and Rancher Hostname Suffix string n/a yes
project_name Name of the project to create the Harvester cluster string "test" no
rancher_access_key Rancher access key string "" no
rancher_api_url Rancher API endpoint to manager your Harvester cluster string "" no
rancher_bootstrap_password Rancher Bootstrap Password string "Rancher1234-" no
rancher_insecure Allow insecure connections to the Rancher API bool false no
rancher_letsencrypt_email Email to use for Let's Encrypt string n/a yes
rancher_password Rancher Password for Admin User string n/a yes
rancher_secret_key Rancher secret key string "" no
ssh_key SSH key to use for the Harvester cluster string "" no
ssh_private_key_file Path to private key file for Harvester Host string "" no

Outputs

Name Description
gateway_private_subnet n/a
gateway_public_subnet n/a
harvester_url n/a
node_ips n/a
nodes_ssh_password n/a
rancher_token n/a
rancher_url n/a
vlan_ids n/a