Skip to content

Latest commit

 

History

History
46 lines (29 loc) · 2.91 KB

RELEASE.md

File metadata and controls

46 lines (29 loc) · 2.91 KB

Releasing a new version of apiserver-network-proxy

Please note this guide is only intended for the admins of this repository, and requires write access.

Creating a new release of network proxy involves releasing a new version of the client library (konnectivity-client) and new images for the proxy agent and server. Generally we also want to upgrade kubernetes/kubernetes with the latest version of the images and library, but this is a GCE specific change.

  1. The first step involves creating a new git tag for the release, following semvar for go libraries. A tag is required for both the repository and the konnectivity-client library. For example releasing the 0.0.15 version will have two tags v0.0.15 and konnectivity-client/v0.0.15 on the appropriate commit.

    The exact commands are

    # Check out the appropriate commit (usually head of master)
    git tag -a v0.0.15
    git tag konnectivity-client/v0.0.15
    git push upstream v0.0.15
    git push upstream konnectivity-client/v0.0.15
    

    Once the two tags are created, the konnectivity-client can be imported as a library in kubernetes/kubernetes and other go programs.

  2. To publish the proxy server and proxy agent images, they must be promoted from the k8s staging repo. An example PR can be seen here: kubernetes/k8s.io#1602

    The SHA in the PR corresponds to the SHA of the image within the k8s staging repo. (This is under the Name column)

    The images can be found here for the proxy server and proxy agent.

    Please ensure that the commit shown on the tag of the image matches the one shown in the tags page in the network proxy repo.

  3. Finally, update kubernetes/kubernetes with the new client library and images.

    An example PR can be found here: kubernetes/kubernetes#94983

    Image paths must be bumped and are located in:

    • cluster/gce/addons/konnectivity-agent/konnectivity-agent-ds.yaml
    • cluster/gce/manifests/konnectivity-server.yaml

    To update the library, no go.mod files need to be manually modified and running these commands in k/k will perform the necessary go.mod changes.

    ./hack/pin-dependency.sh sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
    make clean generated_files
    ./hack/update-vendor.sh