apply(name, src, cfg, namespace, tags)
Performs a dry-run apply via kubectl against a resource file.
This is intended to be combined with the output of a kustomization rule
though src can reference any file accepted by kubectl apply. This
macro defines two additional rules:
<name>.runactually performs the apply.<name>.diffoutputs the diff against the existing configuration.
See:
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
- https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#diff
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| name | A unique name for this rule. | none |
| src | A label. | none |
| cfg | A label referencing a kubeconfig file pointing to desired target cluster. | none |
| namespace | Optionally restrict operations to a specific namespace in the cluster defined by cfg. |
None |
| tags | Sets tags on the rule. The requires-network tag must be among the tags. |
None |
kubeconfig()
Macro for genrule target named "kubeconfig" intended to uniquely identify a Kubernetes cluster.
This macro creates two rules: "kubeconfig" and "kubectl". The latter is a convenience run rule that invokes kubectl with the sibling configuration.
These rules are meant to be set in the cfg parameter of the apply rule
documented below.
PARAMETERS
kustomization(name, srcs, out, golden, visibility, autofix, plugin_dir, tags)
Builds a kustomization defined by the input srcs.
The output is a YAML multi-doc comprised of all the resources defined by the customization. This macro will create additional rules with the following suffixes:
<name>.autofixis a run target generated ifgoldenis set. It synchronizes the output of<name>.goldenis a test target generated ifgoldenis set.
See:
- https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kustomization
- https://kubectl.docs.kubernetes.io/references/kustomize/glossary/#kustomization-root
PARAMETERS
| Name | Description | Default Value |
|---|---|---|
| name | A unique name for this rule. | none |
| srcs | Source inputs to run kustomize build against. These are any valid Bazel labels representing.Note that the Bazel glob() function can be used to specify which source files to include and which to exclude, e.g. glob(["*.yaml"], exclude=["golden.yaml"]). |
none |
| out | The name of the output file. | none |
| golden | Identify a file containing the expected output of the build. Defining this parameter creates a test rule named .golden that verifies the output is identical to the contents of the named file. Golden files are a materialized view of resources and can be useful if your kustomizations have many transitive dependencies. |
None |
| visibility | The visibility of this rule. | None |
| autofix | Toggle creation of a .autofix rule if golden is also set. |
True |
| plugin_dir | TODO | None |
| tags | Sets tags on the rule. The block-network tag is strongly recommended (but not enforced) to ensure hermeticity and reproducibility. |
["block-network"] |