mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-02 11:38:02 +00:00
Create OpenApi spec w/ dynamically generated plugins (#14311)
Editing script to dynamically scrape plugins from "registry.go"
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -9,6 +9,9 @@ set -e
|
|||||||
# 1. Vault has been checked out at an appropriate version and built
|
# 1. Vault has been checked out at an appropriate version and built
|
||||||
# 2. vault executable is in your path
|
# 2. vault executable is in your path
|
||||||
# 3. Vault isn't already running
|
# 3. Vault isn't already running
|
||||||
|
# 4. jq is installed
|
||||||
|
|
||||||
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||||
|
|
||||||
echo "Starting Vault..."
|
echo "Starting Vault..."
|
||||||
if pgrep -x "vault" > /dev/null
|
if pgrep -x "vault" > /dev/null
|
||||||
@@ -23,58 +26,55 @@ VAULT_PID=$!
|
|||||||
|
|
||||||
echo "Mounting all builtin backends..."
|
echo "Mounting all builtin backends..."
|
||||||
|
|
||||||
# auth backends
|
# Read auth backends
|
||||||
vault auth enable alicloud
|
codeLinesStarted=false
|
||||||
vault auth enable app-id
|
inQuotesRegex='".*"'
|
||||||
vault auth enable approle
|
while read line; do
|
||||||
vault auth enable aws
|
if [[ $line == *"credentialBackends:"* ]] ; then
|
||||||
vault auth enable azure
|
codeLinesStarted=true
|
||||||
vault auth enable centrify
|
elif [ $codeLinesStarted = true ] && [[ $line = *"}"* ]] ; then
|
||||||
vault auth enable cert
|
break
|
||||||
vault auth enable cf
|
elif [ $codeLinesStarted = true ] && [[ $line =~ $inQuotesRegex ]] && [[ $line != *"Deprecated"* ]] ; then
|
||||||
vault auth enable gcp
|
backend=${BASH_REMATCH[0]}
|
||||||
vault auth enable github
|
plugin=$(sed -e 's/^"//' -e 's/"$//' <<<"$backend")
|
||||||
vault auth enable jwt
|
vault auth enable "${plugin}"
|
||||||
vault auth enable kerberos
|
fi
|
||||||
vault auth enable kubernetes
|
done <../../vault/helper/builtinplugins/registry.go
|
||||||
vault auth enable ldap
|
|
||||||
vault auth enable oci
|
# Read secrets backends
|
||||||
vault auth enable oidc
|
codeLinesStarted=false
|
||||||
vault auth enable okta
|
while read line; do
|
||||||
vault auth enable radius
|
if [[ $line == *"logicalBackends:"* ]] ; then
|
||||||
vault auth enable userpass
|
codeLinesStarted=true
|
||||||
|
elif [ $codeLinesStarted = true ] && [[ $line = *"}"* ]] ; then
|
||||||
|
break
|
||||||
|
elif [ $codeLinesStarted = true ] && [[ $line =~ $inQuotesRegex ]] && [[ $line != *"Deprecated"* ]] ; then
|
||||||
|
backend=${BASH_REMATCH[0]}
|
||||||
|
plugin=$(sed -e 's/^"//' -e 's/"$//' <<<"$backend")
|
||||||
|
vault secrets enable "${plugin}"
|
||||||
|
fi
|
||||||
|
done <../../vault/helper/builtinplugins/registry.go
|
||||||
|
|
||||||
# secrets backends
|
|
||||||
vault secrets enable ad
|
|
||||||
vault secrets enable alicloud
|
|
||||||
vault secrets enable aws
|
|
||||||
vault secrets enable azure
|
|
||||||
vault secrets enable cassandra
|
|
||||||
vault secrets enable consul
|
|
||||||
vault secrets enable database
|
|
||||||
vault secrets enable gcp
|
|
||||||
vault secrets enable gcpkms
|
|
||||||
vault secrets enable kv
|
|
||||||
vault secrets enable mongodb
|
|
||||||
vault secrets enable mongodbatlas
|
|
||||||
vault secrets enable mssql
|
|
||||||
vault secrets enable mysql
|
|
||||||
vault secrets enable nomad
|
|
||||||
vault secrets enable openldap
|
|
||||||
vault secrets enable pki
|
|
||||||
vault secrets enable postgresql
|
|
||||||
vault secrets enable rabbitmq
|
|
||||||
vault secrets enable ssh
|
|
||||||
vault secrets enable terraform
|
|
||||||
vault secrets enable totp
|
|
||||||
vault secrets enable transit
|
|
||||||
|
|
||||||
# Enable enterprise features
|
# Enable enterprise features
|
||||||
if [[ ! -z "$VAULT_LICENSE" ]]
|
entRegFile=../../vault/helper/builtinplugins/registry_util_ent.go
|
||||||
then
|
if [ -f $entRegFile ] && [[ ! -z "$VAULT_LICENSE" ]]; then
|
||||||
vault write sys/license text="$VAULT_LICENSE"
|
vault write sys/license text="$VAULT_LICENSE"
|
||||||
vault secrets enable kmip
|
|
||||||
vault secrets enable transform
|
inQuotesRegex='".*"'
|
||||||
|
codeLinesStarted=false
|
||||||
|
while read line; do
|
||||||
|
if [[ $line == *"ExternalPluginsEnt"* ]] ; then
|
||||||
|
codeLinesStarted=true
|
||||||
|
elif [ $codeLinesStarted = true ] && [[ $line = *"}"* ]] ; then
|
||||||
|
break
|
||||||
|
elif [ $codeLinesStarted = true ] && [[ $line =~ $inQuotesRegex ]] && [[ $line != *"Deprecated"* ]] ; then
|
||||||
|
backend=${BASH_REMATCH[0]}
|
||||||
|
plugin=$(sed -e 's/^"//' -e 's/"$//' <<<"$backend")
|
||||||
|
vault secrets enable "${plugin}"
|
||||||
|
fi
|
||||||
|
done <$entRegFile
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Output OpenAPI, optionally formatted
|
# Output OpenAPI, optionally formatted
|
||||||
@@ -87,4 +87,4 @@ fi
|
|||||||
kill $VAULT_PID
|
kill $VAULT_PID
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
echo "\nopenapi.json generated."
|
printf "\nopenapi.json generated."
|
||||||
|
|||||||
Reference in New Issue
Block a user