Refactor kustomize config command structure

- Create cfg, fn, live parent commands
This commit is contained in:
Phillip Wittrock
2020-06-03 13:17:30 -07:00
committed by Phillip Wittrock
parent 73157c7141
commit 701c217791
68 changed files with 669 additions and 3846 deletions

View File

@@ -11,8 +11,8 @@
### Examples
kustomize config annotate my-dir/ --kv foo=bar
kustomize cfg annotate my-dir/ --kv foo=bar
kustomize config annotate my-dir/ --kv foo=bar --kv a=b
kustomize cfg annotate my-dir/ --kv foo=bar --kv a=b
kustomize config annotate my-dir/ --kv foo=bar --kind Deployment --name foo
kustomize cfg annotate my-dir/ --kv foo=bar --kind Deployment --name foo

View File

@@ -12,10 +12,10 @@
### Examples
# print Resource config from a directory
kustomize config cat my-dir/
kustomize cfg cat my-dir/
# wrap Resource config from a directory in an ResourceList
kustomize config cat my-dir/ --wrap-kind ResourceList --wrap-version config.kubernetes.io/v1alpha1 --function-config fn.yaml
kustomize cfg cat my-dir/ --wrap-kind ResourceList --wrap-version config.kubernetes.io/v1alpha1 --function-config fn.yaml
# unwrap Resource config from a directory in an ResourceList
... | kustomize config cat
... | kustomize cfg cat

View File

@@ -12,4 +12,4 @@
### Examples
# print Resource counts from a directory
kustomize config count my-dir/
kustomize cfg count my-dir/

View File

@@ -38,7 +38,7 @@ Create a custom setter for a Resource field by inlining OpenAPI as comments.
**Create a new setter:**
# create a setter for ports
$ kustomize config set create DIR/ http-port 8080 --type "integer" --field "port"
$ kustomize cfg set create DIR/ http-port 8080 --type "integer" --field "port"
Resources fields with a field name matching `--field` and field value matching `VALUE` will
have a line comment added marking this field as settable.
@@ -63,7 +63,7 @@ Create a custom setter for a Resource field by inlining OpenAPI as comments.
Users may not set the field value using the `set` command:
# change the http-port value to 8081
$ kustomize config set DIR/ http-port 8081
$ kustomize cfg set DIR/ http-port 8081
### Using default values
@@ -75,7 +75,7 @@ The default values for a setter may be:
A setter may be for a substring of a full field:
$ kustomize config set create DIR/ image-tag v1.0.01 --type "string" --field "image"
$ kustomize cfg set create DIR/ image-tag v1.0.01 --type "string" --field "image"
image: gcr.io/example/app:v1.0.1 # # {"type":"string","x-kustomize":{"partialFieldSetters":[{"name":"image-tag","value":"v1.0.1"}]}}
@@ -84,10 +84,10 @@ A single field value may have multiple setters applied to it for different parts
### Examples
# create a setter for port fields matching "8080"
kustomize config create-setter DIR/ port 8080 --type "integer" --field port \
kustomize cfg create-setter DIR/ port 8080 --type "integer" --field port \
--description "default port used by the app"
# create a setter for a substring of a field rather than the full field -- e.g. only the
# image tag, not the full image
kustomize config create-setter DIR/ image-tag v1.0.1 --type "string" \
kustomize cfg create-setter DIR/ image-tag v1.0.1 --type "string" \
--field image --description "current stable release"

View File

@@ -32,13 +32,13 @@ field paths.
### Examples
# format file1.yaml and file2.yml
kustomize config fmt file1.yaml file2.yml
kustomize cfg fmt file1.yaml file2.yml
# format all *.yaml and *.yml recursively traversing directories
kustomize config fmt my-dir/
kustomize cfg fmt my-dir/
# format kubectl output
kubectl get -o yaml deployments | kustomize config fmt
kubectl get -o yaml deployments | kustomize cfg fmt
# format kustomize output
kustomize build | kustomize config fmt
kustomize build | kustomize cfg fmt

View File

@@ -19,13 +19,13 @@
### Examples
# find Deployment Resources
kustomize config grep "kind=Deployment" my-dir/
kustomize cfg grep "kind=Deployment" my-dir/
# find Resources named nginx
kustomize config grep "metadata.name=nginx" my-dir/
kustomize cfg grep "metadata.name=nginx" my-dir/
# use tree to display matching Resources
kustomize config grep "metadata.name=nginx" my-dir/ | kustomize config tree
kustomize cfg grep "metadata.name=nginx" my-dir/ | kustomize cfg tree
# look for Resources matching a specific container image
kustomize config grep "spec.template.spec.containers[name=nginx].image=nginx:1\.7\.9" my-dir/ | kustomize config tree
kustomize cfg grep "spec.template.spec.containers[name=nginx].image=nginx:1\.7\.9" my-dir/ | kustomize cfg tree

View File

@@ -12,7 +12,7 @@
### Examples
# create a Krmfile in the local directory
kustomize config init
kustomize cfg init
# create a Krmfile in my-dir/
kustomize config init my-dir/
kustomize cfg init my-dir/

View File

@@ -18,6 +18,6 @@ List setters for Resources.
Show setters:
$ config list-setters DIR/
$ kustomize cfg list-setters DIR/
NAME DESCRIPTION VALUE TYPE COUNT SETBY
name-prefix '' PREFIX string 2

View File

