Compare commits

..

132 commits

Author SHA1 Message Date
0e0712ea4e Merge branch 'main' of https://git.kvant.cloud/phoenix-oss/tenant-demo 2025-07-30 16:18:14 +02:00
1e0cfb816f sdffdsfd 2025-07-30 16:17:40 +02:00
4f026307b6 changed data source 2025-07-30 14:21:53 +02:00
7125bd6626 reduce data disk pvc 2025-07-30 14:02:15 +02:00
13b6e6f3ae changed URL 2025-07-30 13:52:24 +02:00
5f1f60b786 Update kustomization.yaml 2025-07-30 11:47:29 +00:00
88a93c67d3 oisndfoisf 2025-07-30 13:44:53 +02:00
1c7e58e740 sdfsdf 2025-07-30 12:31:08 +02:00
0256ce589a dfhdhdhf 2025-07-30 12:28:50 +02:00
6d1b9906a5 drgrrht 2025-07-30 12:00:20 +02:00
1fc30168ef jhdgfiudfbnuifdnbui 2025-07-30 11:57:44 +02:00
1139c70acb gfiweubfiwe 2025-07-30 11:50:22 +02:00
0154dc0dbd yeah222 2025-07-30 11:25:13 +02:00
ed5db93338 yeahhh 2025-07-30 11:19:53 +02:00
d0fba712d4 new test VM for costumer presentation 2025-07-30 11:15:18 +02:00
707b1d0bd8
chore(postgres): add more comments explaining each section 2025-07-24 15:49:17 +02:00
001fc5a5de
chore(postgres): update storage class to ibm-spectrum-scale-fileset 2025-07-24 15:39:53 +02:00
a49dd4de89
chore(postgres): add link to values.yaml for reference 2025-07-24 15:37:26 +02:00
d3b650eff2
chore(postgres): enable ks 2025-07-24 14:35:15 +02:00
831c25c09e
feat(postgres): add demo cluster 2025-07-24 14:33:30 +02:00
b6e8ec3b0e
chore(repos): add cloudnative-pg 2025-07-24 14:11:54 +02:00
ad99d6cfbd
chore: add .gitignore 2025-07-24 14:11:22 +02:00
1738825686
chore: add .gitattributes 2025-07-24 14:10:58 +02:00
285cf3f94f Remove test connectivity 2025-07-23 12:28:24 +02:00
73ee627f99 Add overlay lan 2025-07-22 14:39:27 +02:00
48fbc45319 Add overlay lan 2025-07-22 14:37:22 +02:00
7a00f2dac7 Add overlay lan 2025-07-22 14:22:17 +02:00
7a9b3176e8 Add overlay lan 2025-07-22 14:21:11 +02:00
46b0108828 Remove obsolete apps 2025-07-22 13:20:26 +02:00
5db658f639 Add test-connectivity 2025-07-22 13:12:49 +02:00
c84c1fcd78 Add test-connectivity 2025-07-22 13:02:04 +02:00
fb1c82659f Update kustomization 2025-07-22 12:50:57 +02:00
b15d8e6882 changed NAD to static to test 2025-07-22 12:16:37 +02:00
f76153ff5d new test of fortigate for KSD 2025-07-22 10:47:20 +02:00
9980d50b07 test with masq 2025-07-09 12:34:37 +02:00
6a719ccdc8 set SB to false 2025-07-09 12:08:25 +02:00
516c1bd034 added secure boot again 2025-07-09 12:07:05 +02:00
da7f7f73c1 added object 2025-07-09 12:02:58 +02:00
410cb99173 change port and add lb 2025-07-09 12:00:51 +02:00
4cf5bfcceb mutlus required 2025-07-08 17:58:30 +02:00
070ef198ed add networks 2025-07-08 17:50:44 +02:00
1e611e5621 added network defs 2025-07-08 17:40:47 +02:00
bd27459945 revert changes 2025-07-08 17:31:31 +02:00
8e7ea57673 multi interface test 2025-07-08 16:57:00 +02:00
1a44751d94 comment out secretref 2025-07-08 11:23:52 +02:00
32ff5115f0 change port and change https to http in URL 2025-07-04 13:48:07 +02:00
9532ba8fe8
Resolve conflict 2025-07-04 13:16:51 +02:00
883d8152b8
Use ip 2025-07-04 13:11:34 +02:00
284040d065
Use lb 2025-07-04 13:09:37 +02:00
de9f1d5014
Set proper domain 2025-07-04 13:01:28 +02:00
633f1ca564
Set external ingress classname for nginx 2025-07-04 12:59:34 +02:00
98ee757f94 changed secret reference to Old CDI format 2025-07-02 15:39:53 +02:00
eeaece034f added s3 secret base64 encoded and S3 Firewall 2025-07-02 15:18:01 +02:00
d5f8404835 changed to nginx image 2025-06-30 15:44:12 +02:00
b30d768472 forgot to change app name in ks file 2025-06-30 15:39:02 +02:00
8862ff90eb Added firewall test deploy from S3 Bucket 2025-06-30 11:48:40 +02:00
628d1de0e3 removed unneccessary settings and SMM 2025-06-25 11:09:35 +02:00
4ac200e1dc Added fortios to VM for testing 2025-06-25 11:01:17 +02:00
ad92d3393a define secure boot boolean 2025-06-24 16:31:18 +02:00
49c60fe87e Changed back to original code 2025-06-24 16:27:11 +02:00
be88f635f1 changed smm to enabled (Secureboot) 2025-06-24 12:20:36 +02:00
1118c89f66 change to match redhat documentation 2025-06-24 12:15:24 +02:00
7134c2d905 wrong volume name 2025-06-24 12:07:14 +02:00
989a3467be comment out driver disk 2025-06-24 12:05:27 +02:00
dc6e4274dd changed bus type again 2025-06-24 12:02:01 +02:00
29d8d2fed2 Issue with Datasource 2025-06-24 11:51:08 +02:00
631b4a1ede changed running strategy and changed labels 2025-06-24 10:52:13 +02:00
84bd7195fc delete k record vm 1 2025-06-24 10:45:11 +02:00
1b8a324f7e added datasource 2025-06-02 12:43:21 +02:00
c32ae8b40a removed old method and added new test vm 2025-05-30 12:41:29 +02:00
4c5a76347d enable smm 2025-05-28 15:52:26 +02:00
64458e5bad smm disable 2025-05-28 15:50:38 +02:00
4d2924f7d4 improvements 2025-05-28 15:07:50 +02:00
63019b6529 put into wrong category 2025-05-28 15:01:45 +02:00
bfd039dd32 indent even better 2025-05-28 14:58:00 +02:00
55105e3704 indent better 2025-05-28 14:55:08 +02:00
aacdc46fb0 indent 2025-05-28 14:51:35 +02:00
387d3e65bf remove model 2025-05-28 14:47:23 +02:00
bd1784429c added efi bootloader 2025-05-28 14:46:02 +02:00
99076daf8e rootdisk to virtio 2025-05-28 14:11:27 +02:00
ca3e37e667 changed volume mode 2025-05-28 13:10:59 +02:00
87de70c51e block storage not supported on AI 2 2025-05-28 13:06:26 +02:00
5e7cad0edc larger rootdisk size 2025-05-28 12:49:42 +02:00
78d1e0d3ab Increase rootdisk size 2025-05-28 12:37:01 +02:00
0f54f22879 comment out disk for cloud init 2025-05-28 12:01:17 +02:00
1604b7e613 indent 2025-05-28 11:58:32 +02:00
9b64dfad0b mistake in disc allocation 2025-05-28 11:53:28 +02:00
86f10cbd6d changed label 2025-05-28 11:46:58 +02:00
6a78fbf5c0 Added Kustomizations 2025-05-28 11:45:59 +02:00
4fda3a9eff Added New VM and Load Balancer 2025-05-28 09:56:07 +02:00
d638ec4c45 changed parameter to values 2025-05-12 15:02:32 +02:00
e2fb066279 added windows machine via flux 2025-05-12 14:57:27 +02:00
6abfc970df changed image 2025-05-09 12:47:52 +02:00
1f600af0f4 added new image 2025-05-08 18:14:39 +02:00
364d47707c change variable again 2025-05-08 12:54:21 +02:00
029664c6f7 change variable 2025-05-08 12:52:13 +02:00
a9df0a48c6 changed name variable to value 2025-05-08 12:47:39 +02:00
65c809bb44 changed label to be string rather than variable 2025-05-08 12:42:15 +02:00
70f0098dbd changed app name 2025-05-08 12:39:14 +02:00
cebdd2ad2c added template provided by redhat 2025-05-08 12:35:31 +02:00
752a56fa4e delete ubuntu 3 and echo server 2025-05-08 11:59:27 +02: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
46 changed files with 1245 additions and 175 deletions

