Move hashing transformer out of k8sdeps.

This commit is contained in:
Jeffrey Regan
2019-05-29 10:01:52 -07:00
parent 4812ddff9f
commit fd2248e7c2
14 changed files with 205 additions and 201 deletions

View File

@@ -58,6 +58,7 @@ type Kunstructured interface {
type KunstructuredFactory interface {
SliceFromBytes([]byte) ([]Kunstructured, error)
FromMap(m map[string]interface{}) Kunstructured
Hasher() KunstructuredHasher
MakeConfigMap(
ldr Loader,
options *types.GeneratorOptions,
@@ -68,5 +69,11 @@ type KunstructuredFactory interface {
args *types.SecretArgs) (Kunstructured, error)
}
// KunstructuredHasher returns a hash of the argument
// or an error.
type KunstructuredHasher interface {
Hash(Kunstructured) (string, error)
}
// See core.v1.SecretTypeOpaque
const SecretTypeOpaque = "Opaque"

View File

@@ -14,7 +14,6 @@ import (
// Factory makes transformers
type Factory interface {
MakePatchTransformer(slice []*resource.Resource, rf *resource.Factory) (transformers.Transformer, error)
MakeHashTransformer() transformers.Transformer
MakeInventoryTransformer(
p *types.Inventory,
ldr ifc.Loader,

View File

@@ -37,6 +37,10 @@ func NewFactory(kf ifc.KunstructuredFactory) *Factory {
return &Factory{kf: kf}
}
func (rf *Factory) Hasher() ifc.KunstructuredHasher {
return rf.kf.Hasher()
}
// FromMap returns a new instance of Resource.
func (rf *Factory) FromMap(m map[string]interface{}) *Resource {
return &Resource{

View File

@@ -21,6 +21,7 @@ import (
"sigs.k8s.io/kustomize/pkg/transformers"
"sigs.k8s.io/kustomize/pkg/transformers/config"
"sigs.k8s.io/kustomize/pkg/types"
"sigs.k8s.io/kustomize/plugin/builtin"
"sigs.k8s.io/yaml"
)
@@ -126,10 +127,18 @@ func (kt *KustTarget) makeCustomizedResMap(
if err != nil {
return nil, err
}
err = ra.Transform(kt.tFactory.MakeHashTransformer())
// This must be done last, and not as part of
// the recursion implicit in AccumulateTarget.
p := builtin.NewHashTransformerPlugin()
err = kt.configureBuiltinPlugin(p, nil, "hash")
if err != nil {
return nil, err
}
err = ra.Transform(p)
if err != nil {
return nil, err
}
// Given that names have changed (prefixs/suffixes added),
// fix all the back references to those names.
err = ra.FixBackReferences()

View File

@@ -234,10 +234,14 @@ func (kt *KustTarget) configureBuiltinImageTagTransformer(
}
func (kt *KustTarget) configureBuiltinPlugin(
p plugins.Configurable, c interface{}, id string) error {
y, err := yaml.Marshal(c)
if err != nil {
return errors.Wrapf(err, "builtin %s marshal", id)
p plugins.Configurable, c interface{}, id string) (err error) {
var y []byte
if c != nil {
y, err = yaml.Marshal(c)
if err != nil {
return errors.Wrapf(
err, "builtin %s marshal", id)
}
}
err = p.Config(kt.ldr, kt.rFactory, y)
if err != nil {