Skip to content

post-kubectl rip out with dynamic providers #17

Merged
merged 38 commits into from
Feb 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
aabf1a5
no kubectl provider needed
morga471 Jan 27, 2025
39de87a
testing
morga471 Jan 28, 2025
4f2d7ef
fix providers
morga471 Jan 28, 2025
25ace54
make providers great again
morga471 Jan 29, 2025
adcbbd3
update karpenter branch
morga471 Jan 29, 2025
e5a99bd
update tags
morga471 Jan 30, 2025
ced2073
add workspace to .github
morga471 Jan 30, 2025
5790478
update paths
morga471 Jan 31, 2025
cd895e6
test vars in provider regen
morga471 Jan 31, 2025
f8163ea
since we do not need outputs consider using dependencies block instead
morga471 Jan 31, 2025
b4ffa06
use dependency blocks again
morga471 Feb 3, 2025
9d1b88d
dryer
morga471 Feb 3, 2025
17522e2
include once
morga471 Feb 3, 2025
a3c7ddf
plan, no cluster
morga471 Feb 4, 2025
40a54f8
no mocks on the provider gens, otherwise okay
morga471 Feb 4, 2025
cd11a92
conditional the provider DATA
morga471 Feb 7, 2025
955c87e
include root
morga471 Feb 7, 2025
4bba541
turn modules on again
morga471 Feb 7, 2025
0eec946
re-add
morga471 Feb 7, 2025
2187382
wip
morga471 Feb 8, 2025
9013e98
maybe works?
morga471 Feb 11, 2025
85096fc
add empty
morga471 Feb 11, 2025
f92f1e6
seems to work
morga471 Feb 11, 2025
c59fbcc
working
morga471 Feb 12, 2025
788748d
revert changes from testing and add notes
morga471 Feb 12, 2025
25e1640
cleanup
morga471 Feb 12, 2025
eacb42f
more cleanup
morga471 Feb 12, 2025
cb6aea5
better cleanup
morga471 Feb 12, 2025
ec43ede
hclfmt
morga471 Feb 13, 2025
3327a11
add Makefile for common actions
morga471 Feb 13, 2025
a0623bb
standardize modules
morga471 Feb 13, 2025
09ec4db
fmt
morga471 Feb 13, 2025
b61e634
updates from standards
morga471 Feb 13, 2025
2e5edce
more cleanup from standardization
morga471 Feb 13, 2025
9aced81
more updates
morga471 Feb 18, 2025
1125cc3
strip out clusters that are not mine
morga471 Feb 19, 2025
a8929e3
make certs work
morga471 Feb 21, 2025
377b583
less lock timeout
morga471 Feb 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .github/platform-tg-infra.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"folders": [
{
"name": "platform-tg-infra",
"path": "../"
},
{
"name": "tfmod-cert-mgr",
"path": "../../tfmod-cert-mgr"
},
{
"name": "tfmod-config-job",
"path": "../../tfmod-config-job"
},
{
"name": "tfmod-custom-iam-role-for-service-account-eks",
"path": "../../tfmod-custom-iam-role-for-service-account-eks"
},
{
"name": "tfmod-eks",
"path": "../../tfmod-eks"
},
{
"name": "tfmod-eks-configuration",
"path": "../../tfmod-eks-configuration"
},
{
"name": "tfmod-eks-dns",
"path": "../../tfmod-eks-dns"
},
{
"name": "tfmod-grafana",
"path": "../../tfmod-grafana"
},
{
"name": "tfmod-istio",
"path": "../../tfmod-istio"
},
{
"name": "tfmod-istio-service-ingress",
"path": "../../tfmod-istio-service-ingress"
},
{
"name": "tfmod-k8s-dashboard",
"path": "../../tfmod-k8s-dashboard"
},
{
"name": "tfmod-karpenter",
"path": "../../tfmod-karpenter"
},
{
"name": "tfmod-kiali",
"path": "../../tfmod-kiali"
},
{
"name": "tfmod-loki",
"path": "../../tfmod-loki"
},
{
"name": "tfmod-metrics-server",
"path": "../../tfmod-metrics-server"
},
{
"name": "tfmod-prometheus",
"path": "../../tfmod-prometheus"
},
{
"name": "tfmod-tempo",
"path": "../../tfmod-tempo"
},
{
"path": "../../terraform-aws-eks"
},
{
"path": "../../karpenter-provider-aws"
},
{
"path": "../../terragrunt"
}
]
}
35 changes: 35 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
.PHONY: help init validate plan fmt check clean

