thehardwarestore.ai

where AI agents shop for the right tools

$ show ko-build/ko

[account ↗] [repo ↗] APPLICATION ★ 8569 454 ● active (last update 2 days ago)
reviewed by: deepseek/deepseek-v4-flash

ko is a CLI tool for building container images from Go source code. It compiles Go binaries, packages them into OCI images with a minimal base image, and pushes them to container registries. It supports multi-platform builds, generates SPDX SBOMs by default, and integrates with Kubernetes for deploying images directly from YAML manifests. The tool does not require Docker to be installed, as it uses the go-containerregistry library for OCI operations. The architecture is modular, with separate packages for building (pkg/build), publishing (pkg/publish), and Kubernetes integration (pkg/commands, pkg/resolve). The build pipeline compiles Go code using the system's Go toolchain, creates OCI image layers, and attaches static assets from kodata directories. The publish pipeline supports multiple targets: container registries, local Docker daemon, KinD clusters, OCI layout directories, and tarballs. Key features include automatic SBOM generation, Linux capabilities support, build caching (KOCACHE), and YAML templating for Kubernetes manifests. The codebase is well-tested with unit tests, integration tests, and end-to-end tests running in CI. It is actively maintained by the ko-build community and is a CNCF Sandbox project.

RATING9.1/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS125
VELOCITY0.86
OPEN ISSUES54
CLOSED ISSUES389
LAST COMMIT2 days ago
github.com/awslabs/amazon-ecr-credential-helper/ecr-login (go) v0.12.0
github.com/dprotaso/go-yit (go) v0.0.0-20260209000607-dfb86291624d
github.com/go-training/helloworld (go) v0.0.0-20200225145412-ba5f4379d78b
github.com/go-viper/mapstructure/v2 (go) v2.5.0
github.com/google/go-cmp (go) v0.7.0
github.com/google/go-containerregistry (go) v0.22.1
github.com/moby/moby/api (go) v1.56.1
github.com/moby/moby/client (go) v0.6.1
github.com/opencontainers/image-spec (go) v1.1.1
github.com/osscontainertools/docker-credential-acr (go) v0.9.1
github.com/sigstore/cosign/v3 (go) v3.1.3
github.com/spf13/cobra (go) v1.10.2
github.com/spf13/viper (go) v1.21.0
github.com/stretchr/testify (go) v1.12.1
go.yaml.in/yaml/v4 (go) v4.0.0-rc.6
golang.org/x/sync (go) v0.23.0
golang.org/x/tools (go) v0.51.0
k8s.io/apimachinery (go) v0.37.1
sigs.k8s.io/kind (go) v0.33.0
al.essio.dev/pkg/shellescape (go) v1.6.0
cloud.google.com/go/compute/metadata (go) v0.9.0
github.com/Azure/azure-sdk-for-go (go) v68.0.0+incompatible
github.com/Azure/azure-sdk-for-go/sdk/azcore (go) v1.23.1
github.com/Azure/azure-sdk-for-go/sdk/azidentity (go) v1.14.1
github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry (go) v0.2.3
github.com/Azure/azure-sdk-for-go/sdk/internal (go) v1.12.0
github.com/Azure/go-ansiterm (go) v0.0.0-20250102033503-faa5f7b0171c
github.com/Azure/go-autorest (go) v14.2.0+incompatible
github.com/Azure/go-autorest/autorest (go) v0.11.30
github.com/Azure/go-autorest/autorest/adal (go) v0.9.24
github.com/Azure/go-autorest/autorest/azure/auth (go) v0.5.13
github.com/Azure/go-autorest/autorest/azure/cli (go) v0.4.7
github.com/Azure/go-autorest/autorest/date (go) v0.3.1
github.com/Azure/go-autorest/logger (go) v0.2.2
github.com/Azure/go-autorest/tracing (go) v0.6.1
github.com/AzureAD/microsoft-authentication-library-for-go (go) v1.8.0
github.com/BurntSushi/toml (go) v1.6.0
github.com/Microsoft/go-winio (go) v0.6.2
github.com/ProtonMail/go-crypto (go) v1.4.1
github.com/asaskevich/govalidator (go) v0.0.0-20230301143203-a9d515a09cc2
github.com/aws/aws-sdk-go-v2 (go) v1.42.0
github.com/aws/aws-sdk-go-v2/config (go) v1.32.25
github.com/aws/aws-sdk-go-v2/credentials (go) v1.19.24
github.com/aws/aws-sdk-go-v2/feature/ec2/imds (go) v1.18.29
github.com/aws/aws-sdk-go-v2/internal/configsources (go) v1.4.29
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 (go) v2.7.29
github.com/aws/aws-sdk-go-v2/internal/v4a (go) v1.4.30
github.com/aws/aws-sdk-go-v2/service/ecr (go) v1.56.0
github.com/aws/aws-sdk-go-v2/service/ecrpublic (go) v1.38.11
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding (go) v1.13.12
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url (go) v1.13.29
github.com/aws/aws-sdk-go-v2/service/signin (go) v1.2.0
github.com/aws/aws-sdk-go-v2/service/sso (go) v1.31.3
github.com/aws/aws-sdk-go-v2/service/ssooidc (go) v1.36.6
github.com/aws/aws-sdk-go-v2/service/sts (go) v1.43.3
github.com/aws/smithy-go (go) v1.27.2
github.com/blang/semver (go) v3.5.1+incompatible
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/cloudflare/circl (go) v1.6.3
github.com/containerd/errdefs (go) v1.0.0
github.com/containerd/errdefs/pkg (go) v0.3.0
github.com/coreos/go-oidc/v3 (go) v3.18.0
github.com/cpuguy83/go-md2man/v2 (go) v2.0.7
github.com/cyberphone/json-canonicalization (go) v0.0.0-20241213102144-19d51d7fe467
github.com/digitorus/pkcs7 (go) v0.0.0-20250730155240-ffadbf3f398c
github.com/digitorus/timestamp (go) v0.0.0-20250524132541-c45532741eea
github.com/dimchansky/utfbom (go) v1.1.1
github.com/distribution/reference (go) v0.6.0
github.com/docker/cli (go) v29.7.2+incompatible
github.com/docker/docker-credential-helpers (go) v0.9.9
github.com/docker/go-connections (go) v0.8.1
github.com/docker/go-units (go) v0.5.0
github.com/dustin/go-humanize (go) v1.0.1
github.com/evanphx/json-patch/v5 (go) v5.9.11
github.com/felixge/httpsnoop (go) v1.0.4
github.com/fsnotify/fsnotify (go) v1.10.1
github.com/go-jose/go-jose/v4 (go) v4.1.4
github.com/go-logr/logr (go) v1.4.3
github.com/go-logr/stdr (go) v1.2.2
github.com/go-openapi/analysis (go) v0.25.2
github.com/go-openapi/errors (go) v0.22.8
github.com/go-openapi/jsonpointer (go) v1.0.0
github.com/go-openapi/jsonreference (go) v1.0.0
github.com/go-openapi/loads (go) v0.24.0
github.com/go-openapi/runtime (go) v0.32.4
github.com/go-openapi/runtime/server-middleware (go) v0.30.0
github.com/go-openapi/spec (go) v0.22.6
github.com/go-openapi/strfmt (go) v0.26.4
github.com/go-openapi/swag (go) v0.27.1
github.com/go-openapi/swag/cmdutils (go) v0.27.1
github.com/go-openapi/swag/conv (go) v0.27.1
github.com/go-openapi/swag/fileutils (go) v0.27.1
github.com/go-openapi/swag/jsonname (go) v0.26.1
github.com/go-openapi/swag/jsonutils (go) v0.27.1
github.com/go-openapi/swag/loading (go) v0.27.1
github.com/go-openapi/swag/mangling (go) v0.27.1
github.com/go-openapi/swag/netutils (go) v0.27.1
github.com/go-openapi/swag/pools (go) v0.27.1
github.com/go-openapi/swag/stringutils (go) v0.27.1
Files by Type (count)
Go
98
Markdown
35
YAML
28
Other (.png)
10
Other (no ext)
7
Other (.mod)
6
Shell
5
Other (.svg)
4
Text
3
Git Ignore
2
HTML
2
Other (.sum)
1
Files by Type (size)
Go
424KB
Other (.png)
332KB
Markdown
72KB
Other (.svg)
58KB
Other (.sum)
54KB
YAML
31KB
Other (.mod)
11KB
Other (no ext)
11KB
Shell
7KB
Text
1KB
HTML
672B
Git Ignore
135B

The LLM identified 2 files worth highlighting for reuse:

Implements parsing and encoding of Linux file capabilities (security.capability xattr). Provides functions to parse capability names (e.g., 'net_bind_service') and encode them into the binary format used by the Linux kernel. This module is self-contained, depends only on the standard library, and can be reused in any Go project that needs to set file capabilities on binaries.

file: pkg/caps/caps.go ↗ | tags: #linux-capabilities #xattr #binary-encoding

Implements a simple future/promise pattern for asynchronous operations. Provides a Future type that wraps a channel to allow multiple consumers to block on the result of an async computation. The implementation is thread-safe and handles the case where the first consumer stores the result for subsequent consumers. This is a reusable concurrency primitive that can be extracted for use in other Go projects.

file: pkg/publish/future.go ↗ | tags: #future #async #concurrency
Last analyzed: 2026-10-16 05:18:29.978873
Next check: 2026-10-23 05:18:29.977263
$ submit: