-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Hi Everyone,
I have been able to successfully access an eks cluster created via eks terraform module
with a caveat. I am unable to access the cluster securely.
Version Information
Terraform v0.14.5
+ provider registry.terraform.io/hashicorp/aws v3.26.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.0.2
+ provider registry.terraform.io/hashicorp/local v2.0.0
+ provider registry.terraform.io/hashicorp/null v3.0.0
+ provider registry.terraform.io/hashicorp/random v3.0.1
+ provider registry.terraform.io/hashicorp/template v2.2.0
+ provider registry.terraform.io/hashicorp/tls v3.0.0
As far as I can understand, kubernetes provider is not accepting the cert generated during eks instantiation as safe/valid.
Until I pass insecure = true
, I am unable to access the cluster. Please find below my scripts.
k8s-provider.tf:
provider "kubernetes" {
host = data.aws_eks_cluster.cluster.endpoint
#cluster_ca_certificate = base64decode(data.aws_eks_cluster.cluster.certificate_authority.0.data)
token = data.aws_eks_cluster_auth.cluster.token
config_path = "./kubeconfig_${var.cluster_name}"
insecure = true
}
eks-cluster.tf:
data "aws_eks_cluster" "cluster" {
name = module.eks.cluster_id
}
data "aws_eks_cluster_auth" "cluster" {
name = module.eks.cluster_id
}
module "eks" {
source = "terraform-aws-modules/eks/aws"
version = "14.0.0"
cluster_version = var.cluster_version
cluster_name = var.cluster_name
subnets = module.vpc.private_subnets
cluster_endpoint_private_access = true
cluster_create_timeout = "1h"
vpc_id = module.vpc.vpc_id
worker_groups = [
{
name = "atomstate_worker_group_one"
instance_type = "t2.small"
asg_desired_capacity = 1
additional_security_group_ids = [ aws_security_group.worker_group_one.id ]
}
]
workers_group_defaults = {
root_volume_type = "gp2"
}
wait_for_cluster_interpreter = ["C:\\Program Files\\Git\\bin\\sh.exe", "-c"]
wait_for_cluster_cmd = "until curl -sk $ENDPOINT >/dev/null; do sleep 4; done"
}
As you can see, I had to comment out cluster_ca_certificate
attribute and mention insecure as true.
Steps to reproduce
- Use the versions as highlighted above.
- Create EKS cluster using VPC and EKS terraform modules.
- Make insecure as false and don't comment out
cluster_ca_cert.
terraform apply
.- Get the
x509 certificate error
.
Expected Behavior
Access the cluster securely without x509 certifcation error.
Actual Behavior
Accessing the cluster insecurely with insecure set to true.
References
https://discuss.hashicorp.com/t/x509-certificate-signed-by-unknown-authority/8671