This is the documentation for version 0.39. For documentation on the latest version of kpt, please see kpt.dev.

Exec Runtime

Writing and running functions as executables

The Exec runtime is Alpha. It is disabled by default, and must be enabled with the --enable-exec flag.

Config functions may be run as executables outside of containers. Exec functions read input and write output like container functions, but are run outside of a container.

Running functions as executables can be useful for function development, or for running trusted executables.

Exec functions may be converted to container functions by building the executable into a container and invoking it as the container’s CMD or ENTRYPOINT.

Imperative Run

Exec functions may be run imperatively using the --exec-path flag with kpt fn run.

kpt fn run DIR/ --enable-exec --exec-path /path/to/executable

This is similar to building /path/to/executable into the container image gcr.io/project/image:tag and running – except that the executable has access to the local machine.

kpt fn run DIR/ --image gcr.io/project/image:tag

Just like container functions, exec functions accept input as arguments after --.

kpt fn run DIR/ --enable-exec --exec-path /path/to/executable -- foo=bar

Declarative Run

Exec functions may also be run by declaring the function in a resource using the config.kubernetes.io/function annotation.

To run the declared function use kpt fn run DIR/ --enable-exec on the directory containing the example.

apiVersion: example.com/v1beta1
kind: ExampleKind
metadata:
  name: function-input
  annotations:
    config.kubernetes.io/function: |
      exec:
        path: /path/to/executable

Note: if the --enable-exec flag is not provided, kpt fn run DIR/ will ignore the exec function and exit 0.

Next Steps


Last modified August 18, 2020: Deduplicate kpt function docs (#923) (8a9a3587)