/
main.go
59 lines (45 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package main
import (
"context"
"flag"
stdlog "log"
"os"
ctrl "sigs.k8s.io/controller-runtime"
"github.com/kiwicom/k8s-vault-operator/pkg/vault"
)
var (
path = flag.String("path", "", "path to VaultSecret k8s manifest")
output = flag.String("o", "env", "output format: env/json/yaml")
)
func main() {
flag.Parse()
token := os.Getenv("VAULT_TOKEN")
ctx := context.Background()
appConfig, err := vault.NewAppConfig()
if err != nil {
stdlog.Fatal(err)
}
if len(token) == 0 {
stdlog.Fatal("VAULT_TOKEN env variable must be set")
}
if len(*path) == 0 {
stdlog.Fatal("path flag must be set")
}
secret, err := readYaml(*path)
if err != nil {
stdlog.Fatal(err)
}
authConfig := vault.NewAuthToken(token)
vaultReader, err := vault.NewReader(authConfig, secret, ctrl.LoggerFrom(ctx), &appConfig)
if err != nil {
stdlog.Fatal(err)
}
err = vaultReader.ReadData()
if err != nil {
stdlog.Fatal(err)
}
err = vaultReader.WriteData(os.Stdout, *output)
if err != nil {
stdlog.Fatal(err)
}
}