3
.gitattributes vendored Normal file
View file

@ -0,0 +1,3 @@
*.sh text eol=lf
*.yml text eol=lf
*.yaml text eol=lf

33
.gitignore vendored Normal file
View file

@ -0,0 +1,33 @@
# Eclipse
.project
.classpath
.settings/
bin/
# IntelliJ
.idea
*.ipr
*.iml
*.iws
# NetBeans
nb-configuration.xml
# Visual Studio Code
.vscode
.factorypath
# OSX
.DS_Store
# Vim
*.swp
*.swo
# patch
*.orig
*.rej
# Local environment
.env

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

View file

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

View file

@ -1,13 +1,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app dv
name: &app debug
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./templates/windowsserver/dv
path: ./container/debug
prune: true
sourceRef:
kind: GitRepository

View file

@ -1,103 +0,0 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app echo-server
spec:
serviceAccountName: ${TECHNICAL_ACCOUNT}
interval: 30m
chart:
spec:
chart: app-template
version: 3.2.1
sourceRef:
kind: HelmRepository
name: bjw-s
namespace: ${TENANT_NAMESPACE}
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
controllers:
echo-server:
replicas: 2
strategy: RollingUpdate
containers:
app:
image:
repository: ghcr.io/mendhak/http-https-echo
tag: 33
env:
HTTP_PORT: &port 8080
LOG_WITHOUT_NEWLINE: true
LOG_IGNORE_PATH: /healthz
PROMETHEUS_ENABLED: true
probes:
liveness: &probes
enabled: true
custom: true
spec:
httpGet:
path: /healthz
port: *port
initialDelaySeconds: 0
periodSeconds: 10
timeoutSeconds: 1
failureThreshold: 3
readiness: *probes
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities: { drop: ["ALL"] }
seccompProfile:
type: RuntimeDefault
resources:
requests:
cpu: 10m
memory: 64Mi
limits:
memory: 64Mi
cpu: 100m
defaultPodOptions:
securityContext:
runAsNonRoot: true
seccompProfile: { type: RuntimeDefault }
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app.kubernetes.io/name: *app
service:
app:
controller: echo-server
ports:
http:
port: *port
serviceMonitor:
app:
serviceName: echo-server
endpoints:
- port: http
scheme: http
path: /metrics
interval: 1m
scrapeTimeout: 10s
ingress:
app:
className: external
hosts:
- host: "{{ .Release.Name }}-${TENANT_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http

