-
Notifications
You must be signed in to change notification settings - Fork 902
Improve Agent Injector Vault Address Environment Variable Options #789
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
In environments where we are utilizing vault as part of this helm-chart but using Istio LoadBalancers, or AWS ELBs forwarding traffic to the Vault server the included agent injector deployment is not able to get the correct VAULT_ADDR with the existing options to set AGENT_INJECT_VAULT_ADDR
To Reproduce
Steps to reproduce the behavior:
- Install chart
- Create secret and serviceAccount and all included options to configure another deployment to utilize a secret from Vault.
- Add kubernetes labels to inject deployment so it can utilize vault secrets
- Pod is never able to communicate with Vault because we use our own cert and (E)LB and VAULT_ADDR is set to
https://vault-vault.vault.svc:8200
Expected behavior
Agent Injector VAULT_ADDR endpoint is configurable
Environment
- Kubernetes version: 1.23.8
- Distribution or cloud vendor (OpenShift, EKS, GKE, AKS, etc.): RKE2
- Other configuration options or runtime services (istio, etc.): istio 1.14.2
- vault-helm version: 0.21.0
Chart values:
global:
tlsDisable: false
server:
extraEnvironmentVars:
VAULT_SKIP_VERIFY: "true"
VAULT_LOG_FORMAT: "json"
ha:
enabled: true
replicas: 3
apiAddr: "https://vault.example.com"
raft:
enabled: true
setNodeId: true
config: |
ui = true
seal "awskms" {
region = "us-gov-west-1"
kms_key_id = "XXXXXXXXXXXX"
endpoint = "https://kms.us-gov-west-1.amazonaws.com"
}
listener "tcp" {
tls_disable = false
address = "[::]:8200"
cluster_address = "[::]:8201"
tls_cert_file = "/vault/tls/tls.crt"
tls_key_file = "/vault/tls/tls.key"
telemetry {
unauthenticated_metrics_access = true
}
}
storage "raft" {
path = "/vault/data"
retry_join {
leader_api_addr = "https://vault-vault-0.vault-vault-internal:8200"
leader_client_cert_file = "/vault/tls/tls.crt"
leader_client_key_file = "/vault/tls/tls.key"
leader_tls_servername = "example.com"
}
retry_join {
leader_api_addr = "https://vault-vault-1.vault-vault-internal:8200"
leader_client_cert_file = "/vault/tls/tls.crt"
leader_client_key_file = "/vault/tls/tls.key"
leader_tls_servername = "vault.example.com"
}
retry_join {
leader_api_addr = "https://vault-vault-2.vault-vault-internal:8200"
leader_client_cert_file = "/vault/tls/tls.crt"
leader_client_key_file = "/vault/tls/tls.key"
leader_tls_servername = "vault.example.com"
}
}
telemetry {
prometheus_retention_time = "24h"
disable_hostname = true
}
service_registration "kubernetes"
volumes:
- name: tls
secret:
secretName: vault-tls
volumeMounts:
- name: tls
mountPath: "/vault/tls"
readOnly: true
dataStorage:
enabled: true
size: 50Gi
mountPath: "/vault/data"
accessMode: ReadWriteOnceAdditional context
Add any other context about the problem here.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working