Merge pull request #63 from HideyoshiSolutions/feature/better-kubeconfig-managment

feat: better kubeconfig managment
This commit is contained in:
2025-10-30 17:58:35 -03:00
committed by GitHub
6 changed files with 42 additions and 36 deletions

View File

@@ -39,7 +39,12 @@ variable "aws_secret" {
sensitive = true sensitive = true
} }
variable "aws_instance_type" { variable "aws_main_instance_type" {
type = string
default = "t4g.small"
}
variable "aws_worker_instance_type" {
type = string type = string
default = "t4g.micro" default = "t4g.micro"
} }
@@ -84,7 +89,11 @@ variable "github_token" {
sensitive = true sensitive = true
} }
variable "github_repository" { variable "github_repositories" {
type = string type = list(string)
default = "infra-hideyoshi.com" default = [
"frontend-hideyoshi.com",
"backend-hideyoshi.com",
"storage-hideyoshi.com",
]
} }

View File

@@ -4,12 +4,10 @@ variable "environment_name" {
variable "github_owner" { variable "github_owner" {
type = string type = string
default = "HideyoshiSolutions"
} }
variable "github_repository" { variable "github_repositories" {
type = string type = list(string)
default = "infra-hideyoshi.com"
} }

View File

@@ -7,17 +7,15 @@ terraform {
} }
} }
data "github_user" "current" {
username = "" data "github_repository" "repos" {
for_each = toset(var.github_repositories)
full_name = "${var.github_owner}/${each.value}"
} }
data "github_repository" "infra_hideyoshi_com" { resource "github_actions_organization_secret" "cluster_kubeconfig" {
full_name = "${var.github_owner}/${var.github_repository}" visibility = "selected"
} selected_repository_ids = [for repo in data.github_repository.repos : repo.repo_id]
secret_name = "PORTFOLIO_KUBECONFIG"
resource "github_actions_environment_secret" "cluster_kubeconfig" {
repository = data.github_repository.infra_hideyoshi_com.name
environment = var.environment_name
secret_name = "KUBECONFIG"
plaintext_value = chomp(var.cluster_kubeconfig) plaintext_value = chomp(var.cluster_kubeconfig)
} }

View File

@@ -2,7 +2,6 @@
variable "project_name" { variable "project_name" {
type = string type = string
default = "hideyoshi-portifolio"
} }
variable "project_domain" { variable "project_domain" {
@@ -20,17 +19,18 @@ variable "number_of_workers" {
variable "aws_region" { variable "aws_region" {
type = string type = string
default = "sa-east-1"
} }
variable "aws_instance_type" { variable "aws_main_instance_type" {
type = string
}
variable "aws_worker_instance_type" {
type = string type = string
default = "t4g.micro"
} }
variable "aws_ami" { variable "aws_ami" {
type = string type = string
default = "ami-06a17a87e19be286a"
} }
variable "aws_spot_price" { variable "aws_spot_price" {

View File

@@ -72,7 +72,7 @@ resource "aws_security_group" "project_pool" {
resource "aws_instance" "main" { resource "aws_instance" "main" {
ami = var.aws_ami ami = var.aws_ami
instance_type = var.aws_instance_type instance_type = var.aws_main_instance_type
vpc_security_group_ids = [aws_security_group.project_pool.id] vpc_security_group_ids = [aws_security_group.project_pool.id]
key_name = aws_key_pair.ssh_key_main.key_name key_name = aws_key_pair.ssh_key_main.key_name
@@ -112,7 +112,7 @@ resource "aws_instance" "main" {
resource "aws_instance" "worker" { resource "aws_instance" "worker" {
ami = var.aws_ami ami = var.aws_ami
instance_type = var.aws_instance_type instance_type = var.aws_worker_instance_type
vpc_security_group_ids = [aws_security_group.project_pool.id] vpc_security_group_ids = [aws_security_group.project_pool.id]
count = var.number_of_workers count = var.number_of_workers

23
main.tf
View File

@@ -57,16 +57,17 @@ module "instances" {
providers = { providers = {
aws.main = aws aws.main = aws
} }
project_domain = var.project_domain project_domain = var.project_domain
project_name = var.project_name project_name = var.project_name
k3s_token = var.k3s_token k3s_token = var.k3s_token
number_of_workers = var.number_of_workers number_of_workers = var.number_of_workers
aws_region = var.aws_region aws_region = var.aws_region
ssh_public_key_main = var.ssh_public_key_main ssh_public_key_main = var.ssh_public_key_main
ssh_public_key_ci_cd = var.ssh_public_key_ci_cd ssh_public_key_ci_cd = var.ssh_public_key_ci_cd
aws_instance_type = var.aws_instance_type aws_main_instance_type = var.aws_main_instance_type
aws_ami = var.aws_ami aws_worker_instance_type = var.aws_worker_instance_type
aws_spot_price = var.aws_spot_price aws_ami = var.aws_ami
aws_spot_price = var.aws_spot_price
} }
module "dns" { module "dns" {
@@ -98,7 +99,7 @@ module "github" {
} }
environment_name = var.environment_name environment_name = var.environment_name
github_owner = var.github_owner github_owner = var.github_owner
github_repository = var.github_repository github_repositories = var.github_repositories
cluster_kubeconfig = module.kubernetes.cluster_kubeconfig cluster_kubeconfig = module.kubernetes.cluster_kubeconfig
} }