video-iac/terraform/kubernetes.tf

70 lines
1.6 KiB
HCL

resource "kubernetes_namespace" "external-dns" {
depends_on = [local_file.kubeconfig]
metadata {
name = "external-dns"
}
}
resource "kubernetes_secret" "aws_user_external_dns" {
depends_on = [kubernetes_namespace.external-dns]
metadata {
name = "aws-user-external-dns"
namespace = "external-dns"
}
data = {
username = aws_iam_access_key.lke-external-dns.id
password = aws_iam_access_key.lke-external-dns.secret
}
type = "kubernetes.io/basic-auth"
}
resource "kubernetes_namespace" "argocd" {
depends_on = [local_file.kubeconfig]
metadata {
name = "argocd"
}
}
data "aws_secretsmanager_secret" "bitbucket_ssh_argocd_key" {
name = "bitbucket-ssh-argocd-key"
}
data "aws_secretsmanager_secret_version" "bitbucket_ssh_argocd_key" {
secret_id = data.aws_secretsmanager_secret.bitbucket_ssh_argocd_key.id
}
resource "kubernetes_secret" "bitbucket_ssh_argocd_key" {
depends_on = [kubernetes_namespace.argocd]
metadata {
name = "bitbucket-ssh-argocd-key"
namespace = "argocd"
labels = {
"argocd.argoproj.io/secret-type" = "repository"
}
}
data = {
url = "git@bitbucket.org:jamkazam/video-iac"
sshPrivateKey = base64decode(jsondecode(data.aws_secretsmanager_secret_version.bitbucket_ssh_argocd_key.secret_string)["private"])
}
}
data "kustomization_build" "argocd" {
path = "../k8s/argocd/overlays/staging"
}
resource "kustomization_resource" "argocd" {
depends_on = [kubernetes_namespace.argocd]
for_each = data.kustomization_build.argocd.ids
manifest = data.kustomization_build.argocd.manifests[each.value]
}