From 3f1180edae1faae348df6db709a2796c4e8ba574 Mon Sep 17 00:00:00 2001 From: "maximilian.bartz" Date: Wed, 30 Apr 2025 11:37:24 +0200 Subject: [PATCH] Added Template and nginx for Image-hosting --- kustomization.yaml | 6 ++- repos/helm/nginx.yaml | 9 ++++ templates/image-server/ks-nginx.yaml | 18 +++++++ templates/image-server/ks-pvc.yaml | 18 +++++++ templates/image-server/nginx/helmrelease.yaml | 35 +++++++++++++ templates/image-server/pvc/image-storage.yaml | 12 +++++ templates/windowsserver/dv/windows-1-dv.yaml | 16 ++++++ templates/windowsserver/flavor/small.yaml | 50 +++++++++++++++++++ templates/windowsserver/ks-dv.yaml | 18 +++++++ templates/windowsserver/ks-flavor.yaml | 18 +++++++ 10 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 repos/helm/nginx.yaml create mode 100644 templates/image-server/ks-nginx.yaml create mode 100644 templates/image-server/ks-pvc.yaml create mode 100644 templates/image-server/nginx/helmrelease.yaml create mode 100644 templates/image-server/pvc/image-storage.yaml create mode 100644 templates/windowsserver/dv/windows-1-dv.yaml create mode 100644 templates/windowsserver/flavor/small.yaml create mode 100644 templates/windowsserver/ks-dv.yaml create mode 100644 templates/windowsserver/ks-flavor.yaml diff --git a/kustomization.yaml b/kustomization.yaml index c80a6dd..ccaf633 100644 --- a/kustomization.yaml +++ b/kustomization.yaml @@ -5,4 +5,8 @@ resources: - repos/ks.yaml - echo-server/ks.yaml - ubuntu-vm-1/ks.yaml - - ubuntu-vm-2/ks.yaml \ No newline at end of file + - ubuntu-vm-2/ks.yaml + - templates/image-server/ks-nginx.yaml + - templates/image-server/ks-pvc.yaml + - templates/windowsserver/ks-dv.yaml + - templates/windowsserver/ks-flavor.yaml \ No newline at end of file diff --git a/repos/helm/nginx.yaml b/repos/helm/nginx.yaml new file mode 100644 index 0000000..ed2e14c --- /dev/null +++ b/repos/helm/nginx.yaml @@ -0,0 +1,9 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRepository +metadata: + name: bitnami + namespace: ${TENANT_NAMESPACE}-ns +spec: + type: oci + interval: 5m + url: https://charts.bitnami.com/bitnami \ No newline at end of file diff --git a/templates/image-server/ks-nginx.yaml b/templates/image-server/ks-nginx.yaml new file mode 100644 index 0000000..4d60695 --- /dev/null +++ b/templates/image-server/ks-nginx.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app nginx + namespace: ${TENANT_NAMESPACE} +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./nginx + prune: true + sourceRef: + kind: GitRepository + name: tenant-repos + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/templates/image-server/ks-pvc.yaml b/templates/image-server/ks-pvc.yaml new file mode 100644 index 0000000..d8d36f3 --- /dev/null +++ b/templates/image-server/ks-pvc.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app pvc + namespace: ${TENANT_NAMESPACE} +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./pvc + prune: true + sourceRef: + kind: GitRepository + name: tenant-repos + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/templates/image-server/nginx/helmrelease.yaml b/templates/image-server/nginx/helmrelease.yaml new file mode 100644 index 0000000..6d93af4 --- /dev/null +++ b/templates/image-server/nginx/helmrelease.yaml @@ -0,0 +1,35 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: ${TENANT_NAMESPACE}-nginx + namespace: ${TENANT_NAMESPACE} +spec: + serviceAccountName: ${TECHNICAL_ACCOUNT} + interval: 5m + chart: + spec: + chart: nginx + version: 20.0.0 + sourceRef: + kind: HelmRepository + name: bitnami + namespace: ${TENANT_NAMESPACE} + values: + service: + type: ClusterIP + ports: + http: 80 + https: 443 + ingress: + enabled: true + hostname: nginx.${TENANT_DOMAIN}.apps.ai-2.kvant.cloud + tls: + - hosts: + - nginx.${TENANT_DOMAIN}.apps.ai-2.kvant.cloud + extraVolumes: + - name: ${TENANT_NAMESPACE}-image-storage + persistentVolumeClaim: + claimName: ${TENANT_NAMESPACE}-image-storage + extraVolumeMounts: + - name: ${TENANT_NAMESPACE}-image-storage + mountPath: /usr/share/nginx/html \ No newline at end of file diff --git a/templates/image-server/pvc/image-storage.yaml b/templates/image-server/pvc/image-storage.yaml new file mode 100644 index 0000000..b3d7960 --- /dev/null +++ b/templates/image-server/pvc/image-storage.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: ${TENANT_NAMESPACE}-image-storage + namespace: ${TENANT_NAMESPACE} +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 120Gi + storageClassName: ocs-storagecluster-ceph-rbd \ No newline at end of file diff --git a/templates/windowsserver/dv/windows-1-dv.yaml b/templates/windowsserver/dv/windows-1-dv.yaml new file mode 100644 index 0000000..ec23f90 --- /dev/null +++ b/templates/windowsserver/dv/windows-1-dv.yaml @@ -0,0 +1,16 @@ +apiVersion: cdi.kubevirt.io/v1beta1 +kind: DataVolume +metadata: + name: windows-server-datavolume + namespace: ${TENANT_NAMESPACE} +spec: + source: + http: + url: "http://nginx.${TENANT_DOMAIN}.apps.ai-2.kvant.cloud/windows-server-2022.qcow2" + pvc: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 120Gi + storageClassName: ocs-storagecluster-ceph-rbd \ No newline at end of file diff --git a/templates/windowsserver/flavor/small.yaml b/templates/windowsserver/flavor/small.yaml new file mode 100644 index 0000000..99ff390 --- /dev/null +++ b/templates/windowsserver/flavor/small.yaml @@ -0,0 +1,50 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: windows-server-2022-vm-template + namespace: ${TENANT_NAMESPACE} + annotations: + openshift.io/display-name: "Windows Server 2022 VM" + openshift.io/documentation-url: "https://docs.microsoft.com/en-us/windows-server/" + description: "Template for deploying a Windows Server 2022 Virtual Machine on OpenShift with KubeVirt." + tags: virtualmachine,windows,server,2022 +objects: + - apiVersion: kubevirt.io/v1 + kind: VirtualMachine + metadata: + name: ${VM_NAME} + namespace: ${TENANT_NAMESPACE} + labels: + app: windows-server + spec: + running: false + template: + metadata: + labels: + kubevirt.io/domain: ${VM_NAME} + spec: + domain: + cpu: + cores: 4 + devices: + disks: + - name: rootdisk + disk: + bus: virtio + memory: + guest: 8Gi + networks: + - name: default + pod: {} + volumes: + - name: rootdisk + persistentVolumeClaim: + claimName: windows-server-datavolume +parameters: + - name: windows-server-2022-small + description: Name of the Virtual Machine + required: true + - name: NAMESPACE + description: Namespace where to deploy + required: true + value: ${TENANT_NAMESPACE} \ No newline at end of file diff --git a/templates/windowsserver/ks-dv.yaml b/templates/windowsserver/ks-dv.yaml new file mode 100644 index 0000000..395913b --- /dev/null +++ b/templates/windowsserver/ks-dv.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app dv + namespace: ${TENANT_NAMESPACE} +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./dv + prune: true + sourceRef: + kind: GitRepository + name: tenant-repos + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/templates/windowsserver/ks-flavor.yaml b/templates/windowsserver/ks-flavor.yaml new file mode 100644 index 0000000..ffa8a83 --- /dev/null +++ b/templates/windowsserver/ks-flavor.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app flavor + namespace: ${TENANT_NAMESPACE} +spec: + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./flavor + prune: true + sourceRef: + kind: GitRepository + name: tenant-repos + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m