Create OpenApi spec w/ dynamically generated plugins (#14311)

Editing script to dynamically scrape plugins from "registry.go"
This commit is contained in:
AnPucel
2022-03-23 09:45:39 -07:00
committed by GitHub
parent 8d60a0f6bb
commit 8b8b1333ff

View File

@@ -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."