/promo-tools

A tool to promote Docker images from one registry to another, based on a declarative YAML manifest

Primary LanguageGoApache License 2.0Apache-2.0

Artifact Promotion Tooling

PkgGoDev Go Report Card Slack

This repository contains a suite of tools responsible for artifact promotion in the Kubernetes project.

DISCLAIMER

Before getting started, it's important to note that the tooling stored here is an aggregate of several efforts to improve artifact promotion, across multiple SIGs, subprojects, and contributors.

We call that out to set the expectation that:

  • you may see duplicated code within the codebase
  • you may encounter multiple techniques/tools for accomplishing the same thing
  • you will encounter several TODOs
  • you will see gaps in documentation including:
    • missing documentation
    • example commands that may not work
    • broken links

This list is far from exhaustive.

If you encounter issues, please search for existing issues/PRs in the repository and join the conversation.

If you cannot find an existing issue, please file a detailed report, so that maintainers can work on it.

kpromo

kpromo, or the Kubernetes Promotion Tool, is the canonical tool for promoting Kubernetes project artifacts.

It wraps and unifies the functionality of multiple tools that have existed in the past:

  • cip
  • cip-mm
  • cip-auditor
  • gh2gcs
  • krel promote-images
  • promobot-files

Installation

Requirements:

User

If you're interested in installing kpromo from a tag:

go install sigs.k8s.io/promo-tools/v4/cmd/kpromo@<tag>
$(go env GOPATH)/bin/kpromo <subcommand>

Developer

If you're interested in actively contributing to kpromo or testing functionality which may not yet be in a tagged release, first fork/clone the repo and then run:

go install ./cmd/kpromo/...
$(go env GOPATH)/bin/kpromo <subcommand>

Usage

Usage:
  kpromo [command]

Available Commands:
  cip         Promote images from a staging registry to production
  completion  generate the autocompletion script for the specified shell
  gh          Uploads GitHub releases to Google Cloud Storage
  help        Help about any command
  manifest    Generate/modify a manifest for artifact promotion
  pr          Starts an image promotion for a given image tag
  run         Run artifact promotion
  version     output version information

Image promotion

For background on the image promotion process, see here.

To create an image promotion PR via kpromo pr, see here.

File promotion

See here.

GitHub promotion

See here.