Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release/v3.1.x' into release/v3.x
Browse files Browse the repository at this point in the history
  • Loading branch information
mnlipp committed Jun 25, 2024
2 parents d285c17 + 7146c72 commit 92a8da1
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 90 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ jobs:
java-version: '21'
distribution: 'temurin'
- name: Push with Gradle
run: ./gradlew -Pwebsite.push.token=${{ secrets.WEBSITE_PUSH_TOKEN }} -Pdocker.registry=ghcr.io/${{ github.actor }} stage pushImages
run: ./gradlew -Pwebsite.push.token=${{ secrets.WEBSITE_PUSH_TOKEN }} -Pdocker.registry=ghcr.io/${{ github.actor }} stage publishImage
8 changes: 5 additions & 3 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ stages:
extends: .any-job
image: registry.mnl.de/org/jgrapes/jdk21-builder:v2
cache:
- key: dependencies
- key: dependencies-${CI_COMMIT_BRANCH}
policy: pull-push
paths:
- .gradle
Expand All @@ -24,7 +24,7 @@ stages:
- "*/build"
before_script:
- echo -n $CI_REGISTRY_PASSWORD | podman login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
- git switch $CI_COMMIT_REF_NAME
- git switch $(git branch -r --sort="authordate" --contains $CI_COMMIT_SHA | head -1 | sed -e 's#[^/]*/##')
- git pull
- git reset --hard $CI_COMMIT_SHA

Expand All @@ -37,8 +37,10 @@ build-jars:
publish-images:
stage: publish
extends: .gradle-job
dependencies:
- build-jars
script:
- ./gradlew -Pdocker.registry=$CI_REGISTRY_IMAGE pushImage
- ./gradlew -Pdocker.registry=$CI_REGISTRY_IMAGE publishImage

.pages-job:
extends: .any-job
Expand Down
2 changes: 1 addition & 1 deletion deploy/vmop-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spec:
containers:
- name: vm-operator
image: >-
ghcr.io/mnlipp/org.jdrupes.vmoperator.manager:3.1.1
ghcr.io/mnlipp/org.jdrupes.vmoperator.manager:3.1.2
volumeMounts:
- name: config
mountPath: /etc/opt/vmoperator
Expand Down
35 changes: 22 additions & 13 deletions org.jdrupes.vmoperator.manager/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ application {
}

project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"

task buildImage(type: Exec) {
dependsOn installDist
Expand All @@ -61,39 +62,47 @@ task pushImage(type: Exec) {
// Don't push without testing first
dependsOn test

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.gitBranch}", \
"${project.name}:${project.gitBranch}", \
"${registry}/${project.name}:${project.gitBranch}"

if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \
"${registry}/${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}"
}
}

task tagAsLatest(type: Exec) {
task tagWithVersion(type: Exec) {
dependsOn pushImage

enabled = !project.version.contains("SNAPSHOT")

commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}"
}

task tagAsLatest(type: Exec) {
dependsOn tagWithVersion

enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
|| project.rootProject.properties['docker.testRegistry'] \
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}:${project.version}",\
commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:latest"
}

task publishImage {
dependsOn pushImage
dependsOn tagWithVersion
dependsOn tagAsLatest
}

task pushForTest(type: Exec) {
dependsOn buildImage

commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.gitBranch}", \
"${project.name}:${project.gitBranch}", \
"${project.rootProject.properties['docker.testRegistry']}" \
+ "/${project.name}:test"
}
Expand Down
75 changes: 39 additions & 36 deletions org.jdrupes.vmoperator.runner.qemu/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ application {
}

project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"