18
firewall-s3/ks-vm.yaml Normal file
View file

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

View file

@ -0,0 +1,30 @@
---
apiVersion: v1
kind: Service
metadata:
name: fortigate-lb
namespace: ${TENANT_NAMESPACE}
labels:
app.kubernetes.io/component: fortigate-lb
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- port: 4500
name: ipsec-nat
targetPort: 4500
protocol: UDP
- port: 500
name: key-management
targetPort: 500
protocol: UDP
#- port: 22
# name: ssh
# targetPort: 22
# protocol: TCP
- port: 443
name: https
targetPort: 443
protocol: TCP
selector:
kubevirt.io/domain: fortigate-ksd

View file

@ -0,0 +1,20 @@
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: lan-net
namespace: ${TENANT_NAMESPACE}
spec:
config: '{
"cniVersion": "0.3.1",
"type": "bridge",
"bridge": "br-lan",
"ipam": {
"type": "static",
"addresses": [
{
"address": "172.168.100.0/24",
"gateway": "172.168.100.1"
}
]
}
}'

View file

@ -0,0 +1,20 @@
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: mgmt-net
namespace: ${TENANT_NAMESPACE}
spec:
config: '{
"cniVersion": "0.3.1",
"type": "bridge",
"bridge": "br-mgmt",
"ipam": {
"type": "static",
"addresses": [
{
"address": "192.168.10.0/24",
"gateway": "192.168.10.1"
}
]
}
}'

View file

@ -0,0 +1,77 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: fortigate-ksd
namespace: ${TENANT_NAMESPACE}
spec:
dataVolumeTemplates:
- metadata:
name: fortigate-rootdisk-ksd
spec:
source:
http:
url: "https://glacier-1.kvant.cloud/ocp-virt-images/sources/fortios_7_6_3.qcow2"
#secretRef: s3-virt-credentials
storage:
resources:
requests:
storage: 30Gi
runStrategy: Always
template:
metadata:
labels:
kubevirt.io/domain: fortigate-ksd
spec:
domain:
cpu:
cores: 1
memory:
guest: 2Gi
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi:
secureBoot: false
devices:
rng: {}
networkInterfaceMultiqueue: true
interfaces:
- name: wan
masquerade: {}
ports:
- port: 4500
- port: 443
- port: 22
- port: 500
- name: mgmt
bridge: {}
- name: lan
bridge: {}
disks:
- disk:
bus: sata
name: rootdisk
resources:
requests:
memory: 2Gi
cpu: 1
limits:
memory: 2Gi
cpu: 1
networks:
- name: wan
pod: {}
- name: mgmt
multus:
networkName: ${TENANT_NAMESPACE}/mgmt-net
- name: lan
multus:
networkName: ${TENANT_NAMESPACE}/lan-net
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk
dataVolume:
name: fortigate-rootdisk-ksd

View file

@ -0,0 +1,73 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: strongswan
namespace: ${TENANT_NAMESPACE}
spec:
running: true
template:
metadata:
labels:
kubevirt.io/domain: strongswan
spec:
domain:
cpu:
cores: 2
resources:
requests:
memory: 2Gi
cpu: 1
limits:
memory: 2Gi
cpu: 2
memory:
guest: 2Gi
devices:
rng: {}
networkInterfaceMultiqueue: true
disks:
- name: containerdisk
disk:
bus: virtio
- name: cloudinitdisk
disk:
bus: virtio
interfaces:
- name: wan
masquerade: {}
ports:
- port: 4500
- port: 443
- port: 22
- port: 500
- name: mgmt
bridge: {}
- name: lan
bridge: {}
networks:
- name: wan
pod: {}
- name: mgmt
multus:
networkName: ${TENANT_NAMESPACE}/mgmt-net
- name: lan
multus:
networkName: ${TENANT_NAMESPACE}/lan-net
terminationGracePeriodSeconds: 180
volumes:
- name: containerdisk
containerDisk:
image: quay.io/containerdisks/ubuntu:22.04
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
users:
- name: testuser
groups: [sudo]
sudo: "ALL=(ALL) NOPASSWD:ALL"
lock_passwd: false
passwd: "$6$oMZf5uou7t0.oAJ1$825Te06yt7JZwHSSj4MGQMjpd87LflANQpajCwIVPASkKZdOJo4L2bAEDDuK.jtu.fsRNc9bZAsYefmoqdN8O1"
chpasswd:
expire: false
ssh_pwauth: true

View file

@ -3,10 +3,22 @@ kind: Kustomization
resources:
- vars/ks.yaml
- repos/ks.yaml
- echo-server/ks.yaml
- network/ks-lb.yaml
- firewall-s3/ks-vm.yaml
- windows-vm-standard/ks-vm.yaml
- windows-vm-standard/ks-pvc.yaml
- windows-vm-standard-dev/ks-vm.yaml
- windows-vm-standard-dev/ks-pvc.yaml
- ubuntu-vm-1/ks.yaml
- ubuntu-vm-2/ks.yaml
- ubuntu-vm-3-john/ks.yaml
- container/ks-debug.yaml
- templates/image-server/ks-nginx.yaml
- templates/image-server/ks-pvc.yaml
- templates/windowsserver/ks-dv.yaml
- templates/image-server/ks-route.yaml
- templates/windowsserver/ks-flavor.yaml
- templates/windowsserver-rh/ks-flavor.yaml
- postgres/ks.yaml
# - windows-vm-standard-john/ks-vm.yaml
# - windows-vm-standard-john/ks-pvc.yaml
# - windows-vm-standard-john/windows-lb.yaml

