-
Notifications
You must be signed in to change notification settings - Fork 83
/
main.go
38 lines (32 loc) · 1.01 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main
import (
"context"
"os"
"time"
"github.com/Azure/azure-sdk-for-go/services/keyvault/v7.0/keyvault"
"github.com/Azure/go-autorest/autorest"
"k8s.io/klog/v2"
)
func main() {
keyvaultURL := os.Getenv("KEYVAULT_URL")
if keyvaultURL == "" {
klog.Fatal("KEYVAULT_URL environment variable is not set")
}
secretName := os.Getenv("SECRET_NAME")
if secretName == "" {
klog.Fatal("SECRET_NAME environment variable is not set")
}
// initialize keyvault client with custom authorizer
kvClient := keyvault.New()
kvClient.Authorizer = autorest.NewBearerAuthorizerCallback(nil, clientAssertionBearerAuthorizerCallback)
for {
secretBundle, err := kvClient.GetSecret(context.Background(), keyvaultURL, secretName, "")
if err != nil {
klog.ErrorS(err, "failed to get secret from keyvault", "keyvault", keyvaultURL, "secretName", secretName)
os.Exit(1)
}
klog.InfoS("successfully got secret", "secret", *secretBundle.Value)
// wait for 60 seconds before polling again
time.Sleep(60 * time.Second)
}
}