Skip to content

Commit 24f60b5

Browse files
squaremostefanprodan
authored andcommitted
Remove dependence on kustomize/setters2
The package setters2 has been removed from kustomize: kubernetes-sigs/kustomize#5291 This commit removes the need to import setters2, by reproducing the last link with that code, which is a minor parsing helper. I have not changed the comment explaining what was changed from the original, since it's still accurate. The parsing func is a buried detail. Signed-off-by: Michael Bridgen <[email protected]>
1 parent 06a0e02 commit 24f60b5

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

pkg/update/filter.go

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ limitations under the License.
1717
package update
1818

1919
import (
20+
"encoding/json"
21+
2022
"github.com/go-logr/logr"
2123
"k8s.io/kube-openapi/pkg/validation/spec"
2224
"sigs.k8s.io/kustomize/kyaml/fieldmeta"
2325
"sigs.k8s.io/kustomize/kyaml/openapi"
24-
"sigs.k8s.io/kustomize/kyaml/setters2"
2526
"sigs.k8s.io/kustomize/kyaml/yaml"
2627
)
2728

@@ -112,8 +113,17 @@ func accept(v visitor, object *yaml.RNode, p string, settersSchema *spec.Schema)
112113
return nil
113114
}
114115

116+
type setter struct {
117+
Name string `json:"name"`
118+
Value string `json:"value"`
119+
}
120+
121+
type extension struct {
122+
Setter *setter `json:"setter,omitempty"`
123+
}
124+
115125
// set applies the value from ext to field
116-
func (s *SetAllCallback) set(field *yaml.RNode, ext *setters2.CliExtension, sch *spec.Schema) (bool, error) {
126+
func (s *SetAllCallback) set(field *yaml.RNode, ext *extension, sch *spec.Schema) (bool, error) {
117127
// check full setter
118128
if ext.Setter == nil {
119129
return false, nil
@@ -139,7 +149,7 @@ func (s *SetAllCallback) visitScalar(object *yaml.RNode, p string, fieldSchema *
139149
return nil
140150
}
141151
// get the openAPI for this field describing how to apply the setter
142-
ext, err := setters2.GetExtFromSchema(fieldSchema.Schema)
152+
ext, err := getExtFromSchema(fieldSchema.Schema)
143153
if err != nil {
144154
return err
145155
}
@@ -152,3 +162,19 @@ func (s *SetAllCallback) visitScalar(object *yaml.RNode, p string, fieldSchema *
152162
_, err = s.set(object, ext, fieldSchema.Schema)
153163
return err
154164
}
165+
166+
func getExtFromSchema(schema *spec.Schema) (*extension, error) {
167+
cep := schema.VendorExtensible.Extensions[K8sCliExtensionKey]
168+
if cep == nil {
169+
return nil, nil
170+
}
171+
b, err := json.Marshal(cep)
172+
if err != nil {
173+
return nil, err
174+
}
175+
val := &extension{}
176+
if err := json.Unmarshal(b, val); err != nil {
177+
return nil, err
178+
}
179+
return val, nil
180+
}

pkg/update/setters.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@ import (
2929
"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
3030
"sigs.k8s.io/kustomize/kyaml/openapi"
3131
"sigs.k8s.io/kustomize/kyaml/sets"
32-
"sigs.k8s.io/kustomize/kyaml/setters2"
3332
"sigs.k8s.io/kustomize/kyaml/yaml"
3433

3534
imagev1_reflect "github.com/fluxcd/image-reflector-controller/api/v1beta2"
3635
)
3736

3837
const (
38+
// This is preserved from setters2
39+
K8sCliExtensionKey = "x-k8s-cli"
40+
3941
// SetterShortHand is a shorthand that can be used to mark
4042
// setters; instead of
4143
// # { "$ref": "#/definitions/
@@ -256,7 +258,7 @@ func setAll(schema *spec.Schema, tracelog logr.Logger, callback func(file, sette
256258
func setterSchema(name, value string) spec.Schema {
257259
schema := spec.StringProperty()
258260
schema.Extensions = map[string]interface{}{}
259-
schema.Extensions.Add(setters2.K8sCliExtensionKey, map[string]interface{}{
261+
schema.Extensions.Add(K8sCliExtensionKey, map[string]interface{}{
260262
"setter": map[string]string{
261263
"name": name,
262264
"value": value,

0 commit comments

Comments
 (0)