106 lines
2.2 KiB
HCL
106 lines
2.2 KiB
HCL
terraform {
|
|
required_version = ">= 1.0"
|
|
required_providers {
|
|
helm = {
|
|
source = "hashicorp/helm"
|
|
version = "~> 2.12"
|
|
}
|
|
kubernetes = {
|
|
source = "hashicorp/kubernetes"
|
|
version = "~> 2.26"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "kubernetes" {
|
|
config_path = "/home/jv/.kube/config"
|
|
}
|
|
|
|
provider "helm" {
|
|
kubernetes {
|
|
config_path = "/home/jv/.kube/config"
|
|
}
|
|
}
|
|
|
|
resource "helm_release" "cilium" {
|
|
name = "cilium"
|
|
repository = "https://helm.cilium.io/"
|
|
chart = "cilium"
|
|
namespace = "kube-system"
|
|
|
|
set {
|
|
name = "operator.replicas"
|
|
value = "1"
|
|
}
|
|
}
|
|
|
|
resource "helm_release" "longhorn" {
|
|
depends_on = [helm_release.cilium]
|
|
name = "longhorn"
|
|
repository = "https://charts.longhorn.io"
|
|
chart = "longhorn"
|
|
namespace = "longhorn-system"
|
|
create_namespace = true
|
|
timeout = 600
|
|
|
|
set {
|
|
name = "csi.attacherReplicaCount"
|
|
value = "1"
|
|
}
|
|
set {
|
|
name = "csi.provisionerReplicaCount"
|
|
value = "1"
|
|
}
|
|
set {
|
|
name = "csi.resizerReplicaCount"
|
|
value = "1"
|
|
}
|
|
set {
|
|
name = "csi.snapshotterReplicaCount"
|
|
value = "1"
|
|
}
|
|
set {
|
|
name = "defaultSettings.defaultReplicaCount"
|
|
value = "1"
|
|
}
|
|
|
|
set {
|
|
name = "global.tolerations[0].key"
|
|
value = "node-role.kubernetes.io/control-plane"
|
|
}
|
|
set {
|
|
name = "global.tolerations[0].operator"
|
|
value = "Exists"
|
|
}
|
|
set {
|
|
name = "global.tolerations[0].effect"
|
|
value = "NoSchedule"
|
|
}
|
|
}
|
|
|
|
resource "helm_release" "argocd" {
|
|
depends_on = [helm_release.longhorn]
|
|
name = "argocd"
|
|
repository = "https://argoproj.github.io/argo-helm"
|
|
chart = "argo-cd"
|
|
namespace = "argocd"
|
|
create_namespace = true
|
|
}
|
|
|
|
resource "kubernetes_secret_v1" "argocd_private_repo" {
|
|
depends_on = [helm_release.argocd]
|
|
metadata {
|
|
name = "laptop-bootstrap-repo-secret"
|
|
namespace = "argocd"
|
|
labels = {
|
|
"argocd.argoproj.io/secret-type" = "repository"
|
|
}
|
|
}
|
|
|
|
data = {
|
|
type = "git"
|
|
url = "ssh://jv@192.168.100.68/home/jv/git-server/my-homelab-configs.git"
|
|
sshPrivateKey = file("/home/jv/.ssh/id_ed25519")
|
|
}
|
|
}
|