* Expand documentation of annotations used in manifests and KRM function wire format.
- Reserve `internal.config.kubernetes.io` for control annotations
- Document `local-config` annotation in a seperate document (It's
orthogonal to KRM functions).
- There is a internal annotation that uses `config.k8s.io` instead of
`config.kubernetes.io` used by other annotations. See [1] and [2]. We
should avoid using two seperate annotation prefixes and audit the
codebase for any other annotation. Given the `id` control annotation is used
for comment preservation (no existing function should be modifying
it), I suggest moving this over to use
`fn-ctrl.config.kubernets.io/id`.
[1]: 7e8ba62e9f/kyaml/fn/runtime/runtimeutil/runtimeutil.go (L195)
[2]: https://github.com/kubernetes-sigs/kustomize/pull/2465
* Move path/index annotation to use internal prefix
* Clarify MUST NOT vs SHOULD NOT for internal annotations
* Update cmd/config/docs/api-conventions/functions-spec.md
Co-authored-by: Katrina Verey <kn.verey@gmail.com>
* Update cmd/config/docs/api-conventions/functions-spec.md
Co-authored-by: Katrina Verey <kn.verey@gmail.com>
* Update cmd/config/docs/api-conventions/manifest-annotations.md
Co-authored-by: Katrina Verey <kn.verey@gmail.com>
* Remove kusotmization as example
Co-authored-by: Katrina Verey <kn.verey@gmail.com>
- Define the OpenAPI schema for ResourceList
- Graduate `ResourceList` to apiVersion `v1`. Many functions have been implemented
and we are effectively treating the spec as backwards compatible.
- Add `results` field to the spec. This has been implemented in the
orchestrator and couple of functions libraries for a while, but hasn't been
yet standardized leading to minor discrepencies. Concurrent to this PR,
we need to udpate the fn framework (kyaml) to be compatible with
the standard and update the orchestrator to be backwards compatible.
- Include per-resource annotations (previously a seperate doc)
- Remove support for non-ResourceList wire formats. In practice, this is
not widely used and complicates the standard. The orchestrators can
easily covert a List to a ResourceList.
As defined in `kustomize config docs-fn-spec`, configuration functions can be
implemented using any toolchain and invoked using any container workflow orchestrator
(e.g. Tekton, Cloud Build) or run directly using docker run.
functions-impl describes using `kustomize config run` as an example
orchestrator for invoking configuration functions.
make all (generate docs)
Update examples in cmd docs.
make all (generate docs)
functions/examples: Whitespace cleanup.
functions/examples: Fix some example commands.