18
network/ks-lb.yaml Normal file
View file

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

View file

@ -0,0 +1,29 @@
---
apiVersion: v1
kind: Service
metadata:
name: fortigate-lb
namespace: ${TENANT_NAMESPACE}
labels:
app.kubernetes.io/component: fortigate-lb
spec:
type: LoadBalancer
ports:
- port: 4500
name: ipsec-nat
targetPort: 4500
protocol: UDP
- port: 500
name: key-management
targetPort: 500
protocol: UDP
- port: 22
name: ssh
targetPort: 22
protocol: TCP
- port: 443
name: https
targetPort: 443
protocol: TCP
selector:
kubevirt.io/domain: fortigate-s3

View file

@ -0,0 +1,29 @@
---
apiVersion: v1
kind: Service
metadata:
name: windows-lb
namespace: ${TENANT_NAMESPACE}
labels:
app.kubernetes.io/component: windows-lb
spec:
type: LoadBalancer
ports:
- port: 8080
name: http
targetPort: 8080
protocol: TCP
- port: 443
name: https
targetPort: 443
protocol: TCP
- port: 65022
name: ssh
targetPort: 22
protocol: TCP
- port: 3389
name: rdp
targetPort: 3389
protocol: TCP
selector:
kubevirt.io/domain: windows-vm-standard

View file

@ -0,0 +1,122 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: postgres
namespace: ${TENANT_NAMESPACE}
spec:
serviceAccountName: ${TECHNICAL_ACCOUNT}
interval: 30m
chart:
spec:
chart: cluster
version: 0.3.1
sourceRef:
kind: HelmRepository
name: cloudnative-pg
namespace: ${TENANT_NAMESPACE}
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
values:
# check the complete configuration options at
# https://raw.githubusercontent.com/cloudnative-pg/charts/refs/tags/cluster-v0.3.1/charts/cluster/values.yaml
type: postgresql
mode: standalone
version:
postgresql: "17.5"
cluster:
instances: 3
storage:
size: 10Gi
# default storage class on ai-2 cluster, on basel or staging you
# should use 'ocs-storagecluster-ceph-rbd' instead
storageClass: ibm-spectrum-scale-fileset
walStorage:
# It's not mandatory to split WAL from the main data volume.
# However, doing so helps to avoid issues with the main data volume
# in cases where WAL exporting to the backup server experiences
# issues. For example, in scenarios where there's network congestion
# or even failures, the WAL may end up accumulating too much data
# to the point where the volume fills up, blocking the cluster from
# operating properly.
enabled: true
size: 10Gi
storageClass: ibm-spectrum-scale-fileset
resources:
requests:
cpu: "500m"
memory: 1Gi
limits:
cpu: "1"
memory: 1Gi
enableSuperuserAccess: true
superuserSecret: postgres-superuser
affinity:
topologyKey: failure-domain.beta.kubernetes.io/zone
postgresql:
parameters:
shared_buffers: 256MB
max_connections: "400"
initdb:
database: app
owner: app
options: []
encoding: UTF8
backups:
# As indicated by the 'enabled' flag, backups are disabled on
# this deployment. But the remaining of the block serves as an
# example of how to configure this cluster to export backups to
# a S3 bucket hosted on a MinIO server.
#
# For more information, refer to the helm chart's values.yaml
# or the official documentation at
# https://cloudnative-pg.io/documentation/1.26/backup/
enabled: false
endpointURL: https://glacier-1.kvant.cloud
provider: s3
s3:
bucket: phoenix-openshift-backups
path: /demo-postgres
# Ideally, you will never commit credentials in plain text;
# these values are here just for illustration. For a way to
# properly load them from kubernetes' secrets, refer to the
# commented-ou section 'valuesFrom' placed right below
accessKey: your-access-key
secretKey: your-secret-key
secret:
create: true
wal:
# If exporting to MinIO S3, you may have to disable encryption.
# This is how you achieve it
encryption: ""
data:
encryption: ""
scheduledBackups:
# You can give it any name and change the scheduled time to what
# fits your strategy. This serves as an example of how to configure
# the cluster to export a daily backup to the S3 bucket using
# barman object storage. You can also back up volumes instead.
# Check the backup documentation to find more information on
# which option suits you best.
- name: daily-minio
schedule: "@daily"
backupOwnerReference: self
method: barmanObjectStore
retentionPolicy: "180d" # It is mandatory to match this value with the bucket's retention period
# valuesFrom:
# - kind: Secret
# name: postgres-backup-s3 # name of the pre-existing secret that holds the key pair
# valuesKey: ACCESS_KEY_ID # name of the key inside the secret that holds the access key value
# targetPath: backups.s3.accessKey # path of the configuration that will be assigned the access key value
# optional: false
# - kind: Secret
# name: postgres-backup-s3 # name of the pre-existing secret that holds the key pair
# valuesKey: ACCESS_SECRET_KEY # name of the key inside the secret that holds the secret key value
# targetPath: backups.s3.secretKey # path of the configuration that will be assigned the secret key value
# optional: false

