How to use namespaces in KV V2?

Hi.

As there is no example how to use namespaces with KV v2 please can anyone help me to get the a data from a Vault namespace.

I have tried this calls but none of them works.

curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) -H 'X-Vault-Namespace: ${NAMESPACE}' https://${VAULT_DOMAIN}/v1/OCP/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) -H 'X-Vault-Namespace: ${NAMESPACE}' https://${VAULT_DOMAIN}/v1/OCP/data/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) -H 'X-Vault-Namespace: ${NAMESPACE}' https://${VAULT_DOMAIN}/v1/OCP/${PATH}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/${NAMESPACE}/OCP/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/${NAMESPACE}/OCP/${PATH}/data/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/${NAMESPACE}/data/OCP/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/${NAMESPACE}/OCP/data/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/${NAMESPACE}/OCP/${PATH}/api-token
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/secret/data/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/data/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/data/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/data/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/secrets/data/OCP/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/secrets/OCP/data/${PATH}/api-token?namespace=${NAMESPACE}
curl -vH 'X-Vault-Token: '$(echo $VAULT_TOKEN) https://${VAULT_DOMAIN}/v1/OCP/data/${PATH}/api-token?namespace=${NAMESPACE}

Usage for namespaces is here:

Namespaces are an enterprise feature. Are you using an +ent version?

yes. Do this fact change anything to the answer possibility?

The solution was this line.

curl -s -H "X-Vault-Token: $(< ~/.vault-token)" https://${VAULT_DOMAIN}/v1/OCP/data/${PATH} -H "X-Vault-Namespace: ${NAMESPACE}"|jq '.data.data."pull-secret"'

“OCP” is the secret
“PATH” is a sub-folder in a sub-folder.

vendor/product

the whole value path looks like this.

OCP/vendor/product/api-token

which is as URL this

OCP/data/vendor/product/pull-secret
1 Like