From c8b85b882da29f6a65ae5ba718198f2ad0baaec3 Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" <1446020+mnlipp@users.noreply.github.com> Date: Sun, 22 Oct 2023 14:19:33 +0200 Subject: [PATCH] Feature/web gui (#13) Improve build and distribution. --- dev-example/kustomization.yaml | 5 ++++- org.jdrupes.vmoperator.manager/build.gradle | 22 +++++++++++++++---- .../vmoperator/manager/BasicTests.java | 13 +++++------ .../build.gradle | 16 ++++++++++++++ 4 files changed, 44 insertions(+), 12 deletions(-) diff --git a/dev-example/kustomization.yaml b/dev-example/kustomization.yaml index 142aff3..5bb4a62 100644 --- a/dev-example/kustomization.yaml +++ b/dev-example/kustomization.yaml @@ -43,7 +43,10 @@ patches: patch: |- - op: replace path: /spec/template/spec/containers/0/image - value: docker-registry.lan.mnl.de/vmoperator/org.jdrupes.vmoperator.manager:latest + value: docker-registry.lan.mnl.de/vmoperator/org.jdrupes.vmoperator.manager:test + - op: replace + path: /spec/template/spec/containers/0/imagePullPolicy + value: Always - op: replace path: /spec/replicas value: 0 diff --git a/org.jdrupes.vmoperator.manager/build.gradle b/org.jdrupes.vmoperator.manager/build.gradle index 902be49..c112737 100644 --- a/org.jdrupes.vmoperator.manager/build.gradle +++ b/org.jdrupes.vmoperator.manager/build.gradle @@ -57,6 +57,10 @@ task buildImage(type: Exec) { task tagLatestImage(type: Exec) { dependsOn buildImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'tag', "${project.name}:${project.version}",\ "${project.name}:latest" } @@ -78,20 +82,30 @@ task pushImage(type: Exec) { task pushLatestImage(type: Exec) { dependsOn buildLatestImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'push', '--tls-verify=false', \ "localhost/${project.name}:${project.version}", \ "${project.rootProject.properties['docker.registry']}" \ + "/${project.name}:latest" } -task pushForTest { - dependsOn pushImage - dependsOn pushLatestImage +task pushForTest(type: Exec) { + dependsOn buildImage + + commandLine 'podman', 'push', '--tls-verify=false', \ + "localhost/${project.name}:${project.version}", \ + "${project.rootProject.properties['docker.registry']}" \ + + "/${project.name}:test" } task pushImages { + // Don't push without testing first dependsOn test - dependsOn pushForTest + dependsOn pushImage + dependsOn pushLatestImage } test { diff --git a/org.jdrupes.vmoperator.manager/test/org/jdrupes/vmoperator/manager/BasicTests.java b/org.jdrupes.vmoperator.manager/test/org/jdrupes/vmoperator/manager/BasicTests.java index 532a25a..26eb387 100644 --- a/org.jdrupes.vmoperator.manager/test/org/jdrupes/vmoperator/manager/BasicTests.java +++ b/org.jdrupes.vmoperator.manager/test/org/jdrupes/vmoperator/manager/BasicTests.java @@ -1,21 +1,20 @@ package org.jdrupes.vmoperator.manager; -import static org.junit.jupiter.api.Assertions.*; - +import io.fabric8.kubernetes.client.Config; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClientBuilder; +import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Map; import org.junit.jupiter.api.AfterAll; +import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; -import io.fabric8.kubernetes.client.KubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClientBuilder; -import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext; -import io.fabric8.kubernetes.client.Config; class BasicTests { @@ -41,7 +40,7 @@ class BasicTests { .inNamespace("vmop-dev"); resourcesInNamespace.withName("unittest-vm").delete(); - // Update pod by scaling deployment + // Update manager pod by scaling deployment client.apps().deployments().inNamespace("vmop-dev") .withName("vm-operator").scale(0); client.apps().deployments().inNamespace("vmop-dev") diff --git a/org.jdrupes.vmoperator.runner.qemu/build.gradle b/org.jdrupes.vmoperator.runner.qemu/build.gradle index 9221ba7..ec7de7f 100644 --- a/org.jdrupes.vmoperator.runner.qemu/build.gradle +++ b/org.jdrupes.vmoperator.runner.qemu/build.gradle @@ -42,6 +42,10 @@ task buildArchImage(type: Exec) { task tagLatestArchImage(type: Exec) { dependsOn buildArchImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'tag', "${project.name}-arch:${project.version}",\ "${project.name}-arch:latest" } @@ -63,6 +67,10 @@ task pushArchImage(type: Exec) { task pushArchLatestImage(type: Exec) { dependsOn buildLatestArchImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'push', '--tls-verify=false', \ "localhost/${project.name}-arch:${project.version}", \ "${project.rootProject.properties['docker.registry']}" \ @@ -80,6 +88,10 @@ task buildAlpineImage(type: Exec) { task tagLatestAlpineImage(type: Exec) { dependsOn buildAlpineImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'tag', "${project.name}-alpine:${project.version}",\ "${project.name}-alpine:latest" } @@ -101,6 +113,10 @@ task pushAlpineImage(type: Exec) { task pushAlpineLatestImage(type: Exec) { dependsOn buildLatestAlpineImage + enabled = !project.version.contains("SNAPSHOT") + && !project.version.contains("alpha") \ + && !project.version.contains("beta") \ + commandLine 'podman', 'push', '--tls-verify=false', \ "localhost/${project.name}-alpine:${project.version}", \ "${project.rootProject.properties['docker.registry']}" \