Why is my Terraform ConfigMap Trying Localhost Instead of GCP?

100 Views Asked by At

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
0

There are 0 best solutions below