Hi there Everyone,
I’m attempting to setup boundary in an AKS Cluster in Azure. The controller starts up fine. When the worker starts and attempts to communicate with the controller, I can see this error:
tls: first record does not look like a TLS handshake
I’ve attempted to set tls_disable = true
on all the listeners, so I’m not sue why there’s still TLS communication being attempted. Here are my configs:
Controller Config:
# --------------------------------------------------------
# Azure Creds will be passed via environment variables:
# --------------------------------------------------------
#
# AZURE_TENANT_ID: Azure Tenant ID
# AZURE_CLIENT_ID: Azure App ID
# AZURE_CLIENT_SECRET: Azure App Password
# AZUREKEYVAULT_WRAPPER_VAULT_NAME: Key Vault Name
# BOUNDARY_POSTGRES_URL: Postgres connection string
disable_mlock = true
log_level = "trace"
controller {
name = "env://HOSTNAME"
description = "A controller for a demo!"
database {
url = "env://BOUNDARY_POSTGRES_URL"
}
public_cluster_addr = "#POD_IP#:9200"
}
# API config
listener "tcp" {
purpose = "api"
tls_disable = true
cors_enabled = true
cors_allowed_origins = ["*"]
address = "#POD_IP#"
}
# Cluster config
listener "tcp" {
purpose = "cluster"
tls_disable = true
address = "#POD_IP#"
}
# Root KMS configuration block: this is the root key for Boundary
# Using Azure Key Vault
kms "azurekeyvault" {
purpose = "root"
key_name = "root"
}
# Worker authorization KMS
# Using Azure Key Vault
kms "azurekeyvault" {
purpose = "worker-auth"
key_name = "worker"
}
# Recovery KMS block: configures the recovery key for Boundary
# Using Azure Key Vault
kms "azurekeyvault" {
purpose = "recovery"
key_name = "recovery"
}
Here’s my worker config:
# --------------------------------------------------------
# Azure Creds will be passed via environment variables:
# --------------------------------------------------------
#
# AZURE_TENANT_ID: Azure Tenant ID
# AZURE_CLIENT_ID: Azure App ID
# AZURE_CLIENT_SECRET: Azure App Password
# AZUREKEYVAULT_WRAPPER_VAULT_NAME: Key Vault Name
# BOUNDARY_POSTGRES_URL: Postgres connection string
listener "tcp" {
address = "#POD_IP#:9200"
purpose = "proxy"
tls_disable = true
}
worker {
# Name attr must be unique
public_addr = "env://BOUNDARY_PUBLIC_ADDR"
name = "env://HOSTNAME"
description = "A default worker created for demonstration"
controllers = ["boundary-controller.acme.internal:9201"] # private dns
}
# Worker authorization KMS
# Using Azure Key Vault
kms "azurekeyvault" {
purpose = "worker-auth"
key_name = "worker"
}
Finally, here’s the complete error in the worker:
{
"id": "B90goaJhT4",
"source": "https://hashicorp.com/boundary/boundary-worker-dbf9d7547-m7x2l",
"specversion": "1.0",
"type": "error",
"data": {
"error": "rpc error: code = Unavailable desc = last connection error: connection error: desc = \"transport: Error while dialing unable to write connection nonce: tls: first record does not look like a TLS handshake\"",
"error_fields": {},
"id": "e_3VG55uvUQo",
"version": "v0.1",
"op": "worker.(Worker).sendWorkerStatus",
"info": {
"msg": "error making status request to controller"
}
},
"datacontentype": "application/cloudevents",
"time": "2022-05-26T14:21:46.308688227Z"
}
Any help would be appreciated. Thank you as always.