@@ -17,8 +17,8 @@ earlier are lower-precedence (the destination).
For information on merge rules, run:
kustomize config docs merge
kustomize cfg docs merge
### Examples
cat resources_and_patches.yaml | kustomize config merge > merged_resources.yaml
cat resources_and_patches.yaml | kustomize cfg merge > merged_resources.yaml

View File

@@ -16,8 +16,8 @@ to the Resource in the DEST_DIR.
For information on merge rules, run:
kustomize config docs-merge3
kustomize cfg docs-merge3
### Examples
kustomize config merge3 --ancestor a/ --from b/ --to c/
kustomize cfg merge3 --ancestor a/ --from b/ --to c/

View File

@@ -40,14 +40,14 @@ order they appear in the file).
spec:
configField: configValue
In the preceding example, 'kustomize config run example/' would identify the function by
In the preceding example, 'kustomize fn run example/' would identify the function by
the metadata.annotations.[config.kubernetes.io/function] field. It would then write all Resources in the directory to
a container stdin (running the gcr.io/example/examplefunction:v1.0.1 image). It
would then write the container stdout back to example/, replacing the directory
file contents.
See `kustomize help config docs-fn` for more details on writing functions.
See `kustomize help cfg docs-fn` for more details on writing functions.
### Examples
kustomize config run example/
kustomize fn run example/

View File

@@ -29,7 +29,7 @@ the configuration as comments.
To print the possible setters for the Resources in a directory, run
`list-setters` on a directory -- e.g. `kustomize config list-setters DIR/`.
`list-setters` on a directory -- e.g. `kustomize cfg list-setters DIR/`.
#### Tips
@@ -39,7 +39,7 @@ To print the possible setters for the Resources in a directory, run
The description and setBy fields are left unmodified unless specified with flags.
To create a custom setter for a field see: `kustomize help config create-setter`
To create a custom setter for a field see: `kustomize help cfg create-setter`
### Examples
@@ -64,7 +64,7 @@ To create a custom setter for a field see: `kustomize help config create-setter`
Perform set: set a new value, owner and description
$ kustomize config set DIR/ name-prefix "test" --description "test environment" --set-by "dev"
$ kustomize cfg set DIR/ name-prefix "test" --description "test environment" --set-by "dev"
set 2 values
List setters: Show the new values

View File

@@ -6,7 +6,7 @@
[Alpha] Implement a Sink by writing input to a local directory.
kustomize config sink [DIR]
kustomize fn sink [DIR]
DIR:
Path to local directory. If unspecified, sink will write to stdout as if it were a single file.
@@ -15,4 +15,4 @@
### Examples
kustomize config source DIR/ | your-function | kustomize config sink DIR/
kustomize fn source DIR/ | your-function | kustomize fn sink DIR/

View File

@@ -6,7 +6,7 @@
[Alpha] Implement a Source by reading a local directory.
kustomize config source DIR...
kustomize fn source DIR...
DIR:
One or more paths to local directories. Contents from directories will be concatenated.
@@ -17,6 +17,6 @@
### Examples
# emity configuration directory as input source to a function
kustomize config source DIR/
kustomize fn source DIR/
kustomize config source DIR/ | your-function | kustomize config sink DIR/
kustomize fn source DIR/ | your-function | kustomize fn sink DIR/

View File

@@ -6,7 +6,7 @@
[Alpha] Display Resource structure from a directory or stdin.
kustomize config tree may be used to print Resources in a directory or cluster, preserving structure
kustomize cfg tree may be used to print Resources in a directory or cluster, preserving structure
Args:
@@ -15,38 +15,38 @@ Args:
Resource fields may be printed as part of the Resources by specifying the fields as flags.
kustomize config tree has build-in support for printing common fields, such as replicas, container images,
kustomize cfg tree has build-in support for printing common fields, such as replicas, container images,
container names, etc.
kustomize config tree supports printing arbitrary fields using the '--field' flag.
kustomize cfg tree supports printing arbitrary fields using the '--field' flag.
By default, kustomize config tree uses Resource graph structure if any relationships between resources (ownerReferences)
By default, kustomize cfg tree uses Resource graph structure if any relationships between resources (ownerReferences)
are detected, as is typically the case when printing from a cluster. Otherwise, directory graph structure is used. The
graph structure can also be selected explicitly using the '--graph-structure' flag.
### Examples
# print Resources using directory structure
kustomize config tree my-dir/
kustomize cfg tree my-dir/
# print replicas, container name, and container image and fields for Resources
kustomize config tree my-dir --replicas --image --name
kustomize cfg tree my-dir --replicas --image --name
# print all common Resource fields
kustomize config tree my-dir/ --all
kustomize cfg tree my-dir/ --all
# print the "foo"" annotation
kustomize config tree my-dir/ --field "metadata.annotations.foo"
kustomize cfg tree my-dir/ --field "metadata.annotations.foo"
# print the "foo"" annotation
kubectl get all -o yaml | kustomize config tree \
kubectl get all -o yaml | kustomize cfg tree \
--field="status.conditions[type=Completed].status"
# print live Resources from a cluster using owners for graph structure
kubectl get all -o yaml | kustomize config tree --replicas --name --image
kubectl get all -o yaml | kustomize cfg tree --replicas --name --image
# print live Resources with status condition fields
kubectl get all -o yaml | kustomize config tree \
kubectl get all -o yaml | kustomize cfg tree \
--name --image --replicas \
--field="status.conditions[type=Completed].status" \
--field="status.conditions[type=Complete].status" \