Skip to content

Commit bb6f979

Browse files
committed
Use new Kustomize API
1 parent a2872fc commit bb6f979

File tree

4 files changed

+409
-68
lines changed

4 files changed

+409
-68
lines changed

Dockerfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
FROM golang:1.12-stretch
1+
FROM golang:1.15-buster
22

33
RUN apt-get update && apt-get install -y \
44
curl \
55
gettext \
66
g++ \
7-
git
7+
git
88

99
WORKDIR /code
1010

11-
RUN GO111MODULE=on go get sigs.k8s.io/kustomize/kustomize/v3@v3.2.1
11+
RUN GO111MODULE=on go get sigs.k8s.io/kustomize/kustomize/v3@v3.8.7
1212

1313
COPY go.mod go.sum ./
1414
RUN go mod download
1515

1616
COPY ./SecretsFromVault.go ./
1717

18-
RUN go build -buildmode plugin -o /opt/kustomize/plugin/kvSources/SecretsFromVault.so ./SecretsFromVault.go
18+
RUN go build -buildmode plugin -o /opt/kustomize/plugin/kvSources/SecretsFromVault.so ./SecretsFromVault.go
1919

20-
FROM debian:stretch-slim
20+
FROM debian:buster-slim
2121

2222
RUN apt-get update && apt-get install -y \
2323
git
2424

2525
COPY --from=0 /opt/kustomize/plugin/kvSources/SecretsFromVault.so /opt/kustomize/plugin/kustomize.config.realgeeks.com/v1beta1/secretsfromvault/SecretsFromVault.so
2626
COPY --from=0 /go/bin/kustomize /usr/bin/kustomize
2727

28-
WORKDIR /working
28+
WORKDIR /working
2929

3030
ENV XDG_CONFIG_HOME=/opt
3131

SecretsFromVault.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88
"strings"
99

1010
"github.com/hashicorp/vault/api"
11-
"sigs.k8s.io/kustomize/v3/pkg/ifc"
12-
"sigs.k8s.io/kustomize/v3/pkg/resmap"
13-
"sigs.k8s.io/kustomize/v3/pkg/types"
11+
"sigs.k8s.io/kustomize/api/kv"
12+
"sigs.k8s.io/kustomize/api/resmap"
13+
"sigs.k8s.io/kustomize/api/types"
1414
"sigs.k8s.io/yaml"
1515
)
1616

@@ -21,23 +21,23 @@ type vaultSecret struct {
2121
}
2222

2323
type secretSpec struct {
24-
Secrets []vaultSecret `json:"secrets,omitempty" yaml:"secrets,omitempty"`
25-
Options *types.GeneratorOptions `json:"options,omitempty" yaml:"options,omitempty"`
24+
Secrets []vaultSecret `json:"secrets,omitempty" yaml:"secrets,omitempty"`
25+
Options *types.GeneratorOptions `json:"options,omitempty" yaml:"options,omitempty"`
26+
Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"`
2627
}
2728

2829
type plugin struct {
29-
rf *resmap.Factory
30-
ldr ifc.Loader
31-
Spec secretSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
30+
h *resmap.PluginHelpers
3231
types.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
32+
Spec secretSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
3333
VaultClient *api.Client
3434
}
3535

3636
//nolint: golint
3737
//noinspection GoUnusedGlobalVariable
3838
var KustomizePlugin plugin
3939

40-
func (p *plugin) Config(ldr ifc.Loader, rf *resmap.Factory, c []byte) error {
40+
func (p *plugin) Config(h *resmap.PluginHelpers, c []byte) error {
4141
vaultAddr, ok := os.LookupEnv("VAULT_ADDR")
4242
if !ok {
4343
return errors.New("missing `VAULT_ADDR` env var: required")
@@ -59,9 +59,8 @@ func (p *plugin) Config(ldr ifc.Loader, rf *resmap.Factory, c []byte) error {
5959

6060
client.SetToken(vaultToken)
6161

62-
p.rf = rf
63-
p.ldr = ldr
6462
p.VaultClient = client
63+
p.h = h
6564

6665
return yaml.Unmarshal(c, p)
6766
}
@@ -70,6 +69,8 @@ func (p *plugin) Generate() (resmap.ResMap, error) {
7069
args := types.SecretArgs{}
7170
args.Name = p.Name
7271
args.Namespace = p.Namespace
72+
args.Behavior = p.Spec.Behavior
73+
args.Options = p.Spec.Options
7374

7475
for _, secret := range p.Spec.Secrets {
7576
value, err := p.getSecretFromVault(secret.Path, secret.Key)
@@ -88,7 +89,9 @@ func (p *plugin) Generate() (resmap.ResMap, error) {
8889
args.LiteralSources = append(args.LiteralSources, entry)
8990
}
9091

91-
return p.rf.FromSecretArgs(p.ldr, p.Spec.Options, args)
92+
rf := p.h.ResmapFactory()
93+
94+
return rf.FromSecretArgs(kv.NewLoader(p.h.Loader(), p.h.Validator()), args)
9295
}
9396

9497
func getVaultToken() (string, error) {

go.mod

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
module github.com/RealGeeks/kustomize-kvsource-vault
22

3-
go 1.12
3+
go 1.15
44

55
require (
6-
github.com/hashicorp/vault/api v1.0.5-0.20190909210825-c14bd9a2b1d2
7-
github.com/spf13/pflag v1.0.5 // indirect
8-
sigs.k8s.io/kustomize/v3 v3.2.0
9-
sigs.k8s.io/yaml v1.1.0
6+
github.com/hashicorp/vault/api v1.0.4
7+
sigs.k8s.io/kustomize/api v0.6.5
8+
sigs.k8s.io/yaml v1.2.0
109
)

0 commit comments

Comments
 (0)