diff --git a/deploy/crds/vms-crd.yaml b/deploy/crds/vms-crd.yaml index 0b24bd6..3e33d0b 100644 --- a/deploy/crds/vms-crd.yaml +++ b/deploy/crds/vms-crd.yaml @@ -26,7 +26,7 @@ spec: - required: - repository - path - default: { source: "ghcr.io/mnlipp/org.jdrupes.vmoperator.runner.qemu-arch:latest" } + default: { source: "ghcr.io/mnlipp/org.jdrupes.vmoperator.runner.qemu-alpine:latest" } properties: source: description: >- diff --git a/org.jdrupes.vmoperator.runner.qemu/build.gradle b/org.jdrupes.vmoperator.runner.qemu/build.gradle index ff9a257..e0fb8ca 100644 --- a/org.jdrupes.vmoperator.runner.qemu/build.gradle +++ b/org.jdrupes.vmoperator.runner.qemu/build.gradle @@ -36,14 +36,14 @@ task buildArchImage(type: Exec) { dependsOn installDist inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch' - commandLine 'podman', 'build', '-t', "${project.name}:${project.version}",\ + commandLine 'podman', 'build', '-t', "${project.name}-arch:${project.version}",\ '-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.' } task tagLatestArchImage(type: Exec) { dependsOn buildArchImage - commandLine 'podman', 'tag', "${project.name}:${project.version}",\ + commandLine 'podman', 'tag', "${project.name}-arch:${project.version}",\ "${project.name}:latest" } @@ -56,7 +56,7 @@ task pushArchImage(type: Exec) { dependsOn buildArchImage commandLine 'podman', 'push', '--tls-verify=false', \ - "localhost/${project.name}:${project.version}", \ + "localhost/${project.name}-arch:${project.version}", \ "${project.rootProject.properties['docker.registry']}" \ + "/${project.name}-arch:${project.version}" } @@ -65,13 +65,53 @@ task pushArchLatestImage(type: Exec) { dependsOn buildLatestArchImage commandLine 'podman', 'push', '--tls-verify=false', \ - "localhost/${project.name}:${project.version}", \ + "localhost/${project.name}-arch:${project.version}", \ "${project.rootProject.properties['docker.registry']}" \ + "/${project.name}-arch:latest" } +task buildAlpineImage(type: Exec) { + dependsOn installDist + inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine' + + commandLine 'podman', 'build', '-t', "${project.name}-alpine:${project.version}",\ + '-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.' +} + +task tagLatestAlpineImage(type: Exec) { + dependsOn buildAlpineImage + + commandLine 'podman', 'tag', "${project.name}-alpine:${project.version}",\ + "${project.name}-alpine:latest" +} + +task buildLatestAlpineImage { + dependsOn buildAlpineImage + dependsOn tagLatestAlpineImage +} + +task pushAlpineImage(type: Exec) { + dependsOn buildAlpineImage + + commandLine 'podman', 'push', '--tls-verify=false', \ + "localhost/${project.name}-alpine:${project.version}", \ + "${project.rootProject.properties['docker.registry']}" \ + + "/${project.name}-alpine:${project.version}" +} + +task pushAlpineLatestImage(type: Exec) { + dependsOn buildLatestAlpineImage + + commandLine 'podman', 'push', '--tls-verify=false', \ + "localhost/${project.name}-alpine:${project.version}", \ + "${project.rootProject.properties['docker.registry']}" \ + + "/${project.name}-alpine:latest" +} + task pushImages { dependsOn pushArchImage dependsOn pushArchLatestImage + dependsOn pushAlpineImage + dependsOn pushAlpineLatestImage } diff --git a/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine new file mode 100644 index 0000000..def82ef --- /dev/null +++ b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine @@ -0,0 +1,12 @@ +FROM docker.io/alpine + +RUN apk update + +RUN apk add qemu-system-x86_64 qemu-modules ovmf swtpm openjdk17 + +RUN mkdir -p /etc/qemu && echo "allow all" > /etc/qemu/bridge.conf + +COPY build/install/vm-runner.qemu /opt/vmrunner +COPY templates/* /opt/vmrunner/templates/ + +CMD ["/opt/vmrunner/bin/vm-runner.qemu"]