Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Kubeflow Kubeflow Git Tag Container Push

From Leeroopedia
Knowledge Sources
Domains Release Management, Git Tagging, Container Registry, CI/CD
Last Updated 2026-02-13 00:00 GMT

Overview

Concrete tool for tagging releases across all sub-project repos and pushing container images, provided by git tag commands, container registry push operations, and GitHub Release creation per sub-project.

Description

The Git Tag Container Push implementation defines the exact commands and workflows for creating git tags on sub-project repositories, building and pushing container images to registries, and creating GitHub Releases with changelogs. As noted in the kubeflow/kubeflow CHANGELOG.md (Lines 1-7), changelogs now live in the respective sub-project GitHub repositories and release information for the overall platform is available on the Kubeflow website. This implementation coordinates the decentralized tagging process across all Working Groups.

Usage

Use this implementation when:

  • Integration tests have passed and the release team has signed off
  • Sub-project Working Groups are ready to tag their component releases
  • Container images need to be built and pushed for release tags
  • GitHub Releases need to be created with changelogs and release notes
  • The manifests repository needs to be tagged after all components are released

Code Reference

Source Location

Signature

# Git Tag Creation Pattern
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.Z

# Container Image Push Pattern
docker build -t registry/component:vX.Y.Z .
docker push registry/component:vX.Y.Z

# GitHub Release Creation Pattern
gh release create vX.Y.Z --title "vX.Y.Z" --notes-file RELEASE_NOTES.md

Import

# CHANGELOG.md header (from kubeflow/kubeflow):
# # Changelog
# Changelogs can be found in the respective Kubeflow sub-project
# GitHub repositories.
# Release information for the overall Kubeflow AI Reference Platform
# is available on the Kubeflow website page.

# Access sub-project repositories for tagging
git clone https://github.com/kubeflow/trainer.git
git clone https://github.com/kserve/kserve.git
git clone https://github.com/kubeflow/katib.git
git clone https://github.com/kubeflow/pipelines.git
git clone https://github.com/kubeflow/model-registry.git
git clone https://github.com/kubeflow/spark-operator.git
git clone https://github.com/kubeflow/manifests.git

I/O Contract

Inputs

Name Type Required Description
git_tag_version string Yes Git tag in the format vX.Y.Z (e.g., v0.15.2, v0.19.0, v2.4.0)
container_image_tags list of strings Yes Container image tags matching the git tag version for each component
changelog_content string Yes Generated changelog content from git history since the previous release
release_notes string Yes Compiled release notes with feature highlights, breaking changes, and migration instructions
integration_test_pass boolean Yes Confirmation that E2E integration tests have passed
documentation_updated boolean Yes Confirmation that ROADMAP.md and docs site have been updated
release_team_signoff boolean Yes Formal sign-off from the release team authorizing the tag

Outputs

Name Type Description
git_tags list of tag refs Annotated git tags created on each sub-project repository
container_images list of image URIs Container images pushed to registries with release version tags
github_releases list of URLs Published GitHub Releases with changelogs and downloadable artifacts
manifests_tag tag ref Git tag on the kubeflow/manifests repository referencing all component versions

Usage Examples

Example: Tagging a Sub-Project Release

# Tag the Katib v0.19.0 release
cd katib
git checkout main
git pull origin main

# Create an annotated tag
git tag -a v0.19.0 -m "Katib v0.19.0 release for Kubeflow v1.11"

# Push the tag to the remote
git push origin v0.19.0

# Create the GitHub Release with auto-generated notes
gh release create v0.19.0 \
  --repo kubeflow/katib \
  --title "Katib v0.19.0" \
  --generate-notes

Example: Building and Pushing Container Images

# Build container images for a tagged release
# (typically triggered automatically by CI/CD on tag push)

# Manual build example for Katib controller
cd katib
docker build -t docker.io/kubeflowkatib/katib-controller:v0.19.0 \
  -f cmd/katib-controller/v1beta1/Dockerfile .

docker push docker.io/kubeflowkatib/katib-controller:v0.19.0

# Tag as latest
docker tag docker.io/kubeflowkatib/katib-controller:v0.19.0 \
  docker.io/kubeflowkatib/katib-controller:latest
docker push docker.io/kubeflowkatib/katib-controller:latest

Example: Tagging All Sub-Projects for v1.11

# Coordinated tagging across all sub-projects
# Each WG tags their own repo; this shows the expected tags:

# KServe (external org)
gh release create v0.15.2 --repo kserve/kserve \
  --title "KServe v0.15.2" --generate-notes

# Katib
gh release create v0.19.0 --repo kubeflow/katib \
  --title "Katib v0.19.0" --generate-notes

# Pipelines
gh release create 2.15.0 --repo kubeflow/pipelines \
  --title "Pipelines 2.15.0" --generate-notes

# Model Registry
gh release create v0.3.4 --repo kubeflow/model-registry \
  --title "Model Registry v0.3.4" --generate-notes

# Spark Operator
gh release create v2.4.0 --repo kubeflow/spark-operator \
  --title "Spark Operator v2.4.0" --generate-notes

# Manifests (tagged last, after all components are released)
gh release create v1.11.0 --repo kubeflow/manifests \
  --title "Kubeflow v1.11.0 Manifests" --generate-notes

Example: Generating a Changelog from Git History

# Generate a changelog between two releases
cd katib
git log v0.18.0..v0.19.0 --oneline --no-merges > changelog.txt

# Or use GitHub CLI to generate release notes
gh api repos/kubeflow/katib/releases/generate-notes \
  -f tag_name=v0.19.0 \
  -f previous_tag_name=v0.18.0 \
  -q .body

Related Pages

Implements Principle

Requires Environment

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment