Skip to content

Instantly share code, notes, and snippets.

@socketbox
Last active February 27, 2021 06:30
Show Gist options
  • Save socketbox/7cf5da2b9543fd810a750a57b94115ef to your computer and use it in GitHub Desktop.
Save socketbox/7cf5da2b9543fd810a750a57b94115ef to your computer and use it in GitHub Desktop.
Script to automate importing of existing secrets in a GCP project
#!/bin/bash
set -euo pipefail
filename='secmgr.tf'
proj_id=$1
sec_list=$(gcloud secrets list --format="table[no-heading](name.basename())")
for s in ${sec_list[*]};
do
#needs bash>=4.0
slc="${s,,}"
#write skeleton resources to file such that state can be imported from remote environment
sec_res_string="resource \"google_secret_manager_secret\" \"${slc}\" { }"
echo $sec_res_string >> ${filename}
sec_ver_res_string="resource \"google_secret_manager_secret_version\" \"${slc}-latest\" { }"
echo $sec_ver_res_string >> ${filename}
done
for s in ${sec_list[*]};
do
#needs bash>=4.0
slc="${s,,}"
#do import using resource declaration we just wrote
terraform import google_secret_manager_secret.${slc} projects/${proj_id}/secrets/${s}
terraform import google_secret_manager_secret_version.${slc}-latest projects/${proj_id}/secrets/${s}/versions/latest
done
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment