in main.go [564:601]
func bootstrapRun(cmd *cobra.Command, args []string) error {
ctx, client, err := clientWithContext(cmd.Context())
if err != nil {
return misuseError(err)
}
if err := client.Bootstrap(ctx, &berglas.BootstrapRequest{
ProjectID: projectID,
Bucket: bucket,
BucketLocation: bucketLocation,
KMSLocation: kmsLocation,
KMSKeyRing: kmsKeyRing,
KMSCryptoKey: kmsCryptoKey,
}); err != nil {
return apiError(err)
}
kmsKeyID := fmt.Sprintf("projects/%s/locations/%s/keyRings/%s/cryptoKeys/%s",
projectID, kmsLocation, kmsKeyRing, kmsCryptoKey)
fmt.Fprintf(stdout, "Successfully created berglas environment:\n")
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, " Bucket: %s\n", bucket)
fmt.Fprintf(stdout, " KMS key: %s\n", kmsKeyID)
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, "To create a secret:\n")
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, " berglas create %s/my-secret abcd1234 \\\n", bucket)
fmt.Fprintf(stdout, " --key %s\n", kmsKeyID)
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, "To grant access to that secret:\n")
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, " berglas grant %s/my-secret \\\n", bucket)
fmt.Fprintf(stdout, " --member user:jane.doe@mycompany.com\n")
fmt.Fprintf(stdout, "\n")
fmt.Fprintf(stdout, "For more help and examples, please run \"berglas -h\".\n")
return nil
}