Compare commits

..

41 commits

Author SHA1 Message Date
18f2ab51d1 feat(docker-image)!: Update quay.io/containerdisks/ubuntu Docker tag to v24 2025-05-06 15:13:42 +00:00
afb0db1f15 changed namespace 2025-05-06 16:47:44 +02:00
57de4fd2e6 change specs 2025-05-06 16:26:32 +02:00
2f8a63eb74 added another vm 2025-05-06 16:23:26 +02:00
8a1dcefe44 added alpine debug pod 2025-05-05 19:30:46 +02:00
9fc1f8acc3 certificate failed to verify 2025-05-05 17:40:42 +02:00
69d3c9bbad wrong url 2025-05-05 17:31:27 +02:00
3edc01b5f6 openshift unable to use this variable to spawn DV 2025-05-05 17:17:37 +02:00
39da3e0cf7 changed variable to hardcoded value 2025-05-05 17:06:15 +02:00
1ec6b25b76 set name requirement 2025-05-05 17:01:24 +02:00
67e8e5c0da you guessed it. More quotes. 2025-05-05 16:46:20 +02:00
160759dbd2 MORE QUOTES 2025-05-05 16:26:04 +02:00
95c0ab6451 added more quotes cause v1 cant handle it 2025-05-05 16:20:51 +02:00
1ce69cf11c added quote 2025-05-05 16:18:19 +02:00
46c7522fc0 used more speicifc template 2025-05-05 16:13:39 +02:00
fe10a49592 forgot " 2025-05-05 15:11:31 +02:00
14589c1319 changed kustomization 2025-05-05 15:09:34 +02:00
a8f9431e05 combines dv and template yaml 2025-05-05 15:07:42 +02:00
f6894ece74
use /app 2025-05-05 11:55:12 +02:00
6b7d7987b5
use targetNamespace 2025-05-05 11:52:35 +02:00
Phoenix
521eb0b8cc keep pvc 2025-05-05 11:45:29 +02:00
7998d9e9a3
fix bjw-s namespace 2025-05-01 23:09:44 +02:00
42c3daf081
moved bjw-s helmrepository 2025-05-01 23:01:05 +02:00
9147a76b4f specify port instead of protocol 2025-04-30 19:54:19 +02:00
2e0fb83385 changed uri 2025-04-30 19:54:19 +02:00
2eed2ca5cc Delete templates/image-server/route/http 2025-04-30 16:23:22 +00:00
5cb9088078 forgot yaml extension 2025-04-30 18:21:58 +02:00
47716185a0 changed port 2025-04-30 17:56:17 +02:00
26244b5df8 added http route 2025-04-30 17:47:18 +02:00
241d06efd4 remove https 2025-04-30 17:29:32 +02:00
745243103e Changed interval rate 2025-04-30 16:59:56 +02:00
5e984efce5 deleted storageclass 2025-04-30 16:44:37 +02:00
6c434aba0f changed uri 2025-04-30 13:01:48 +02:00
298fdc6296 remove storage class 2025-04-30 12:46:18 +02:00
2b363b60e6 changed nginx uri and file name 2025-04-30 12:38:49 +02:00
0b8d38cc84 changed parameter name 2025-04-30 12:02:20 +02:00
38bd40b2ec deleted OCI helmchart type 2025-04-30 11:57:36 +02:00
d73a595bef changed metadata name due to error 2025-04-30 11:54:35 +02:00
d21846d35a added proper path 2025-04-30 11:49:11 +02:00
add151c934 added suffix for path. Flux couldnt find Ks file 2025-04-30 11:42:56 +02:00
3f1180edae Added Template and nginx for Image-hosting 2025-04-30 11:37:24 +02:00
15 changed files with 341 additions and 4 deletions

View file

@ -0,0 +1,14 @@
apiVersion: v1
kind: Pod
metadata:
name: alpine-test
namespace: ${TENANT_NAMESPACE}
spec:
containers:
- name: alpine
image: alpine:latest
command: ["/bin/sh"]
args: ["-c", "while true; do sleep 3600; done"]
stdin: true
tty: true
restartPolicy: Never

18
container/ks-debug.yaml Normal file
View file

@ -0,0 +1,18 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app debug
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./container/debug
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -5,4 +5,10 @@ resources:
- repos/ks.yaml
- echo-server/ks.yaml
- ubuntu-vm-1/ks.yaml
- ubuntu-vm-2/ks.yaml
- ubuntu-vm-2/ks.yaml
- ubuntu-vm-3/ks.yaml
- container/ks-debug.yaml
- templates/image-server/ks-nginx.yaml
- templates/image-server/ks-pvc.yaml
- templates/image-server/ks-route.yaml
- templates/windowsserver/ks-flavor.yaml

9
repos/helm/bitnami.yaml Normal file
View file