View file

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

View file

@ -5,5 +5,5 @@ metadata:
namespace: ${TENANT_NAMESPACE}
spec:
type: oci
interval: 5m
interval: 60m
url: oci://registry-1.docker.io/bitnamicharts

View file

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

View file

@ -15,4 +15,5 @@ spec:
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

@ -1,15 +1,15 @@
apiVersion: helm.toolkit.fluxcd.io/v2
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: nginx
namespace: ${TENANT_NAMESPACE}
spec:
serviceAccountName: ${TECHNICAL_ACCOUNT}
interval: 5m
interval: 10m
chart:
spec:
chart: nginx
version: 20.0.0
version: 19.1.1
sourceRef:
kind: HelmRepository
name: bitnami
@ -17,19 +17,14 @@ spec:
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
hostname: nginx.${TENANT_DOMAIN}
ingressClassName: external
extraVolumes:
- name: ${TENANT_NAMESPACE}-image-storage
persistentVolumeClaim:
claimName: ${TENANT_NAMESPACE}-image-storage
extraVolumeMounts:
- name: ${TENANT_NAMESPACE}-image-storage
mountPath: /usr/share/nginx/html
mountPath: /app

View file

@ -2,11 +2,11 @@ apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${TENANT_NAMESPACE}-image-storage
namespace: ${TENANT_NAMESPACE}
annotations:
helm.sh/resource-policy: keep
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 120Gi
storageClassName: ocs-storagecluster-ceph-rbd

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,87 @@
apiVersion: template.openshift.io/v1
kind: Template
metadata:
name: windows-server-2022-small-redhat
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
openshift.io/display-name: Windows Server 2022
iconClass: icon-windows
objects:
- apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-server-2022-small-redhat
annotations:
description: Windows Server 2022 VM example
labels:
app: windows-server-2022-small-redhat
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-2022-small-redhat
kubevirt.io/size: small
spec:
domain:
cpu:
cores: 1
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-2022-small-redhat
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk
dataVolume:
name: windows-server-2022-small-redhat-dv
- apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
name: windows-server-2022-small-redhat-dv
namespace: '${TENANT_NAMESPACE}'
spec:
source:
http:
url: http://nginx.demo.svc.cluster.local:8080/windows-server-2022-uefi-ns.qcow2
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 120Gi
storageClassName: ibm-spectrum-scale-fileset

View file

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

View file

@ -1,15 +0,0 @@
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

View file

@ -2,49 +2,94 @@ apiVersion: template.openshift.io/v1
kind: Template
metadata:
name: windows-server-2022-small
namespace: ${TENANT_NAMESPACE}
namespace: '${TENANT_NAMESPACE}'
labels:
template.kubevirt.io/type: 'vm'
os.template.kubevirt.io/win2k22: 'true'
workload.template.kubevirt.io/server: 'true'
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
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: ${VM_NAME}
namespace: ${TENANT_NAMESPACE}
name: windows-server-demo
annotations:
description: Windows Server 2022 VM Demo
labels:
app: windows-server
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: ${VM_NAME}
kubevirt.io/domain: windows-server-demo
kubevirt.io/size: small
spec:
domain:
cpu:
cores: 4
cores: 2
sockets: 1
threads: 1
devices:
disks:
- name: rootdisk
disk:
- disk:
bus: virtio
name: rootdisk
interfaces:
- masquerade: {}
model: virtio
name: default
networkInterfaceMultiqueue: true
rng: {}
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi: {}
memory:
guest: 8Gi
guest: 4Gi
hostname: windows-server-demo
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk
persistentVolumeClaim:
claimName: windows-server-datavolume
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: windows_server_2022_small
description: Name of the Virtual Machine
#- 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
- name: NAMESPACE
description: Namespace where to deploy
required: true
value: ${TENANT_NAMESPACE}
value: 120Gi

