Skip to content

Commit

Permalink
make providers great again
Browse files Browse the repository at this point in the history
  • Loading branch information
morga471 committed Jan 29, 2025
1 parent 23fc0ad commit 354afd7
Show file tree
Hide file tree
Showing 16 changed files with 287 additions and 60 deletions.
34 changes: 34 additions & 0 deletions lab/_envcommon/helm-provider.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
dependency "eks" {
config_path = "${get_original_terragrunt_dir()}/../eks"
mock_outputs = {
cluster_name = "a-cluster-name"
region = "a-aws-region"
}
}

inputs = {
cluster_name = dependency.eks.outputs.cluster_name
}

# Generate a k8s provider block
generate "helm_provider" {
path = "helm-provider.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
%{if "${dependency.eks.outputs.cluster_name}" != "a-cluster-name" ~}
data "aws_eks_cluster" "helm" {
name = "${dependency.eks.outputs.cluster_name}"
}
data "aws_eks_cluster_auth" "helm" {
name = "${dependency.eks.outputs.cluster_name}"
}
provider "helm" {
kubernetes {
host = data.aws_eks_cluster.helm.endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.helm.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.helm.token
}
}
%{ endif ~}
EOF
}
32 changes: 32 additions & 0 deletions lab/_envcommon/kube-provider.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
dependency "eks" {
config_path = "${get_original_terragrunt_dir()}/../eks"
mock_outputs = {
cluster_name = "a-cluster-name"
region = "a-aws-region"
}
}

inputs = {
cluster_name = dependency.eks.outputs.cluster_name
}

# Generate a k8s provider block
generate "kube_provider" {
path = "kube-provider.tf"
if_exists = "overwrite_terragrunt"
contents = <<-EOF
%{if "${dependency.eks.outputs.cluster_name}" != "a-cluster-name" ~}
data "aws_eks_cluster" "kube" {
name = "${dependency.eks.outputs.cluster_name}"
}
data "aws_eks_cluster_auth" "kube" {
name = "${dependency.eks.outputs.cluster_name}"
}
provider "kubernetes" {
host = data.aws_eks_cluster.kube.endpoint
cluster_ca_certificate = base64decode(data.aws_eks_cluster.kube.certificate_authority[0].data)
token = data.aws_eks_cluster_auth.kube.token
}
%{ endif ~}
EOF
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,23 @@ dependency "eks_config" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cert_manager_cainjector_tag = include.root.inputs.cert_manager_cainjector_tag
cert_manager_controller_tag = include.root.inputs.cert_manager_controller_tag
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,23 @@ dependency "eks" {
}
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cluster_name = dependency.eks.outputs.cluster_name
eks_managed_node_groups_autoscaling_group_names = dependency.eks.outputs.eks_managed_node_groups_autoscaling_group_names
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,23 @@ dependency "istio" {
}
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cluster_name = dependency.eks.inputs.cluster_name
istio_ingress_lb = dependency.istio.outputs.istio_ingress_lb
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ dependency "eks-loki" {
}
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cluster_domain = dependency.eks.inputs.vpc_domain_name
cluster_name = dependency.eks.outputs.cluster_name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,23 @@ dependency "eks-karpenter" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cluster_name = dependency.eks.outputs.cluster_name
istio_chart_version = include.root.inputs.istio_version
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,23 @@ dependency "eks-loki" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
# datasources = dependency.eks-loki.outputs.gateway_internal_endpoint
cluster_domain = dependency.eks.inputs.vpc_domain_name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,23 @@ dependency "eks-config" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
cluster_endpoint = dependency.eks.outputs.cluster_endpoint
cluster_name = dependency.eks.outputs.cluster_name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,23 @@ dependency "eks-grafana" {
}
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
kiali_operator_version = include.root.inputs.kiali_operator_version
kiali_application_version = include.root.inputs.kiali_application_version
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,23 @@ dependency "eks-prometheus" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,23 @@ dependency "eks_config" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
profile = include.root.inputs.aws_profile
cluster_name = dependency.eks.outputs.cluster_name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,23 @@ dependency "eks-dns" {
skip_outputs = true
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ dependency "eks-prometheus" {
}
}

locals {
helm = read_terragrunt_config(find_in_parent_folders("./_envcommon/helm-provider.hcl"))
kube = read_terragrunt_config(find_in_parent_folders("./_envcommon/kube-provider.hcl"))
}

generate "helm" {
path = local.helm.generate.helm_provider.path
if_exists = local.helm.generate.helm_provider.if_exists
contents = local.helm.generate.helm_provider.contents
}

generate "kube" {
path = local.kube.generate.kube_provider.path
if_exists = local.kube.generate.kube_provider.if_exists
contents = local.kube.generate.kube_provider.contents
}

inputs = {
account_id = include.root.locals.account_id
profile = include.root.locals.aws_profile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,19 @@ terraform {
}
}

# inputs = {
# cluster_endpoint_public_access = include.root.inputs.cluster_endpoint_public_access
# cluster_name = include.root.inputs.cluster_name
# cluster_version = include.root.inputs.cluster_version
# creator = include.root.inputs.creator
# eks_instance_disk_size = include.root.inputs.eks_instance_disk_size
# eks_ng_desired_size = include.root.inputs.eks_ng_desired_size
# eks_ng_max_size = include.root.inputs.eks_ng_max_size
# eks_ng_min_size = include.root.inputs.eks_ng_min_size
# eks_vpc_name = include.root.inputs.vpc_name
# enable_cluster_creator_admin_permissions = include.root.inputs.enable_cluster_creator_admin_permissions
# environment_abbr = include.root.inputs.environment_abbr
# tags = include.root.inputs.tags
# vpc_name = include.root.inputs.vpc_name
# }
inputs = {
cluster_endpoint_public_access = include.root.inputs.cluster_endpoint_public_access
cluster_name = include.root.inputs.cluster_name
cluster_version = include.root.inputs.cluster_version
creator = include.root.inputs.creator
eks_instance_disk_size = include.root.inputs.eks_instance_disk_size
eks_ng_desired_size = include.root.inputs.eks_ng_desired_size
eks_ng_max_size = include.root.inputs.eks_ng_max_size
eks_ng_min_size = include.root.inputs.eks_ng_min_size
eks_vpc_name = include.root.inputs.vpc_name
enable_cluster_creator_admin_permissions = include.root.inputs.enable_cluster_creator_admin_permissions
environment_abbr = include.root.inputs.environment_abbr
region = include.root.inputs.aws_region
tags = include.root.inputs.tags
vpc_name = include.root.inputs.vpc_name
}
Loading

0 comments on commit 354afd7

Please sign in to comment.