Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions .github/workflows/publish-tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,23 @@ jobs:
username: ${{ github.actor }}
password: ${{ github.token }}

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_PAT }}

- name: Set image tag
run: |
IMAGE_REPO="ghcr.io/kuberhealthy/ssh-check"
IMAGE_REPO="docker.io/kuberhealthy/ssh-check"
IMAGE_TAG="${IMAGE_REPO}:${GITHUB_REF_NAME}"
GHCR_IMAGE_REPO="ghcr.io/kuberhealthy/ssh-check"
GHCR_IMAGE_TAG="${GHCR_IMAGE_REPO}:${GITHUB_REF_NAME}"
PACKAGE_URL="https://github.com/orgs/kuberhealthy/packages/container/package/ssh-check"
echo "IMAGE_REPO=${IMAGE_REPO}" >> "$GITHUB_ENV"
echo "IMAGE_TAG=${IMAGE_TAG}" >> "$GITHUB_ENV"
echo "GHCR_IMAGE_REPO=${GHCR_IMAGE_REPO}" >> "$GITHUB_ENV"
echo "GHCR_IMAGE_TAG=${GHCR_IMAGE_TAG}" >> "$GITHUB_ENV"
echo "PACKAGE_URL=${PACKAGE_URL}" >> "$GITHUB_ENV"

- name: Build and push
Expand All @@ -51,7 +61,9 @@ jobs:
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ env.IMAGE_TAG }}
tags: |
${{ env.IMAGE_TAG }}
${{ env.GHCR_IMAGE_TAG }}

- name: Update healthcheck examples
env:
Expand All @@ -77,6 +89,7 @@ jobs:
run: |
{
echo "Image: ${IMAGE_TAG}"
echo "GHCR image: ${GHCR_IMAGE_TAG}"
echo "Tag: ${GITHUB_REF_NAME}"
echo "Platforms: linux/amd64, linux/arm64"
echo "GitHub Package: ${PACKAGE_URL}"
Expand All @@ -86,11 +99,13 @@ jobs:
echo "Container image published for this release."
echo
echo "- Image: ${IMAGE_TAG}"
echo "- GHCR image: ${GHCR_IMAGE_TAG}"
echo "- Tag: ${GITHUB_REF_NAME}"
echo
echo "Pull:"
echo
echo " docker pull ${IMAGE_TAG}"
echo " docker pull ${GHCR_IMAGE_TAG}"
} > release-notes.md

- name: Create GitHub release
Expand All @@ -110,5 +125,6 @@ jobs:
echo "- ${GITHUB_REF_NAME}" >> "$GITHUB_STEP_SUMMARY"
echo "Image pushed:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "Package:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${GHCR_IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "GHCR package:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${PACKAGE_URL}" >> "$GITHUB_STEP_SUMMARY"
20 changes: 18 additions & 2 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,28 @@ jobs:
username: ${{ github.actor }}
password: ${{ github.token }}

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_PAT }}

- name: Set image tag
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
IMAGE_REPO="ghcr.io/kuberhealthy/ssh-check"
IMAGE_REPO="docker.io/kuberhealthy/ssh-check"
IMAGE_TAG="${IMAGE_REPO}:${SHORT_SHA}"
LATEST_IMAGE_TAG="${IMAGE_REPO}:latest"
GHCR_IMAGE_REPO="ghcr.io/kuberhealthy/ssh-check"
GHCR_IMAGE_TAG="${GHCR_IMAGE_REPO}:${SHORT_SHA}"
GHCR_LATEST_IMAGE_TAG="${GHCR_IMAGE_REPO}:latest"
PACKAGE_URL="https://github.com/orgs/kuberhealthy/packages/container/package/ssh-check"
echo "IMAGE_REPO=${IMAGE_REPO}" >> "$GITHUB_ENV"
echo "IMAGE_TAG=${IMAGE_TAG}" >> "$GITHUB_ENV"
echo "LATEST_IMAGE_TAG=${LATEST_IMAGE_TAG}" >> "$GITHUB_ENV"
echo "GHCR_IMAGE_REPO=${GHCR_IMAGE_REPO}" >> "$GITHUB_ENV"
echo "GHCR_IMAGE_TAG=${GHCR_IMAGE_TAG}" >> "$GITHUB_ENV"
echo "GHCR_LATEST_IMAGE_TAG=${GHCR_LATEST_IMAGE_TAG}" >> "$GITHUB_ENV"
echo "PACKAGE_URL=${PACKAGE_URL}" >> "$GITHUB_ENV"

- name: Build and push
Expand All @@ -50,11 +62,15 @@ jobs:
tags: |
${{ env.IMAGE_TAG }}
${{ env.LATEST_IMAGE_TAG }}
${{ env.GHCR_IMAGE_TAG }}
${{ env.GHCR_LATEST_IMAGE_TAG }}

- name: Publish summary
run: |
echo "Images pushed:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "- ${LATEST_IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "Package:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${GHCR_IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "- ${GHCR_LATEST_IMAGE_TAG}" >> "$GITHUB_STEP_SUMMARY"
echo "GHCR package:" >> "$GITHUB_STEP_SUMMARY"
echo "- ${PACKAGE_URL}" >> "$GITHUB_STEP_SUMMARY"
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ Check ssh connectivity to nodes within a cluster
This repository builds the container image used by Kuberhealthy to run the ssh-check check.

## Image
- `docker.io/kuberhealthy/ssh-check`
- `ghcr.io/kuberhealthy/ssh-check`
- Tags: short git SHA for `main` pushes and `vX.Y.Z` for releases.
- Tags: `latest` and short git SHA for `main` pushes; `vX.Y.Z` for releases.

## Quick start
- Apply the example manifest: `kubectl apply -f healthcheck.yaml`
Expand Down
5 changes: 3 additions & 2 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ git push origin v1.2.3

The `Publish tag` GitHub Actions workflow runs on `v*` tags and validates the tag format before publishing. Use `vMAJOR.MINOR.PATCH`, such as `v1.2.3`, or a prerelease tag like `v1.2.3-rc.1`.

The workflow publishes this multi-arch image to GitHub Container Registry:
The workflow publishes these multi-arch images:

```text
docker.io/kuberhealthy/ssh-check:<tag>
ghcr.io/kuberhealthy/ssh-check:<tag>
```

Expand All @@ -22,7 +23,7 @@ The image manifest includes:
- `linux/amd64`
- `linux/arm64`

After the image is pushed, the workflow updates the example healthcheck YAML on `main` to use the released GHCR image tag.
After the image is pushed, the workflow updates the example healthcheck YAML on `main` to use the released Docker Hub image tag.

The workflow then creates or updates a GitHub release with the same semver as the tag. The release notes link to the GitHub package, and the release includes a `release-images.txt` asset listing the image and supported platforms.

Expand Down
Loading