My ConfigMap is obsessed with connecting to my localhost and I want it to connect to Google Cloud.
Question: How do I get my Config Map to connect to GCP?
Below is the error I am getting from terraform apply
Error: Post "http://localhost/api/v1/namespaces/default/configmaps": dial tcp [::1]:80: connect: connection refused
This is my ConfigMap module main.tf:
resource "kubernetes_config_map" "patshala_config_map" {
metadata {
name = "backend-config-files"
namespace = "default"
labels = {
app = "patshala"
component = "backend"
}
}
data = {
"patshala-service-account.json" = file(var.gcp_service_account),
"swagger.html" = file(var.swagger_file_location),
"openapi-v1.0.yaml" = file(var.openapi_file_location)
}
}
This is my Kubernetes module main.tf:
# Retrieve an access token as the Terraform runner
data "google_client_config" "provider" {}
data "google_container_cluster" "gke_cluster_data" {
name = var.cluster_name
location = var.location
}
# Define the Kubernetes provider to manage Kubernetes objects
provider "kubernetes" {
# Set the Kubernetes API server endpoint to the GKE cluster's endpoint
host = "https://${data.google_container_cluster.gke_cluster_data.endpoint}"
# Use the access token from the Google Cloud client configuration
token = data.google_client_config.provider.access_token
# Retrieve the cluster's CA certificate for secure communication
cluster_ca_certificate = base64decode(
data.google_container_cluster.gke_cluster_data.master_auth[0].cluster_ca_certificate,
)
}
This is my root main.tf bringing everything together:
provider "google" {
project = var.project_id
region = var.region
zone = var.zone
}
module "gke_cluster" {
source = "./modules/gke_cluster"
machine_type = var.machine_type
node_count = var.node_count
}
module "kubernetes" {
source = "./modules/kubernetes"
}
module "config_map" {
source = "./modules/config_map"
gcp_service_account = var.gcp_service_account
spec_folder = var.spec_folder
openapi_file_location = var.openapi_file_location
swagger_file_location = var.swagger_file_location
cluster_name = module.gke_cluster.cluster_name
depends_on = [module.gke_cluster, module.kubernetes]
}
module "secret_manager" {
source = "./modules/secret_manager"
db_password = var.db_password
stripe_key_pub = var.stripe_secret_key
stripe_key_secret = var.stripe_pub_key
gcp_service_account = var.gcp_service_account
depends_on = [module.config_map]
}
module "patshala_db" {
source = "./modules/database"
region = var.region
db_user = var.db_user
db_password = module.secret_manager.db_password_id
db_name = var.db_name
db_version = var.db_version
depends_on = [module.secret_manager]
}
module "backend_app" {
source = "./modules/backend"
gke_cluster_name = module.gke_cluster.cluster_name
project_id = var.project_id
region = var.region
app_image = var.app_image
db_host = module.patshala_db.db_public_ip
db_name = var.db_name
db_user = var.db_user
db_password = module.secret_manager.db_password_id
environment = var.environment
# service_account_file = module.config_map.service_account_file
# openapi_file = module.config_map.openapi_file
# swagger_file = module.config_map.swagger_file
stripe_pub_key = module.secret_manager.stripe_key_pub_id
stripe_secret_key = module.secret_manager.stripe_key_secret_id
db_port = var.db_port
server_port = var.server_port
depends_on = [module.patshala_db]
}
These are my logs:
2023-10-29T11:14:41.294-0500 [ERROR] provider.terraform-provider-kubernetes_v2.23.0_x5: Response contains error diagnostic: @module=sdk.proto diagnostic_detail= tf_provider_addr=registry.terraform.io/hashicorp/kubernetes tf_resource_type=kubernetes_config_map tf_proto_version=5.3 tf_req_id=a9d34e91-aeb2-2a6a-0168-2c7f9068aafc tf_rpc=ApplyResourceChange @caller=github.com/hashicorp/[email protected]/tfprotov5/internal/diag/diagnostics.go:55 diagnostic_severity=ERROR diagnostic_summary="Post "http://localhost/api/v1/namespaces/default/configmaps": dial tcp 127.0.0.1:80: connect: connection refused" timestamp=2023-10-29T11:14:41.293-0500
2023-10-29T11:14:41.322-0500 [ERROR] vertex "module.config_map.kubernetes_config_map.patshala_config_map" error: Post "http://localhost/api/v1/namespaces/default/configmaps": dial tcp 127.0.0.1:80: connect: connection refused
2023-10-29T11:14:41.347-0500 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF"
2023-10-29T11:14:41.350-0500 [DEBUG] provider: plugin process exited: path=.terraform/providers/registry.terraform.io/hashicorp/kubernetes/2.23.0/darwin_amd64/terraform-provider-kubernetes_v2.23.0_x5 pid=6649
2023-10-29T11:14:41.350-0500 [DEBUG] provider: plugin exited