Make plugin dir match Go conventions.

This commit is contained in:
jregan
2019-04-23 23:16:23 -07:00
parent 0ac48f60a5
commit cfb0c5efad
16 changed files with 29 additions and 12 deletions

View File

@@ -0,0 +1,60 @@
// +build plugin
package main
import (
"bytes"
"text/template"
"sigs.k8s.io/kustomize/k8sdeps/kunstruct"
"sigs.k8s.io/kustomize/pkg/ifc"
"sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
)
type plugin struct {
ServiceName string
Port string
}
var KustomizePlugin plugin
var manifest = `
apiVersion: v1
kind: Service
metadata:
labels:
app: dev
name: {{.ServiceName}}
spec:
ports:
- port: {{.Port}}
selector:
app: dev
`
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, k ifc.Kunstructured) error {
var err error
p.ServiceName, err = k.GetFieldValue("service")
if err != nil {
return err
}
p.Port, err = k.GetFieldValue("port")
if err != nil {
return err
}
return nil
}
func (p *plugin) Generate() (resmap.ResMap, error) {
var buf bytes.Buffer
temp := template.Must(template.New("manifest").Parse(manifest))
err := temp.Execute(&buf, p)
if err != nil {
return nil, err
}
rf := resmap.NewFactory(resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
return rf.NewResMapFromBytes(buf.Bytes())
}