@ -0,0 +1,9 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: bitnami
namespace: ${TENANT_NAMESPACE}
spec:
type: oci
interval: 60m
url: oci://registry-1.docker.io/bitnamicharts

View file

@ -4,9 +4,8 @@ apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: bjw-s
namespace: ${TENANT_NAMESPACE}-ns
namespace: ${TENANT_NAMESPACE}
spec:
type: oci
interval: 5m
url: oci://ghcr.io/bjw-s/helm
url: https://bjw-s-labs.github.io/helm-charts

View file

@ -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: ./templates/image-server/nginx
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -0,0 +1,19 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app pvc
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./templates/image-server/pvc
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
targetNamespace: ${TENANT_NAMESPACE}
timeout: 5m

View file

@ -0,0 +1,18 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app route
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./templates/image-server/route
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -0,0 +1,31 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: nginx
namespace: ${TENANT_NAMESPACE}
spec:
serviceAccountName: ${TECHNICAL_ACCOUNT}
interval: 10m
chart:
spec:
chart: nginx
version: 19.1.1
sourceRef:
kind: HelmRepository
name: bitnami
namespace: ${TENANT_NAMESPACE}
values:
service:
type: ClusterIP
ports:
http: 8080
ingress:
enabled: true
hostname: 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: /app

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${TENANT_NAMESPACE}-image-storage
annotations:
helm.sh/resource-policy: keep
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 120Gi

View file

@ -0,0 +1,14 @@
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: nginx
namespace: ${TENANT_NAMESPACE}
spec:
to:
kind: Service
name: nginx
port:
targetPort: 8080
tls:
termination: edge
insecureEdgeTerminationPolicy: Allow

View file

@ -0,0 +1,95 @@
apiVersion: template.openshift.io/v1
kind: Template
metadata:
name: windows-server-2022-small
namespace: '${TENANT_NAMESPACE}'
labels:
template.kubevirt.io/type: 'vm'
os.template.kubevirt.io/win2k22: 'true'
workload.template.kubevirt.io/server: 'true'
annotations:
name.os.template.kubevirt.io/win2k22: Windows Server 2022
description: Windows Server 2022 VM template (Small)
openshift.io/display-name: Windows Server 2022
iconClass: icon-windows
objects:
- apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-server-demo
annotations:
description: Windows Server 2022 VM Demo
labels:
app: windows-server-demo
vm.kubevirt.io/template: 'windows-server-2022-template'
os.template.kubevirt.io/win2k22: 'true'
spec:
running: false
template:
metadata:
annotations:
vm.kubevirt.io/flavor: small
vm.kubevirt.io/os: win2k22
vm.kubevirt.io/workload: server
labels:
kubevirt.io/domain: windows-server-demo
kubevirt.io/size: small
spec:
domain:
cpu:
cores: 2
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: rootdisk
interfaces:
- masquerade: {}
model: virtio
name: default
networkInterfaceMultiqueue: true
rng: {}
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi: {}
memory:
guest: 4Gi
hostname: windows-server-demo
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk
dataVolume:
name: windows-server-datavolume-small
- apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: windows-server-datavolume-small
namespace: '${TENANT_NAMESPACE}'
spec:
source:
http:
url: http://nginx.demo.pub.ai-2.kvant.cloud.apps.ai-2.kvant.cloud/win2022.qcow2
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: '${PVC_SIZE}'
parameters:
#- name: IMAGE_URL
# description: Public or internal HTTP(S) URL to a sysprepped Windows .qcow2 image
# required: true
# value: https://nginx.demo.pub.ai-2.kvant.cloud.apps.ai-2.kvant.cloud/win2022.qcow2
- name: PVC_SIZE
description: Size of the root disk PVC
required: true
value: 120Gi

View file

@ -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: ./templates/windowsserver/flavor
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

18
ubuntu-vm-3/ks.yaml Normal file
View file

@ -0,0 +1,18 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ubuntu-vm-3
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./ubuntu-vm-3/ubuntu
prune: true
sourceRef:
kind: GitRepository
name: tenant-repos
wait: false
interval: 30m
retryInterval: 1m
timeout: 5m

View file

@ -0,0 +1,48 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: ubuntu-vm-3
namespace: demo
spec:
running: true
template:
metadata:
labels:
kubevirt.io/domain: ubuntu-vm-3
spec:
domain:
cpu:
cores: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
resources:
requests:
memory: 2Gi
cpu: 1
limits:
memory: 2Gi
cpu: 1
memory:
guest: 2Gi
volumes:
- name: containerdisk
containerDisk:
image: quay.io/containerdisks/ubuntu:24.04
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
hostname: ubuntu-vm-3
ssh_pwauth: True
users:
- name: ubuntu
ssh-authorized-keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPqlhZW/pPLK8zENt3o6tgl0QVinhGAF1sHvajqq3UvI ubuntu
sudo: ['ALL=(ALL) NOPASSWD:ALL']
shell: /bin/bash