diff --git a/docs/kustomization.yaml b/docs/kustomization.yaml index 7047012172..15849aedff 100644 --- a/docs/kustomization.yaml +++ b/docs/kustomization.yaml @@ -102,6 +102,24 @@ secretGenerator: envCommand: printf \"DB_USERNAME=admin\nDB_PASSWORD=somepw\" type: Opaque +# generatorOptions modify behavior of all ConfigMap and Secret generators +generatorOptions: + # labels to add to all generated resources + labels: + kustomize.generated.resources: somevalue + # annotations to add to all generated resources + annotations: + kustomize.generated.resource: somevalue + # timeoutSeconds specifies the timeout for commands + timeoutSeconds: 30 + # shell and arguments to use as a context for commands used in resource + # generation. Default at time of writing: ["sh", "-c"] + shell: ["sh", "-c"] + # disableNameSuffixHash is true disables the default behavior of adding a + # suffix to the names of generated resources that is a hash of + # the resource contents. + disableNameSuffixHash: true + # Each entry in this list should resolve to a directory # containing a kustomization file, else the # customization fails. diff --git a/examples/README.md b/examples/README.md index 182b469f1f..adcdf367fb 100644 --- a/examples/README.md +++ b/examples/README.md @@ -29,6 +29,8 @@ go get sigs.k8s.io/kustomize * [configGenerations](configGeneration.md) - Rolling update when ConfigMapGenerator changes + + * [generatorOptions](generatorOptions.md) - Modifying behavior of all ConfigMap and Secret generators. * [breakfast](breakfast.md) - Customize breakfast for Alice and Bob. diff --git a/examples/generatorOptions.md b/examples/generatorOptions.md new file mode 100644 index 0000000000..893649b721 --- /dev/null +++ b/examples/generatorOptions.md @@ -0,0 +1,62 @@ +# Generator Options + +Kustomize provides options to modify the behavior of ConfigMap and Secret generators. These options include + + - disable appending a content has suffix to the names of generated resources + - adding labels to generated resources + - adding annotations to generated resources + - changing shell and arguments for getting data from commands + - changing timeout for executing commands + +This demo shows how to use these options. First create a workspace. +``` +DEMO_HOME=$(mkdir -d) +``` + +Create a kustomization and add a ConfigMap generator to it. + + +``` +cat > $DEMO_HOME/kustomization.yaml << EOF +configMapGenerator: +- name: my-configmap + literals: + - foo=bar + - baz=qux +EOF +``` + +Add following generatorOptions + +``` +cat >> $DEMO_HOME/kustomization.yaml << EOF +generatorOptions: + disableNameSuffixHash: true + labels: + kustomize.generated.resource: somevalue + annotations: + annotations.only.for.generated: othervalue +EOF +``` +Run `kustomize build` and make sure that the generated ConfigMap + + - doesn't have name suffix + + ``` + test 1 == \ + $(kustomize build $DEMO_HOME | grep "name: my-configmap$" | wc -l); \ + echo $? + ``` + - has label `kustomize.generated.resource: somevalue` + ``` + test 1 == \ + $(kustomize build $DEMO_HOME | grep -A 1 "labels" | grep "kustomize.generated.resource" | wc -l); \ + echo $? + ``` + - has annotation `annotations.only.for.generated: othervalue` + ``` + test 1 == \ + $(kustomize build $DEMO_HOME | grep -A 1 "annotations" | grep "annotations.only.for.generated" | wc -l); \ + echo $? + ``` + \ No newline at end of file