Sidecar injector
Description:
Prerequisites:
Configuration steps:
Last updated
Last updated
cat <<EOF | kubectl create -f -
---
apiVersion: v1
kind: Namespace
metadata:
name: app
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: new-internal-app
namespace: app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: orgchart
namespace: app
labels:
app: orgchart
spec:
selector:
matchLabels:
app: orgchart
replicas: 1
template:
metadata:
annotations:
vault.hashicorp.com/agent-inject: 'true'
vault.hashicorp.com/agent-inject-status: 'update'
vault.hashicorp.com/role: 'new-internal-app'
vault.hashicorp.com/auth-path: "auth/cluster-name"
vault.hashicorp.com/agent-inject-secret-database-config.txt: 'internal/data/database/config'
vault.hashicorp.com/tls-skip-verify: 'true'
vault.hashicorp.com/service: "https://vault.tech.altenar.net:8200"
vault.hashicorp.com/agent-inject-template-database-config.txt: |
{{- with secret "internal/data/database/config" -}}
postgresql://{{ .Data.data.username }}:{{ .Data.data.password }}@postgres:5432/wizard
{{- end -}}
labels:
app: orgchart
spec:
serviceAccountName: new-internal-app
containers:
- name: orgchart
image: jweissig/app:0.0.1
EOFhelm install vault hashicorp/vault \
--set "injector.externalVaultAddr=https://vault.tech.altenar.net:8200"kubectl -n vault exec -it vault-0 -- /bin/sh
export VAULT_TOKEN=**********************
vault auth enable --path="cluster-name" kubernetes$ TOKEN_REVIEW_JWT=$(kubectl get secret $VAULT_HELM_SECRET_NAME --output='go-template={{ .data.token }}' | base64 --decode)kubectl -n vault exec -it vault-0 -- /bin/sh
export VAULT_TOKEN=**********************
vault write auth/cluster-name/config \
token_reviewer_jwt="$TOKEN_REVIEW_JWT" \
kubernetes_host="$KUBE_HOST" \
kubernetes_ca_cert="$KUBE_CA_CERT" \vault write auth/kubernetes/role/new-internal-app \
bound_service_account_names=new-internal-app \
bound_service_account_namespaces=app \
policies=internal-app \
ttl=96hkubectl exec \
$(kubectl get pod -l app=website -o jsonpath="{.items[0].metadata.name}") \
--container website -- cat /vault/secrets/database-config.txt; echo
postgresql://db-readonly-user:db-secret-password@postgres:5432/wizard