Skip to content

surajincloud/terraform-civo-kubernetes

Repository files navigation

terraform-civo-kubernetes

Terraform module for Civo Cloud Kubernetes

Usage

terraform {
  required_version = ">= 0.13"
  required_providers {
    civo = {
      source = "civo/civo"
      version = ">= 1.0.7"
    }
  }
}

variable "civo_token" {}

provider "civo" {
  token = var.civo_token
  region = "LON1"
}

module "civo-cluster-1" {
    source = "surajincloud/kubernetes/civo"
    cluster_name = "surajincloud-k8s"
}

Examples

examples has various examples which covers most of the scenarios.

Contributing

Feel free to contribute via issues, PR 😊

Requirements

Name Version
terraform >= 0.13
civo >= 1.0.18

Providers

Name Version
civo >= 1.0.18

Modules

No modules.

Resources

Name Type
civo_firewall.firewall resource
civo_firewall_rule.cluster-access resource
civo_kubernetes_cluster.cluster resource
civo_network.network resource
civo_firewall.firewall data source
civo_network.network data source

Inputs

Name Description Type Default Required
cluster_name name of the kubernetes cluster string n/a yes
cni CNI Plugin, available options: flannel, cilium string "cilium" no
firewall_name name of the existing firewall string "" no
k3s_version supported version of the k3s cluster string "" no
network_name name of the existing network string "" no
node_count number of target nodes number 3 no
node_label (optional) describe your variable string n/a yes
node_size instance type of the target nodes, choose from g3.k3s.xsmall, g3.k3s.small, g3.k3s.medium, g3.k3s.large, g3.k3s.xlarge, g3.k3s.2xlarge string "g3.k3s.medium" no
region Region for the Cluster string n/a yes
tags Space separated list of tags string n/a yes

Outputs

Name Description
api_endpoint The API server endpoint of the cluster
cluster_id The ID of the cluster
firewall_id The firewall ID to use for this cluster
kubeconfig The kubeconfig of the cluster
master_ip The IP address of the master node
network_id The network ID to use for this cluster