help:
@echo "Available targets:"
@echo " init - Initialize Terragrunt configurations"
@echo " validate - Validate all Terragrunt configurations"
@echo " plan - Run plan in dry-run mode across all configurations"
@echo " fmt - Format HCL files"
@echo " check - Run all checks (format, validate, plan)"
@echo " clean - Clean up Terragrunt cache and temporary files"

init:
@echo "Initializing Terragrunt configurations..."
terragrunt run-all init

validate:
@echo "Validating Terragrunt configurations..."
terragrunt run-all validate

plan:
@echo "Running plan in dry-run mode..."
terragrunt run-all plan --terragrunt-non-interactive

fmt:
@echo "Formatting HCL files..."
find . -type f -name "*.hcl" -exec terragrunt hclfmt {} \;

check: fmt validate plan
@echo "All checks completed"

clean:
@echo "Cleaning Terragrunt cache..."
find . -type d -name ".terragrunt-cache" -exec rm -rf {} +
find . -type f -name ".terraform.lock.hcl" -delete
find . -type f -name "terragrunt-debug.tfvars.json" -delete
2 changes: 0 additions & 2 deletions lab/_envcommon/common-variables.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ locals {
project_role = "csvd_platformbaseline_app"
state_bucket_prefix = "inf-tfstate"
state_table_name = "tf_remote_state"
terraform = true
terragrunt = true
route53_endpoints = {
route53_main = {
"account_id" = "269244441389"
Expand Down
12 changes: 8 additions & 4 deletions lab/_envcommon/default-versions.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ locals {
#####################
cluster_version = "1.31"
custom_service_eks_account = "${local.release_version}"
eks_module_version = "20.31.1"
eks_module_version = "20.33.1"
istio_ingress_version = "${local.release_version}"
release_version = "0.1.1"
release_version = "main" # change to main when testing updated modules

#####################
# TF Providers
Expand All @@ -29,7 +29,7 @@ locals {
################
# k8s-dashboard
################
dashboard_hostname = "dashboard"
dashboard_hostname = "k8s-dashboard"
k8s_dashboard_metrics_scraper = "1.0.8"
k8s_dashboard_version = "6.0.6"

Expand All @@ -47,14 +47,16 @@ locals {
################
# Istio
################
istio_version = "1.24.2"
istio_namespace = "istio-system"
istio_version = "1.24.2"

################
# Grafana
################
download_dashboards_image_tag = "7.85.0"
grafana_chart_version = "8.8.5"
grafana_hostname = "grafana"
grafana_namespace = "grafana"
grafana_tag = "11.4.0"
init_chown_data_image_tag = "1.31.1"

Expand Down Expand Up @@ -92,6 +94,7 @@ locals {
# Prometheus
################
prometheus_chart_version = "25.26.0"
prometheus_namespace = "prometheus"
prometheus_server_tag = "v2.54.0"
prometheus_config_reloader_tag = "v0.75.2"
alertmanager_tag = "v0.27.0"
Expand All @@ -103,5 +106,6 @@ locals {
# Tempo
################
tempo_chart_version = "1.18.1"
tempo_namespace = "tempo"
tempo_tag = "2.7.0"
}
24 changes: 0 additions & 24 deletions lab/_envcommon/helm-provider.hcl

This file was deleted.

22 changes: 0 additions & 22 deletions lab/_envcommon/kube-provider.hcl

This file was deleted.

23 changes: 15 additions & 8 deletions lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/cluster.hcl
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
# lab/development/us-gov-east-1/vpc/platform-eng-eks-mcm/cluster.hcl

# Set cluster specific variables. These are automatically pulled in to configure the remote state bucket in the root
# terragrunt.hcl configuration.
locals {
# Cluster specific configuration
cluster_endpoint_public_access = true
cluster_name = "platform-eng-eks-mcm"
created_reason = "Terragrunt Development for CICD Delivered EKS Platform"
creator = "matthew.c.morgan@census.gov"
cluster_mailing_list = "matthew.c.morgan@census.gov"
eks_instance_disk_size = 100
eks_ng_desired_size = 2
eks_ng_max_size = 10
eks_ng_min_size = 0
enable_cluster_creator_admin_permissions = true
terraform = true
terragrunt = true
tags = {
"slim:schedule" = "8:00-17:00"
"cluster:size" = "min:${local.eks_ng_min_size}-max:${local.eks_ng_max_size}-desired:${local.eks_ng_desired_size}"
}

# Common configuration
common_retry_args = {
commands = get_terraform_commands_that_need_locking()
arguments = ["-lock-timeout=20m"]
}

common_dependencies = ["../eks", "../eks-config"]

common_mock_eks = {
cluster_name = "mock-cluster"
oidc_provider_arn = "arn:aws-us-gov:iam::123456789012:oidc-provider/mock"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,51 @@ include "root" {

terraform {
source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-cert-mgr.git?ref=${include.root.inputs.release_version}"

extra_arguments "retry_lock" {
commands = get_terraform_commands_that_need_locking()
arguments = ["-lock-timeout=20m"]
arguments = ["-lock-timeout=20s"]
}
}

dependencies {
paths = [
"../eks",
"../eks-config",
"../eks-karpenter"
]
}

dependency "eks" {
config_path = "../eks"
config_path = "../eks"
mock_outputs_allowed_terraform_commands = ["init", "plan", "validate", "destroy"]

mock_outputs = {
cluster_name = "a-cluster-name"
oidc_provider_arn = "arn:aws-us-gov:iam::111111111111:oidc-provider/oidc.eks.us-gov-east-1.amazonaws.com/id/0000000000000000AAAAAAAAAAAAAAAA"
cluster_name = include.root.inputs.cluster_name
oidc_provider_arn = "arn:aws-us-gov:iam::123456789012:oidc-provider/mock"
cluster_endpoint = "https://mock-endpoint.eks.amazonaws.com"
cluster_version = include.root.inputs.cluster_version
}
}

dependency "eks_config" {
config_path = "../eks-config"
skip_outputs = true
}

inputs = {
# AWS Configuration
account_id = include.root.inputs.aws_account_id
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region

# Cluster Configuration
cluster_name = dependency.eks.outputs.cluster_name
cluster_mailing_list = include.root.inputs.cluster_mailing_list
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn

# Cert Manager Configuration
cert_manager_helm_chart = include.root.inputs.cert_manager_helm_chart
cluster_issuer_name = include.root.inputs.cluster_issuer_name

# Version Tags
cert_manager_cainjector_tag = include.root.inputs.cert_manager_cainjector_tag
cert_manager_controller_tag = include.root.inputs.cert_manager_controller_tag
cert_manager_helm_chart = include.root.inputs.cert_manager_helm_chart
cert_manager_startupapicheck_tag = include.root.inputs.cert_manager_startupapicheck_tag
cert_manager_webhook_tag = include.root.inputs.cert_manager_webhook_tag
cluster_issuer_name = include.root.inputs.cluster_issuer_name
cluster_mailing_list = dependency.eks.inputs.creator
cluster_name = dependency.eks.outputs.cluster_name
oidc_provider_arn = dependency.eks.outputs.oidc_provider_arn
profile = include.root.inputs.aws_profile
region = include.root.inputs.aws_region
release_version = include.root.inputs.release_version
}
Loading