Skip to content

Instantly share code, notes, and snippets.

@yankcrime
Created June 8, 2021 15:39
Show Gist options
  • Save yankcrime/fd38762491a209ff5e560019c98462e4 to your computer and use it in GitHub Desktop.
Save yankcrime/fd38762491a209ff5e560019c98462e4 to your computer and use it in GitHub Desktop.
Rancher Server via Terraform with private CA and custom client certs
resource "kubernetes_secret" "tls_ca" {
metadata {
name = "tls-ca"
namespace = "cattle-system"
}
data = {
"cacerts.pem" = file("./cacerts.pem")
}
depends_on = [
rke_cluster.rancher
]
}
resource "kubernetes_secret" "tls_rancher_ingress" {
metadata {
name = "tls-rancher-ingress"
namespace = "cattle-system"
}
type = "kubernetes.io/tls"
data = {
"tls.crt" = file("./tls.crt")
"tls.key" = file("./tls.key")
}
depends_on = [
rke_cluster.rancher
]
}
resource "helm_release" "rancher" {
name = "rancher"
chart = "rancher"
version = var.rancher_version
namespace = "cattle-system"
create_namespace = true
repository = "https://releases.rancher.com/server-charts/latest"
timeout = 600
set {
name = "hostname"
value = var.rancher_hostname
}
set {
name = "antiAffinity"
value = "required"
}
set {
name = "ingress.tls.source"
value = "secret"
}
set {
name = "privateCA"
value = "true"
}
depends_on = [
kubernetes_secret.tls_ca,
kubernetes_secret.tls_rancher_ingress
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment