We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.
This page contains information about various tools and technologies that are useful to anyone developing on Knative.
ko is a tool designed to make development of Go apps on Kubernetes easier, by
abstracting away the container image being used, and instead referring to Go
packages by their import paths
The typical usage is
ko apply --filename config.yaml, which reads in the
config YAML, and looks for Go import paths representing runnable commands (i.e.,
package main). When it finds a matching import path,
ko builds the package
go build then pushes a container image containing that binary on top of
a base image (by default,
$KO_DOCKER_REPO/unique-string. After pushing those images,
instances of matched import paths with fully-qualified references to the images
ko apply was passed this config:
--- image: github.com/my/repo/cmd/foo
…it would produce YAML like:
--- image: gcr.io/my-docker-repo/foo-zyxwvut@sha256:abcdef # image by digest
(This assumes that you have set the environment variable
ko apply then passes this generated YAML config to
ko also supports:
ko publishto simply push images and not produce configs.
ko resolveto push images and output the generated configs, but not
ko deleteto simply passthrough to
kubectl deletefor convenience.
ko is used during development and release of Knative components, but is not
intended to be required for users of Knative – they should only need to
kubectl apply released configs generated by
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.