mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 09:02:53 +00:00
Delete v1 setters code
This commit is contained in:
@@ -17,8 +17,6 @@ import (
|
||||
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
|
||||
"sigs.k8s.io/kustomize/cmd/config/runner"
|
||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
|
||||
)
|
||||
|
||||
@@ -34,34 +32,23 @@ func NewCreateSetterRunner(parent string) *CreateSetterRunner {
|
||||
PreRunE: r.preRunE,
|
||||
RunE: r.runE,
|
||||
}
|
||||
set.Flags().StringVar(&r.Set.SetPartialField.Setter.Value, "value", "",
|
||||
set.Flags().StringVar(&r.FieldValue, "value", "",
|
||||
"optional flag, alternative to specifying the value as an argument. e.g. used to specify values that start with '-'")
|
||||
set.Flags().StringVar(&r.Set.SetPartialField.SetBy, "set-by", "",
|
||||
set.Flags().StringVar(&r.SetBy, "set-by", "",
|
||||
"record who the field was default by.")
|
||||
set.Flags().StringVar(&r.Set.SetPartialField.Description, "description", "",
|
||||
set.Flags().StringVar(&r.Description, "description", "",
|
||||
"record a description for the current setter value.")
|
||||
set.Flags().StringVar(&r.Set.SetPartialField.Field, "field", "",
|
||||
set.Flags().StringVar(&r.FieldName, "field", "",
|
||||
"name of the field to set, a suffix of the path to the field, or the full"+
|
||||
" path to the field. Default is to match all fields.")
|
||||
set.Flags().StringVar(&r.Set.ResourceMeta.Name, "name", "",
|
||||
"name of the Resource on which to create the setter.")
|
||||
set.Flags().MarkHidden("name")
|
||||
set.Flags().StringVar(&r.Set.ResourceMeta.Kind, "kind", "",
|
||||
"kind of the Resource on which to create the setter.")
|
||||
set.Flags().MarkHidden("kind")
|
||||
set.Flags().StringVar(&r.Set.SetPartialField.Type, "type", "",
|
||||
set.Flags().StringVar(&r.Type, "type", "",
|
||||
"OpenAPI field type for the setter -- e.g. integer,boolean,string.")
|
||||
set.Flags().BoolVar(&r.Set.SetPartialField.Partial, "partial", false,
|
||||
"create a partial setter for only part of the field value.")
|
||||
set.Flags().MarkHidden("partial")
|
||||
set.Flags().StringVar(&setterVersion, "version", "",
|
||||
"use this version of the setter format")
|
||||
set.Flags().BoolVar(&r.CreateSetter.Required, "required", false,
|
||||
set.Flags().BoolVar(&r.Required, "required", false,
|
||||
"indicates that this setter must be set by package consumer before live apply/preview")
|
||||
set.Flags().StringVar(&r.SchemaPath, "schema-path", "",
|
||||
`openAPI schema file path for setter constraints -- file content `+
|
||||
`e.g. {"type": "string", "maxLength": 15, "enum": ["allowedValue1", "allowedValue2"]}`)
|
||||
set.Flags().BoolVarP(&r.CreateSetter.RecurseSubPackages, "recurse-subpackages", "R", false,
|
||||
set.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false,
|
||||
"creates setter recursively in all the nested subpackages")
|
||||
set.Flags().MarkHidden("version")
|
||||
runner.FixDocs(parent, set)
|
||||
@@ -75,10 +62,18 @@ func CreateSetterCommand(parent string) *cobra.Command {
|
||||
|
||||
type CreateSetterRunner struct {
|
||||
Command *cobra.Command
|
||||
Set setters.CreateSetter
|
||||
CreateSetter settersutil.SetterCreator
|
||||
OpenAPIFile string
|
||||
SchemaPath string
|
||||
FieldValue string
|
||||
SetBy string
|
||||
Description string
|
||||
SetterName string
|
||||
Type string
|
||||
FieldName string
|
||||
Schema string
|
||||
Required bool
|
||||
RecurseSubPackages bool
|
||||
}
|
||||
|
||||
func (r *CreateSetterRunner) runE(c *cobra.Command, args []string) error {
|
||||
@@ -86,48 +81,29 @@ func (r *CreateSetterRunner) runE(c *cobra.Command, args []string) error {
|
||||
}
|
||||
|
||||
func (r *CreateSetterRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
valueSetFromFlag := c.Flag("value").Changed
|
||||
var err error
|
||||
r.Set.SetPartialField.Setter.Name = args[1]
|
||||
r.CreateSetter.Name = args[1]
|
||||
if valueSetFromFlag {
|
||||
r.CreateSetter.FieldValue = r.Set.SetPartialField.Setter.Value
|
||||
} else if len(args) > 2 {
|
||||
r.Set.SetPartialField.Setter.Value = args[2]
|
||||
r.CreateSetter.FieldValue = args[2]
|
||||
r.SetterName = args[1]
|
||||
if len(args) > 2 {
|
||||
r.FieldValue = args[2]
|
||||
}
|
||||
r.CreateSetter.FieldName, err = c.Flags().GetString("field")
|
||||
r.FieldName, err = c.Flags().GetString("field")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if setterVersion == "" {
|
||||
if len(args) == 2 && r.Set.SetPartialField.Type == "array" && c.Flag("field").Changed {
|
||||
setterVersion = "v2"
|
||||
} else if err := initSetterVersion(c, args); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if r.Set.SetPartialField.Type != "array" && !c.Flag("value").Changed && len(args) < 3 {
|
||||
if r.Type != "array" && !c.Flag("value").Changed && len(args) < 3 {
|
||||
return errors.Errorf("setter name and value must be provided, " +
|
||||
"value can either be an argument or can be passed as a flag --value")
|
||||
}
|
||||
|
||||
if setterVersion == "v2" {
|
||||
r.CreateSetter.Description = r.Set.SetPartialField.Description
|
||||
r.CreateSetter.SetBy = r.Set.SetPartialField.SetBy
|
||||
r.CreateSetter.Type = r.Set.SetPartialField.Type
|
||||
err = r.processSchema()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = r.processSchema()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if r.CreateSetter.Type == "array" {
|
||||
if !c.Flag("field").Changed {
|
||||
return errors.Errorf("field flag must be set for array type setters")
|
||||
}
|
||||
if r.Type == "array" {
|
||||
if !c.Flag("field").Changed {
|
||||
return errors.Errorf("field flag must be set for array type setters")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
@@ -139,7 +115,7 @@ func (r *CreateSetterRunner) processSchema() error {
|
||||
return err
|
||||
}
|
||||
|
||||
flagType := r.CreateSetter.Type
|
||||
flagType := r.Type
|
||||
var schemaType string
|
||||
switch {
|
||||
// json schema allows more than one type to be specified, but openapi
|
||||
@@ -156,13 +132,13 @@ func (r *CreateSetterRunner) processSchema() error {
|
||||
// are both set with different values, we return an error.
|
||||
switch {
|
||||
case flagType == "" && schemaType != "":
|
||||
r.CreateSetter.Type = schemaType
|
||||
r.Type = schemaType
|
||||
case flagType != "" && schemaType == "":
|
||||
sc.Type = []string{flagType}
|
||||
case flagType != "" && schemaType != "":
|
||||
if flagType != schemaType {
|
||||
return errors.Errorf("type provided in type flag (%s) and in schema (%s) doesn't match",
|
||||
r.CreateSetter.Type, sc.Type[0])
|
||||
r.Type, sc.Type[0])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -174,48 +150,36 @@ func (r *CreateSetterRunner) processSchema() error {
|
||||
if err != nil {
|
||||
return errors.Errorf("error marshalling schema: %v", err)
|
||||
}
|
||||
r.CreateSetter.Schema = string(b)
|
||||
r.Schema = string(b)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *CreateSetterRunner) createSetter(c *cobra.Command, args []string) error {
|
||||
if setterVersion == "v2" {
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.CreateSetter.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return nil
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
|
||||
rw := &kio.LocalPackageReadWriter{PackagePath: args[0]}
|
||||
err := kio.Pipeline{
|
||||
Inputs: []kio.Reader{rw},
|
||||
Filters: []kio.Filter{&r.Set},
|
||||
Outputs: []kio.Writer{rw}}.Execute()
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return err
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *CreateSetterRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
|
||||
r.CreateSetter = settersutil.SetterCreator{
|
||||
Name: r.CreateSetter.Name,
|
||||
SetBy: r.CreateSetter.SetBy,
|
||||
Description: r.CreateSetter.Description,
|
||||
Type: r.CreateSetter.Type,
|
||||
Schema: r.CreateSetter.Schema,
|
||||
FieldName: r.CreateSetter.FieldName,
|
||||
FieldValue: r.CreateSetter.FieldValue,
|
||||
Required: r.CreateSetter.Required,
|
||||
RecurseSubPackages: r.CreateSetter.RecurseSubPackages,
|
||||
Name: r.SetterName,
|
||||
SetBy: r.SetBy,
|
||||
Description: r.Description,
|
||||
Type: r.Type,
|
||||
Schema: r.Schema,
|
||||
FieldName: r.FieldName,
|
||||
FieldValue: r.FieldValue,
|
||||
Required: r.Required,
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
OpenAPIFileName: ext.KRMFileName(),
|
||||
OpenAPIPath: filepath.Join(pkgPath, ext.KRMFileName()),
|
||||
ResourcesPath: pkgPath,
|
||||
|
||||
@@ -466,60 +466,6 @@ spec:
|
||||
replicas: 3 # {"$openapi":"foo.bar"}
|
||||
`,
|
||||
},
|
||||
|
||||
{
|
||||
name: "create setter v1",
|
||||
args: []string{"hubsetter", "my-hub"},
|
||||
inputOpenAPI: `
|
||||
`,
|
||||
input: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name"
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub: my-hub
|
||||
`,
|
||||
expectedOpenAPI: `
|
||||
`,
|
||||
expectedResources: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name"
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub: my-hub # {"type":"","x-kustomize":{"setter":{"name":"hubsetter","value":"my-hub"}}}
|
||||
`,
|
||||
},
|
||||
|
||||
{
|
||||
name: "create partial setter v1",
|
||||
args: []string{"regionsetter", "us-east1-d", "--partial"},
|
||||
inputOpenAPI: `
|
||||
`,
|
||||
input: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name" # {"type":"","x-kustomize":{"partialSetters":[{"name":"projectsetter","value":"project-id"}]}}
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub: my-hub # {"type":"","x-kustomize":{"setter":{"name":"hubsetter","value":"my-hub"}}}
|
||||
`,
|
||||
expectedOpenAPI: `
|
||||
`,
|
||||
expectedResources: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name" # {"type":"","x-kustomize":{"partialSetters":[{"name":"projectsetter","value":"project-id"},{"name":"regionsetter","value":"us-east1-d"}]}}
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub: my-hub # {"type":"","x-kustomize":{"setter":{"name":"hubsetter","value":"my-hub"}}}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "provide different type values in schema and with flag",
|
||||
args: []string{"replicas", "3", "--description", "hello world", "--type", "string"},
|
||||
|
||||
@@ -16,7 +16,6 @@ import (
|
||||
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
|
||||
"sigs.k8s.io/kustomize/cmd/config/runner"
|
||||
"sigs.k8s.io/kustomize/kyaml/fieldmeta"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters2"
|
||||
)
|
||||
|
||||
@@ -49,45 +48,40 @@ func ListSettersCommand(parent string) *cobra.Command {
|
||||
|
||||
type ListSettersRunner struct {
|
||||
Command *cobra.Command
|
||||
Lookup setters.LookupSetters
|
||||
List setters2.List
|
||||
Markdown bool
|
||||
IncludeSubst bool
|
||||
RecurseSubPackages bool
|
||||
Name string
|
||||
}
|
||||
|
||||
func (r *ListSettersRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
if len(args) > 1 {
|
||||
r.Lookup.Name = args[1]
|
||||
r.List.Name = args[1]
|
||||
r.Name = args[1]
|
||||
}
|
||||
|
||||
initSetterVersion(c, args)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *ListSettersRunner) runE(c *cobra.Command, args []string) error {
|
||||
if setterVersion == "v2" {
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return nil
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
return runner.HandleError(c, lookup(r.Lookup, c, args))
|
||||
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *ListSettersRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
|
||||
r.List = setters2.List{
|
||||
Name: r.List.Name,
|
||||
Name: r.Name,
|
||||
OpenAPIFileName: ext.KRMFileName(),
|
||||
}
|
||||
openAPIPath := filepath.Join(pkgPath, ext.KRMFileName())
|
||||
|
||||
@@ -6,17 +6,13 @@ package commands
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/olekukonko/tablewriter"
|
||||
"github.com/spf13/cobra"
|
||||
"sigs.k8s.io/kustomize/cmd/config/ext"
|
||||
"sigs.k8s.io/kustomize/cmd/config/internal/generateddocs/commands"
|
||||
"sigs.k8s.io/kustomize/cmd/config/runner"
|
||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters"
|
||||
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
|
||||
)
|
||||
|
||||
@@ -36,13 +32,13 @@ func NewSetRunner(parent string) *SetRunner {
|
||||
r.Command = c
|
||||
c.Flags().StringArrayVar(&r.Values, "values", []string{},
|
||||
"optional flag, the values of the setter to be set to")
|
||||
c.Flags().StringVar(&r.Perform.SetBy, "set-by", "",
|
||||
c.Flags().StringVar(&r.SetBy, "set-by", "",
|
||||
"annotate the field with who set it")
|
||||
c.Flags().StringVar(&r.Perform.Description, "description", "",
|
||||
c.Flags().StringVar(&r.Description, "description", "",
|
||||
"annotate the field with a description of its value")
|
||||
c.Flags().StringVar(&setterVersion, "version", "",
|
||||
"use this version of the setter format")
|
||||
c.Flags().BoolVarP(&r.Set.RecurseSubPackages, "recurse-subpackages", "R", false,
|
||||
c.Flags().BoolVarP(&r.RecurseSubPackages, "recurse-subpackages", "R", false,
|
||||
"sets recursively in all the nested subpackages")
|
||||
c.Flags().MarkHidden("version")
|
||||
|
||||
@@ -57,30 +53,15 @@ func SetCommand(parent string) *cobra.Command {
|
||||
|
||||
type SetRunner struct {
|
||||
Command *cobra.Command
|
||||
Lookup setters.LookupSetters
|
||||
Perform setters.PerformSetters
|
||||
Set settersutil.FieldSetter
|
||||
OpenAPIFile string
|
||||
Values []string
|
||||
}
|
||||
|
||||
func initSetterVersion(c *cobra.Command, args []string) error {
|
||||
setterVersion = "v2"
|
||||
l := setters.LookupSetters{}
|
||||
|
||||
// backwards compatibility for resources with setter v1
|
||||
err := kio.Pipeline{
|
||||
Inputs: []kio.Reader{&kio.LocalPackageReader{PackagePath: args[0]}},
|
||||
Filters: []kio.Filter{&l},
|
||||
}.Execute()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(l.SetterCounts) > 0 {
|
||||
setterVersion = "v1"
|
||||
}
|
||||
|
||||
return nil
|
||||
SetBy string
|
||||
Description string
|
||||
Name string
|
||||
Value string
|
||||
ListValues []string
|
||||
RecurseSubPackages bool
|
||||
}
|
||||
|
||||
func (r *SetRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
@@ -90,79 +71,51 @@ func (r *SetRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
return errors.Errorf("value should set either from flag or arg")
|
||||
}
|
||||
|
||||
if len(args) > 1 {
|
||||
r.Perform.Name = args[1]
|
||||
r.Lookup.Name = args[1]
|
||||
}
|
||||
|
||||
r.Name = args[1]
|
||||
if valueFlagSet {
|
||||
r.Perform.Value = r.Values[0]
|
||||
} else if len(args) > 2 {
|
||||
r.Perform.Value = args[2]
|
||||
r.Value = r.Values[0]
|
||||
} else {
|
||||
r.Value = args[2]
|
||||
}
|
||||
|
||||
if setterVersion == "" {
|
||||
if len(args) < 2 || len(args) < 3 && !valueFlagSet {
|
||||
setterVersion = "v1"
|
||||
} else if err := initSetterVersion(c, args); err != nil {
|
||||
return err
|
||||
}
|
||||
// set remaining values as list values
|
||||
if valueFlagSet && len(r.Values) > 1 {
|
||||
r.ListValues = r.Values[1:]
|
||||
} else if !valueFlagSet && len(args) > 3 {
|
||||
r.ListValues = args[3:]
|
||||
}
|
||||
if setterVersion == "v2" {
|
||||
r.Set.Name = args[1]
|
||||
if valueFlagSet {
|
||||
r.Set.Value = r.Values[0]
|
||||
} else {
|
||||
r.Set.Value = args[2]
|
||||
}
|
||||
|
||||
// set remaining values as list values
|
||||
if valueFlagSet && len(r.Values) > 1 {
|
||||
r.Set.ListValues = r.Values[1:]
|
||||
} else if !valueFlagSet && len(args) > 3 {
|
||||
r.Set.ListValues = args[3:]
|
||||
}
|
||||
|
||||
r.Set.Description = r.Perform.Description
|
||||
r.Set.SetBy = r.Perform.SetBy
|
||||
r.OpenAPIFile = filepath.Join(args[0], ext.KRMFileName())
|
||||
}
|
||||
r.OpenAPIFile = filepath.Join(args[0], ext.KRMFileName())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *SetRunner) runE(c *cobra.Command, args []string) error {
|
||||
if setterVersion == "v2" {
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.Set.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return nil
|
||||
e := runner.ExecuteCmdOnPkgs{
|
||||
NeedOpenAPI: true,
|
||||
Writer: c.OutOrStdout(),
|
||||
RootPkgPath: args[0],
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
CmdRunner: r,
|
||||
}
|
||||
if len(args) > 2 || c.Flag("values").Changed {
|
||||
return runner.HandleError(c, r.perform(c, args))
|
||||
err := e.Execute()
|
||||
if err != nil {
|
||||
return runner.HandleError(c, err)
|
||||
}
|
||||
return runner.HandleError(c, lookup(r.Lookup, c, args))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *SetRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
|
||||
r.Set = settersutil.FieldSetter{
|
||||
Name: r.Set.Name,
|
||||
Value: r.Set.Value,
|
||||
ListValues: r.Set.ListValues,
|
||||
Description: r.Set.Description,
|
||||
SetBy: r.Set.SetBy,
|
||||
Name: r.Name,
|
||||
Value: r.Value,
|
||||
ListValues: r.ListValues,
|
||||
Description: r.Description,
|
||||
SetBy: r.SetBy,
|
||||
Count: 0,
|
||||
OpenAPIPath: filepath.Join(pkgPath, ext.KRMFileName()),
|
||||
OpenAPIFileName: ext.KRMFileName(),
|
||||
ResourcesPath: pkgPath,
|
||||
RecurseSubPackages: r.Set.RecurseSubPackages,
|
||||
RecurseSubPackages: r.RecurseSubPackages,
|
||||
IsSet: true,
|
||||
}
|
||||
count, err := r.Set.Set()
|
||||
@@ -179,65 +132,3 @@ func (r *SetRunner) ExecuteCmd(w io.Writer, pkgPath string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func lookup(l setters.LookupSetters, c *cobra.Command, args []string) error {
|
||||
// lookup the setters
|
||||
err := kio.Pipeline{
|
||||
Inputs: []kio.Reader{&kio.LocalPackageReader{PackagePath: args[0]}},
|
||||
Filters: []kio.Filter{&l},
|
||||
}.Execute()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
table := tablewriter.NewWriter(c.OutOrStdout())
|
||||
table.SetRowLine(false)
|
||||
table.SetBorder(false)
|
||||
table.SetHeaderLine(false)
|
||||
table.SetColumnSeparator(" ")
|
||||
table.SetCenterSeparator(" ")
|
||||
table.SetAlignment(tablewriter.ALIGN_LEFT)
|
||||
table.SetHeader([]string{
|
||||
"NAME", "DESCRIPTION", "VALUE", "TYPE", "COUNT", "SETBY",
|
||||
})
|
||||
for i := range l.SetterCounts {
|
||||
s := l.SetterCounts[i]
|
||||
v := s.Value
|
||||
if s.Value == "" {
|
||||
v = s.Value
|
||||
}
|
||||
table.Append([]string{
|
||||
s.Name,
|
||||
"'" + s.Description + "'",
|
||||
v,
|
||||
fmt.Sprintf("%v", s.Type),
|
||||
fmt.Sprintf("%d", s.Count),
|
||||
s.SetBy,
|
||||
})
|
||||
}
|
||||
table.Render()
|
||||
|
||||
if len(l.SetterCounts) == 0 {
|
||||
// exit non-0 if no matching setters are found
|
||||
os.Exit(1)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// perform the setters
|
||||
func (r *SetRunner) perform(c *cobra.Command, args []string) error {
|
||||
rw := &kio.LocalPackageReadWriter{
|
||||
PackagePath: args[0],
|
||||
}
|
||||
// perform the setters in the package
|
||||
err := kio.Pipeline{
|
||||
Inputs: []kio.Reader{rw},
|
||||
Filters: []kio.Filter{&r.Perform},
|
||||
Outputs: []kio.Writer{rw},
|
||||
}.Execute()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Fprintf(c.OutOrStdout(), "set %d fields\n", r.Perform.Count)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -942,70 +942,6 @@ spec:
|
||||
`,
|
||||
errMsg: "cyclic substitution detected with name my-nested-subst",
|
||||
},
|
||||
|
||||
{
|
||||
name: "set v1 setter asm",
|
||||
args: []string{"profilesetter", "my-asm"},
|
||||
out: "set 1 fields\n",
|
||||
inputOpenAPI: `
|
||||
`,
|
||||
input: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name"
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub:
|
||||
- --gcr.io/asm-testing
|
||||
- --gcr.io/asm-testing2
|
||||
`,
|
||||
expectedOpenAPI: `
|
||||
`,
|
||||
expectedResources: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name"
|
||||
spec:
|
||||
profile: my-asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"my-asm"}}}
|
||||
hub:
|
||||
- --gcr.io/asm-testing
|
||||
- --gcr.io/asm-testing2
|
||||
`,
|
||||
},
|
||||
|
||||
{
|
||||
name: "set v1 partial setter",
|
||||
args: []string{"gcloud.core.project", "my-project"},
|
||||
out: "set 1 fields\n",
|
||||
inputOpenAPI: `
|
||||
`,
|
||||
input: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "project-id/us-east1-d/cluster-name" # {"type":"string","x-kustomize":{"partialSetters":[{"name":"gcloud.core.project","value":"project-id"},{"name":"cluster-name","value":"cluster-name"},{"name":"gcloud.compute.zone","value":"us-east1-d"}]}}
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub:
|
||||
- --gcr.io/asm-testing
|
||||
- --gcr.io/asm-testing2
|
||||
`,
|
||||
expectedOpenAPI: `
|
||||
`,
|
||||
expectedResources: `
|
||||
apiVersion: install.istio.io/v1alpha2
|
||||
kind: IstioControlPlane
|
||||
metadata:
|
||||
clusterName: "my-project/us-east1-d/cluster-name" # {"type":"string","x-kustomize":{"partialSetters":[{"name":"gcloud.core.project","value":"my-project"},{"name":"cluster-name","value":"cluster-name"},{"name":"gcloud.compute.zone","value":"us-east1-d"}]}}
|
||||
spec:
|
||||
profile: asm # {"type":"string","x-kustomize":{"setter":{"name":"profilesetter","value":"asm"}}}
|
||||
hub:
|
||||
- --gcr.io/asm-testing
|
||||
- --gcr.io/asm-testing2
|
||||
`,
|
||||
},
|
||||
}
|
||||
for i := range tests {
|
||||
test := tests[i]
|
||||
|
||||
Reference in New Issue
Block a user