View file

@ -38,11 +38,13 @@ spec:
cloudInitNoCloud:
userData: |
#cloud-config
hostname: ubuntu-vm-1
ssh_pwauth: True
users:
- name: ubuntu
ssh-authorized-keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPqlhZW/pPLK8zENt3o6tgl0QVinhGAF1sHvajqq3UvI ubuntu
sudo: ['ALL=(ALL) NOPASSWD:ALL']
shell: /bin/bash
- name: testuser
groups: [sudo]
sudo: "ALL=(ALL) NOPASSWD:ALL"
lock_passwd: false
passwd: "$6$oMZf5uou7t0.oAJ1$825Te06yt7JZwHSSj4MGQMjpd87LflANQpajCwIVPASkKZdOJo4L2bAEDDuK.jtu.fsRNc9bZAsYefmoqdN8O1"
chpasswd:
expire: false
ssh_pwauth: true

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

@ -0,0 +1,18 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ubuntu-vm-2
namespace: ${TENANT_NAMESPACE}
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./ubuntu-vm-2/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: kubevirt-vms
spec:
running: true
template:
metadata:
labels:
kubevirt.io/domain: ubuntu-vm-2
spec:
domain:
cpu:
cores: 2
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
resources:
requests:
memory: 2Gi
cpu: 1
limits:
memory: 2Gi
cpu: 2
memory:
guest: 2Gi
volumes:
- name: containerdisk
containerDisk:
image: quay.io/containerdisks/ubuntu:22.04
- name: cloudinitdisk
cloudInitNoCloud:
userData: |
#cloud-config
hostname: ubuntu-vm-2
ssh_pwauth: True
users:
- name: ubuntu
ssh-authorized-keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPqlhZW/pPLK8zENt3o6tgl0QVinhGAF1sHvajqq3UvI ubuntu
sudo: ['ALL=(ALL) NOPASSWD:ALL']
shell: /bin/bash

9
vars/demo/s3-secret.yaml Normal file
View file

@ -0,0 +1,9 @@
apiVersion: v1
kind: Secret
metadata:
name: s3-virt-credentials
namespace: ${TENANT_NAMESPACE}
type: Opaque
data:
accessKeyId: WWozQTdUdHgzbjNOa3NsS2VodzM=
secretKey: SUZJRWtSbnJnWDRPcnlNWmtSSjlheG41UlpnSTZhMjBvVW82Tm1lRA==

View file

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

View file

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

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: windows-vm-datadisk-dev
spec:
storageClassName: ibm-spectrum-scale-fileset
volumeMode: Filesystem
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi

View file

@ -0,0 +1,83 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-vm-standard-dev
namespace: ${TENANT_NAMESPACE}
spec:
dataVolumeTemplates:
- metadata:
name: windows-rootdisk-dev
spec:
source:
http:
url: "https://glacier-1.kvant.cloud/ocp-virt-images/sources/windows-server-2022-uefi-ns.qcow2"
storage:
resources:
requests:
storage: 80Gi
sourceRef:
kind: DataSource
name: win2k22
namespace: kubevirt-os-images
runStrategy: Always
template:
metadata:
labels:
kubevirt.io/domain: windows-vm-standard-dev
spec:
domain:
cpu:
cores: 4
memory:
guest: 8Gi
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi:
secureBoot: true
devices:
rng: {}
networkInterfaceMultiqueue: true
interfaces:
- name: default
masquerade: {}
ports:
- port: 8080
- port: 443
- port: 22
- port: 3389
disks:
- disk:
bus: sata
name: rootdisk-dev
- disk:
bus: sata
name: datadisk-dev
# - disk:
# bus: scsi
# name: cloudinitdisk
resources:
requests:
memory: 8Gi
cpu: 4
limits:
memory: 8Gi
cpu: 4
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk-dev
dataVolume:
name: windows-rootdisk-dev
- name: datadisk-dev
persistentVolumeClaim:
claimName: windows-vm-datadisk-dev
#- name: cloudinitdisk
# cloudInitNoCloud:
# secretRef:
# name: windows-cloud-init