task buildArchImage(type: Exec) {
task buildImageArch(type: Exec) {
dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch'

Expand All @@ -42,23 +43,26 @@ task buildArchImage(type: Exec) {
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.'
}

task pushArchImage(type: Exec) {
dependsOn buildArchImage
task pushImageArch(type: Exec) {
dependsOn buildImageArch

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.gitBranch}", \
"${project.name}-arch:${project.gitBranch}", \
"${registry}/${project.name}-arch:${project.gitBranch}"

if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \
"${registry}/${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:${project.version}"
}
}

task tagWithVersionArch(type: Exec) {
dependsOn pushImageArch

enabled = !project.version.contains("SNAPSHOT")

commandLine 'podman', 'push', \
"${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:${project.version}"
}

task tagAsLatestArch(type: Exec) {
dependsOn pushArchImage
dependsOn tagWithVersionArch

enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
Expand All @@ -67,13 +71,12 @@ task tagAsLatestArch(type: Exec) {
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}-arch:${project.version}",\
commandLine 'podman', 'push', \
"${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:latest"
}

task buildAlpineImage(type: Exec) {
task buildImageAlpine(type: Exec) {
dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine'

Expand All @@ -82,23 +85,26 @@ task buildAlpineImage(type: Exec) {
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.'
}

task pushAlpineImage(type: Exec) {
dependsOn buildAlpineImage
task pushImageAlpine(type: Exec) {
dependsOn buildImageAlpine

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.gitBranch}", \
"${registry}/${project.name}-alpine:${project.gitBranch}"

if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \
"${registry}/${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:${project.version}"
}
}

task tagWithVersionAlpine(type: Exec) {
dependsOn pushImageAlpine

enabled = !project.version.contains("SNAPSHOT")

commandLine 'podman', 'push', \
"${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:${project.version}"
}

task tagAsLatestAlpine(type: Exec) {
dependsOn pushAlpineImage
dependsOn tagWithVersionAlpine

enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
Expand All @@ -107,19 +113,16 @@ task tagAsLatestAlpine(type: Exec) {
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']

def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}-alpine:${project.version}",\
commandLine 'podman', 'push', \
"${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:latest"
}

task pushImage {
dependsOn pushArchImage
dependsOn pushAlpineImage
}

task tagAsLatest {
task publishImage {
dependsOn pushImageArch
dependsOn tagWithVersionArch
dependsOn tagAsLatestArch
dependsOn pushImageAlpine
dependsOn tagWithVersionAlpine
dependsOn tagAsLatestAlpine
}

56 changes: 23 additions & 33 deletions spice-squid/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,36 @@ plugins {
dependencies {
}

project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"

task buildImage(type: Exec) {
inputs.files 'Containerfile'

commandLine 'podman', 'build', '--pull',
'-t', "${project.name}:${project.version}",\
'-t', "${project.name}:${project.gitBranch}",\
'-f', 'Containerfile', '.'
}

task tagLatestImage(type: Exec) {
dependsOn buildImage

enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
|| project.rootProject.properties['docker.testRegistry'] \
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']

commandLine 'podman', 'tag', "${project.name}:${project.version}",\
"${project.name}:latest"
}

task buildLatestImage {
dependsOn buildImage
dependsOn tagLatestImage
}

task pushImage(type: Exec) {
dependsOn buildImage

commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}:${project.version}"
"${project.name}:${project.gitBranch}", \
"${registry}/${project.name}:${project.gitBranch}"
}
task tagWithVersion(type: Exec) {
dependsOn pushImage

task pushLatestImage(type: Exec) {
dependsOn buildLatestImage
enabled = !project.version.contains("SNAPSHOT")

commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}"
}

task tagAsLatest(type: Exec) {
dependsOn tagWithVersion

enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
Expand All @@ -51,18 +43,16 @@ task pushLatestImage(type: Exec) {
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']

commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}:latest"
commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:latest"
}

task pushImages {
// Don't push without testing first
task publishImage {
dependsOn pushImage
dependsOn pushLatestImage
dependsOn tagWithVersion
dependsOn tagAsLatest
}

test {
enabled = project.hasProperty("k8s.testCluster")

Expand Down
6 changes: 3 additions & 3 deletions webpages/vm-operator/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ based VMs in Kubernetes pods.

The image used for the VM pods combines Qemu and a control program
for starting and managing the Qemu process. This application is called
"[the runner](runner.md)".
"[the runner](runner.html)".

While you can deploy a runner manually (or with the help of some
helm templates), the preferred way is to deploy "[the manager](manager.md)"
helm templates), the preferred way is to deploy "[the manager](manager.html)"
application which acts as a Kubernetes operator for runners
and thus the VMs.

If you just want to try out things, you can skip the remainder of this
page and proceed to "[the manager](manager.md)".
page and proceed to "[the manager](manager.html)".

## Motivation
The project was triggered by a remark in the discussion about RedHat
Expand Down

0 comments on commit 92a8da1

Please sign in to comment.