Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
59c382a
refactor: Cast customizations & CI
mjudeikis Mar 20, 2025
3ca0a65
vk kill itself + more logs + increased timeout
cheina97 Sep 19, 2025
5045a6a
Use GCP Artifactory to push docker images to (#12)
andrejatcastai Dec 12, 2025
44ea49c
ci: new build pipeline
cheina97 Jul 12, 2025
127f29e
Switched to a new Docker images repository
andrejatcastai Dec 15, 2025
5644aae
PVC edge improvements (#22)
anjmao Jan 13, 2026
668645d
refactor: CI cleanup
cheina97 Jan 30, 2026
678bd33
fix: liqo crdupgrade image fi
cheina97 Feb 18, 2026
d683b68
feat: watch remote node for nodeinfo and conditions
fra98 Mar 10, 2026
cd17aec
fix: unit tests
fra98 Mar 10, 2026
3532a12
fix: multiple virtualnode vpc reflection
cheina97 Mar 16, 2026
b48ba68
feat: set Omni providerID from VK
fra98 Apr 1, 2026
8b67720
feat(offloading): manage namespacemap lifecycle
fra98 Apr 15, 2026
d690f40
feat: strip cast related resources from reflected pods (#54)
varnastadeus Apr 29, 2026
a20e44b
fix(vk): forge Node with VirtualNode, ForeignCluster input (#56)
claudiolor May 21, 2026
7cd3407
Keep host ipc, host network, host pid on remote pod (#58)
anjmao May 26, 2026
c88dac8
Disable host network for edge pods (#60)
anjmao Jun 3, 2026
0463d65
feat: add DRA support (#55)
claudiolor Jun 10, 2026
20ea4de
feat: support OMNI storage classes
fra98 Jun 29, 2026
709aafc
Disable TCS on remove edge pods (#66)
anjmao Jul 9, 2026
ea87942
feat: support local storage reflection in VK (#71)
claudiolor Aug 5, 2026
82f2f74
feat: add vk affinity and nodeSelector option (#86)
fr0stylo Aug 18, 2026
c37015d
ci: add chart-pr workflow to build and publish PR Helm charts (#88)
varnastadeus Aug 19, 2026
1e35281
fix: cleanup route configuration rules even if no finalizer (#87)
varnastadeus Aug 20, 2026
726385b
chore: fix chart pr release
varnastadeus Aug 20, 2026
a0945e6
fix: disable RouteCfg and FirewallCfg status update
cheina97 Feb 23, 2026
f08a4c1
ci: fix wrong indent lint action
fra98 Aug 20, 2026
8a83ac3
fix: restore deepcopy file generation (#92)
claudiolor Sep 1, 2026
6eb6e98
chore: remove old passive-passive mechanism
cheina97 Aug 4, 2026
9daa46d
feat: support multiple gateways per remote cluster with ECMP routing
fra98 Aug 22, 2026
cc28541
chore: add gw debug utility scripts
claudiolor Aug 30, 2026
c8295ce
fix: bump nftables library to fix expr.Ct unmarshalling
claudiolor Aug 31, 2026
c9184a9
feat: add remote cluster ID label in gateway
claudiolor Sep 1, 2026
1d07677
ci: add unit tests on each PR (#98)
fra98 Sep 11, 2026
1a164bc
feat: sequential gw rollout on tmpl change (#94)
claudiolor Sep 14, 2026
8832311
feat: multiple gateways in the metrics (#96)
claudiolor Sep 15, 2026
7ec8549
ci: start pushing images to the GHCR registry as an additional publis…
spawlaczykcast Sep 23, 2026
94b4fe9
ci: add missing liqo prefix to ghcr images (#102)
spawlaczykcast Sep 23, 2026
aebbf96
consolidate gw-ext rules (#103)
varnastadeus Sep 24, 2026
574a9e2
refactor: edge-to-edge resources optimization
cheina97 Jan 13, 2026
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
252 changes: 252 additions & 0 deletions .github/workflows/chart-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
name: Chart PR release

on:
workflow_dispatch:
inputs:
pr_number:
description: 'PR number (used for chart versioning and PR comment)'
required: true
type: string

env:
REGISTRY: us-docker.pkg.dev
IMAGE_PREFIX: castai-hub/library/liqo
GHCR_REGISTRY: ghcr.io
GHCR_IMAGE_PREFIX: castai/images/liqo

jobs:
build-go:
name: Build Go image
runs-on: ubuntu-latest
environment: pr-build
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
component:
- crd-replicator
- ipam
- liqo-controller-manager
- webhook
- uninstaller
- virtual-kubelet
- metric-agent
- telemetry
- proxy
- gateway
- gateway/wireguard
- gateway/geneve
- fabric
env:
DOCKER_REGISTRY: us-docker.pkg.dev
DOCKER_ORGANIZATION: castai-hub/library/liqo
DOCKER_TAG: ${{ github.sha }}
DOCKER_PUSH: "true"
ARCHS: linux/amd64,linux/arm64
steps:
- name: Check out code
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
persist-credentials: false

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
cache-dependency-path: go.sum

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: _json_key
password: ${{ secrets.GCP_IMAGE_RELEASER_JSON_KEY }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push ${{ matrix.component }} image
run: |
chmod +x ./build/liqo/build.sh
./build/liqo/build.sh ./cmd/${{ matrix.component }}

build-standard:
name: Build standard image
runs-on: ubuntu-latest
environment: pr-build
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
component:
- cert-creator
- liqo-crd-upgrade
steps:
- name: Check out code
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
persist-credentials: false

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: _json_key
password: ${{ secrets.GCP_IMAGE_RELEASER_JSON_KEY }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-${{ matrix.component }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.component }}-buildx-

- name: Configure the build-push-action dockerfile path
id: dockerfile
run: |
if [[ -d "build/${{ matrix.component }}" ]]; then
echo "path=build/${{ matrix.component }}/Dockerfile" >> "$GITHUB_OUTPUT"
else
echo "path=build/common/Dockerfile" >> "$GITHUB_OUTPUT"
fi

- name: Build (and Publish) ${{ matrix.component }} image
uses: docker/build-push-action@v6
env:
DOCKER_BUILD_RECORD_UPLOAD: false
with:
context: .
platforms: linux/amd64
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/${{ matrix.component }}-ci:latest
${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/${{ matrix.component }}-ci:${{ github.sha }}
${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_PREFIX }}/${{ matrix.component }}-ci:latest
${{ env.GHCR_REGISTRY }}/${{ env.GHCR_IMAGE_PREFIX }}/${{ matrix.component }}-ci:${{ github.sha }}
push: true
file: ${{ steps.dockerfile.outputs.path }}
build-args: |
COMPONENT=${{ matrix.component }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new

- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

publish-chart:
name: Publish PR chart
runs-on: ubuntu-latest
environment: pr-build
needs: [build-go, build-standard]
permissions:
contents: read
packages: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# fetch-depth 0 is required for `git describe --tags` (appVersion).
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v4.2.0
with:
version: v3.17.0

- name: Login to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ghcr.io -u ${{ github.actor }} --password-stdin

- name: Package and push chart
run: |
PR_NUMBER="${{ inputs.pr_number }}"
# The commit SHA this workflow was dispatched on; used as the image tag.
# Because the liqo chart's `liqo.suffix` helper appends `-ci` to image
# repos when the tag is not a semver string, this resolves each image to
# the `<component>-ci:<sha>` build produced by the build jobs above.
IMAGE_TAG="${{ github.sha }}"
APP_VERSION="$(git describe --tags)"

# Bump the chart version with the PR number (overwritten on each run).
sed -i "s/^version:.*/version: 0.0.0-pr${PR_NUMBER}/" deployments/liqo/Chart.yaml
sed -i "s/^appVersion:.*/appVersion: \"${APP_VERSION}\"/" deployments/liqo/Chart.yaml

# Point all Liqo images to this PR's CI build.
sed -i "s/^tag:.*/tag: \"${IMAGE_TAG}\"/" deployments/liqo/values.yaml

# Update the liqo-crds subchart's appVersion so the CRD upgrade job
# image resolves to the correct CI build.
sed -i "s/^appVersion:.*/appVersion: \"${IMAGE_TAG}\"/" deployments/liqo/charts/liqo-crds/Chart.yaml

# Build the file:// subchart dependency (liqo-crds) before packaging.
helm dependency build deployments/liqo

helm package deployments/liqo
helm push liqo-0.0.0-pr${PR_NUMBER}.tgz oci://ghcr.io/${{ github.repository }}/charts

- name: Comment PR with install instructions
uses: actions/github-script@v7
with:
script: |
const prNumber = parseInt("${{ inputs.pr_number }}", 10);
const repo = `${context.repo.owner}/${context.repo.repo}`.toLowerCase();
const commitSha = "${{ github.sha }}";

// Reuse an existing comment if we already posted one, to avoid spam.
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber
});

const botComment = comments.data.find(c => c.body.includes('## Helm Chart Published'));
const body = `## Helm Chart Published

Install this PR's chart for testing:
\`\`\`bash
helm install liqo oci://ghcr.io/${repo}/charts/liqo --version 0.0.0-pr${prNumber}
\`\`\`

This chart references the Liqo CI images built for commit \`${commitSha}\`.`;

if (botComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: botComment.id,
body: body
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: body
});
}
43 changes: 0 additions & 43 deletions .github/workflows/greeting.yml

This file was deleted.

47 changes: 0 additions & 47 deletions .github/workflows/hold.yml

This file was deleted.

Loading
Loading