#!/usr/bin/env bash # Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: BUSL-1.1 set -e cat < /tmp/policy.hcl path "kvv2/*" { capabilities = ["read"] } path "kvv1/*" { capabilities = ["read"] } path "pki/*" { capabilities = ["read", "create", "update"] } EOT vault policy write demo /tmp/policy.hcl # setup the necessary auth backend vault auth disable kubernetes vault auth enable kubernetes vault write auth/kubernetes/config \ kubernetes_host=https://kubernetes.default.svc vault write auth/kubernetes/role/demo \ bound_service_account_names=default \ bound_service_account_namespaces=tenant-1,tenant-2 \ policies=demo \ ttl=1h EOF for ns in tenant-{1,2} ; do kubectl delete namespace --wait --timeout=30s "${ns}" &> /dev/null || true kubectl create namespace "${ns}" done