View file

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

View file

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

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: windows-vm-datadisk-john
spec:
storageClassName: ibm-spectrum-scale-fileset
volumeMode: Filesystem
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Gi

View file

@ -0,0 +1,82 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-vm-standard-john
namespace: ${TENANT_NAMESPACE}
spec:
dataVolumeTemplates:
- metadata:
name: windows-rootdisk-john
spec:
source:
http:
url: http://nginx.demo.svc.cluster.local:80/windows-server-2022-uefi-ns.qcow2
storage:
resources:
requests:
storage: 80Gi
# sourceRef:
# kind: DataSource
# name: win2k22
# namespace: openshift-virtualization-os-images
runStrategy: Always
template:
metadata:
labels:
kubevirt.io/domain: windows-vm-standard-john
spec:
domain:
cpu:
cores: 4
memory:
guest: 8Gi
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi: {}
devices:
rng: {}
networkInterfaceMultiqueue: true
interfaces:
- name: default
masquerade: {}
ports:
- port: 8080
- port: 443
- port: 22
- port: 3389
disks:
- disk:
bus: sata
name: rootdisk-john
- disk:
bus: sata
name: datadisk-john
# - disk:
# bus: scsi
# name: cloudinitdisk
resources:
requests:
memory: 8Gi
cpu: 4
limits:
memory: 8Gi
cpu: 4
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk-john
dataVolume:
name: windows-rootdisk-john
- name: datadisk-john
persistentVolumeClaim:
claimName: windows-vm-datadisk-john
#- name: cloudinitdisk
# cloudInitNoCloud:
# secretRef:
# name: windows-cloud-init

View file

@ -0,0 +1,29 @@
---
apiVersion: v1
kind: Service
metadata:
name: windows-lb-john
namespace: ${TENANT_NAMESPACE}
labels:
app.kubernetes.io/component: windows-lb-john
spec:
type: LoadBalancer
ports:
- port: 8080
name: http
targetPort: 8080
protocol: TCP
- port: 443
name: https
targetPort: 443
protocol: TCP
- port: 65022
name: ssh
targetPort: 22
protocol: TCP
- port: 3389
name: rdp
targetPort: 3389
protocol: TCP
selector:
kubevirt.io/domain: windows-vm-standard-john

View file

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

View file

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

View file

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: windows-vm-datadisk
spec:
storageClassName: ibm-spectrum-scale-fileset
volumeMode: Filesystem
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Gi

View file

@ -0,0 +1,82 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: windows-vm-standard
namespace: ${TENANT_NAMESPACE}
spec:
dataVolumeTemplates:
- metadata:
name: windows-rootdisk
spec:
source:
http:
url: http://nginx.demo.svc.cluster.local:8080/windows-server-2022-uefi-ns.qcow2
storage:
resources:
requests:
storage: 80Gi
sourceRef:
kind: DataSource
name: win2k22
namespace: kubevirt-os-images
runStrategy: Always
template:
metadata:
labels:
kubevirt.io/domain: windows-vm-standard
spec:
domain:
cpu:
cores: 4
memory:
guest: 8Gi
features:
acpi: {}
smm:
enabled: true
firmware:
bootloader:
efi: {}
devices:
rng: {}
networkInterfaceMultiqueue: true
interfaces:
- name: default
masquerade: {}
ports:
- port: 8080
- port: 443
- port: 22
- port: 3389
disks:
- disk:
bus: sata
name: rootdisk
- disk:
bus: sata
name: datadisk
# - disk:
# bus: scsi
# name: cloudinitdisk
resources:
requests:
memory: 8Gi
cpu: 4
limits:
memory: 8Gi
cpu: 4
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- name: rootdisk
dataVolume:
name: windows-rootdisk
- name: datadisk
persistentVolumeClaim:
claimName: windows-vm-datadisk
#- name: cloudinitdisk
# cloudInitNoCloud:
# secretRef:
# name: windows-cloud-init