diff --git a/bootc/Containerfile.centos9 b/bootc/Containerfile.centos9 index 3b45a10..11ad06b 100644 --- a/bootc/Containerfile.centos9 +++ b/bootc/Containerfile.centos9 @@ -4,34 +4,64 @@ RUN rm -rf /etc/yum.repos.d/*.repo COPY output/yum.repos.d /etc/yum.repos.d ARG PACKAGES="\ -bind-utils \ -buildah \ -cephadm \ -chrony \ -cloud-init \ -crudini \ -crypto-policies-scripts \ -device-mapper-multipath \ -driverctl \ -grubby \ -iproute-tc \ -iptables-services \ -iscsi-initiator-utils \ -jq \ -lvm2 \ -nftables \ -numactl \ -openssh-server \ -openstack-selinux \ -openvswitch \ -os-net-config \ -podman \ -python3-libselinux \ -python3-pyyaml \ -rsync \ -tmpwatch \ -tuned-profiles-cpu-partitioning \ -sysstat" + bind-utils \ + buildah \ + cephadm \ + chrony \ + cloud-init \ + crudini \ + crypto-policies-scripts \ + device-mapper-multipath \ + driverctl \ + grubby \ + iproute-tc \ + iptables-services \ + iscsi-initiator-utils \ + jq \ + lvm2 \ + NetworkManager-ovs \ + nftables \ + numactl \ + openssh-server \ + openstack-selinux \ + openvswitch \ + os-net-config \ + podman \ + python3-libselinux \ + python3-pyyaml \ + rsync \ + sysstat \ + tmpwatch \ + tuned-profiles-cpu-partitioning" + ARG ENABLE_UNITS="openvswitch" RUN dnf -y update && dnf -y install $PACKAGES && dnf clean all && systemctl enable $ENABLE_UNITS + +# Template systemd service for services +COPY embedded-services/quadlets/systemd/service-template.kube /usr/share/containers/systemd/edpm-compute@.kube + +## Service specific quadlets +COPY embedded-services/quadlets/ovn-controller/ovn_controller.yaml /usr/share/containers/systemd/ovn_controller.yaml +COPY embedded-services/quadlets/ovn-controller/ovn_controller.image /usr/share/containers/systemd/ovn_controller.image +COPY embedded-services/quadlets/iscsid/iscsid.yaml /usr/share/containers/systemd/iscsid.yaml +COPY embedded-services/quadlets/iscsid/iscsid.image /usr/share/containers/systemd/iscsid.image +COPY embedded-services/quadlets/nova_compute/nova_compute.yaml /usr/share/containers/systemd/nova_compute.yaml +COPY embedded-services/quadlets/nova_compute/nova_compute.image /usr/share/containers/systemd/nova_compute.image +COPY embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.yaml /usr/share/containers/systemd/ovn_metadata_agent.yaml +COPY embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.image /usr/share/containers/systemd/ovn_metadata_agent.image +COPY embedded-services/quadlets/logrotate_crond/logrotate_crond.yaml /usr/share/containers/systemd/logrotate_crond.yaml +COPY embedded-services/quadlets/logrotate_crond/logrotate_crond.image /usr/share/containers/systemd/logrotate_crond.image +COPY embedded-services/quadlets/multipathd/multipathd.yaml /usr/share/containers/systemd/multipathd.yaml +COPY embedded-services/quadlets/multipathd/multipathd.image /usr/share/containers/systemd/multipathd.image +COPY embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.yaml /usr/share/containers/systemd/ceilometer_agent_compute.yaml +COPY embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.image /usr/share/containers/systemd/ceilometer_agent_compute.image + +# Pre-cache containers for each service +RUN podman pull quay.io/podified-antelope-centos9/openstack-ceilometer-compute:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-iscsid:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-cron:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-multipathd:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-ovn-controller:current-podified +RUN podman pull quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified diff --git a/bootc/embedded-services/output/manifest-qcow2.json b/bootc/embedded-services/output/manifest-qcow2.json new file mode 100644 index 0000000..baaf2c0 --- /dev/null +++ b/bootc/embedded-services/output/manifest-qcow2.json @@ -0,0 +1,631 @@ +{ + "version": "2", + "pipelines": [ + { + "name": "build", + "runner": "org.osbuild.linux", + "stages": [ + { + "type": "org.osbuild.container-deploy", + "inputs": { + "images": { + "type": "org.osbuild.containers-storage", + "origin": "org.osbuild.source", + "references": { + "sha256:65d9ef1b471457e793949e868c76eb827f0576cfce518ec7876624ac3e2e9896": { + "name": "quay.io/bshephar/edpm-bootc-embedded:latest" + } + } + } + }, + "options": { + "remove-signatures": true + } + }, + { + "type": "org.osbuild.selinux", + "options": { + "file_contexts": "etc/selinux/targeted/contexts/files/file_contexts", + "exclude_paths": [ + "/sysroot" + ], + "labels": { + "/usr/bin/mount": "system_u:object_r:install_exec_t:s0", + "/usr/bin/ostree": "system_u:object_r:install_exec_t:s0", + "/usr/bin/umount": "system_u:object_r:install_exec_t:s0" + } + } + } + ] + }, + { + "name": "image", + "build": "name:build", + "stages": [ + { + "type": "org.osbuild.truncate", + "options": { + "filename": "disk.raw", + "size": "10737418240" + } + }, + { + "type": "org.osbuild.sfdisk", + "options": { + "label": "gpt", + "uuid": "D209C89E-EA5E-4FBD-B161-B461CCE297E0", + "partitions": [ + { + "size": 1026048, + "start": 2048, + "type": "C12A7328-F81F-11D2-BA4B-00A0C93EC93B", + "uuid": "68B2905B-DF3E-4FB3-80FA-49D1E773AA33" + }, + { + "size": 2097152, + "start": 1028096, + "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", + "uuid": "CB07C243-BC44-4717-853E-28852021225B" + }, + { + "size": 17846239, + "start": 3125248, + "type": "0FC63DAF-8483-4772-8E79-3D69D8477DE4", + "uuid": "6264D520-3FB9-423F-8AB8-7A0A8E3D3562" + } + ] + }, + "devices": { + "device": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "lock": true + } + } + } + }, + { + "type": "org.osbuild.mkfs.fat", + "options": { + "volid": "7B7795E7" + }, + "devices": { + "device": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "start": 2048, + "size": 1026048, + "lock": true + } + } + } + }, + { + "type": "org.osbuild.mkfs.xfs", + "options": { + "uuid": "c5e06593-b145-44cb-9faa-1b78b63df21b", + "label": "boot" + }, + "devices": { + "device": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "start": 1028096, + "size": 2097152, + "lock": true + } + } + } + }, + { + "type": "org.osbuild.mkfs.xfs", + "options": { + "uuid": "c1a89e19-4b82-4304-8c80-74e4e9992262", + "label": "root" + }, + "devices": { + "device": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "start": 3125248, + "size": 17846239, + "lock": true + } + } + } + }, + { + "type": "org.osbuild.bootc.install-to-filesystem", + "inputs": { + "images": { + "type": "org.osbuild.containers-storage", + "origin": "org.osbuild.source", + "references": { + "sha256:65d9ef1b471457e793949e868c76eb827f0576cfce518ec7876624ac3e2e9896": { + "name": "quay.io/bshephar/edpm-bootc-embedded:latest" + } + } + } + }, + "options": { + "kernel-args": [ + "rw", + "console=tty0", + "console=ttyS0" + ], + "target-imgref": "quay.io/bshephar/edpm-bootc-embedded:latest" + }, + "devices": { + "disk": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "partscan": true + } + } + }, + "mounts": [ + { + "name": "-", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/", + "partition": 3 + }, + { + "name": "boot", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/boot", + "partition": 2 + }, + { + "name": "boot-efi", + "type": "org.osbuild.fat", + "source": "disk", + "target": "/boot/efi", + "partition": 1 + } + ] + }, + { + "type": "org.osbuild.fstab", + "options": { + "filesystems": [ + { + "uuid": "c1a89e19-4b82-4304-8c80-74e4e9992262", + "vfs_type": "xfs", + "path": "/", + "options": "ro", + "freq": 1, + "passno": 1 + }, + { + "uuid": "c5e06593-b145-44cb-9faa-1b78b63df21b", + "vfs_type": "xfs", + "path": "/boot", + "options": "ro", + "freq": 1, + "passno": 2 + }, + { + "uuid": "7B77-95E7", + "vfs_type": "vfat", + "path": "/boot/efi", + "options": "umask=0077,shortname=winnt", + "passno": 2 + } + ] + }, + "devices": { + "disk": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "partscan": true + } + } + }, + "mounts": [ + { + "name": "-", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/", + "partition": 3 + }, + { + "name": "boot", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/boot", + "partition": 2 + }, + { + "name": "boot-efi", + "type": "org.osbuild.fat", + "source": "disk", + "target": "/boot/efi", + "partition": 1 + }, + { + "name": "ostree.deployment", + "type": "org.osbuild.ostree.deployment", + "options": { + "source": "mount", + "deployment": { + "default": true + } + } + }, + { + "name": "bind-ostree-deployment-to-tree", + "type": "org.osbuild.bind", + "target": "tree://", + "options": { + "source": "mount://" + } + } + ] + }, + { + "type": "org.osbuild.mkdir", + "options": { + "paths": [ + { + "path": "/var/home", + "mode": 493, + "exist_ok": true + } + ] + }, + "devices": { + "disk": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "partscan": true + } + } + }, + "mounts": [ + { + "name": "-", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/", + "partition": 3 + }, + { + "name": "boot", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/boot", + "partition": 2 + }, + { + "name": "boot-efi", + "type": "org.osbuild.fat", + "source": "disk", + "target": "/boot/efi", + "partition": 1 + }, + { + "name": "ostree.deployment", + "type": "org.osbuild.ostree.deployment", + "options": { + "source": "mount", + "deployment": { + "default": true + } + } + }, + { + "name": "bind-ostree-deployment-to-tree", + "type": "org.osbuild.bind", + "target": "tree://", + "options": { + "source": "mount://" + } + } + ] + }, + { + "type": "org.osbuild.users", + "options": { + "users": { + "cloud-admin": { + "groups": [ + "wheel" + ], + "password": "$6$.HxCj1sYrLNoqesd$f39p.sCupCuL7TmBq2wcshOKtaarcDOy2Cnmy7f3L417UAT.oC.7oXJGY0LJn5VmbBipVlWnhe9oG/96T1dXo.", + "key": "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFmvxUy505Bqlb/sXU0TCFVgnoUAAxl3X3N/X5GPxjzxaf5lF0n+BpORdKAeHzRkguxSz8jrrliQfazJkbRlFwg=" + } + } + }, + "devices": { + "disk": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "partscan": true + } + } + }, + "mounts": [ + { + "name": "-", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/", + "partition": 3 + }, + { + "name": "boot", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/boot", + "partition": 2 + }, + { + "name": "boot-efi", + "type": "org.osbuild.fat", + "source": "disk", + "target": "/boot/efi", + "partition": 1 + }, + { + "name": "ostree.deployment", + "type": "org.osbuild.ostree.deployment", + "options": { + "source": "mount", + "deployment": { + "default": true + } + } + }, + { + "name": "bind-ostree-deployment-to-tree", + "type": "org.osbuild.bind", + "target": "tree://", + "options": { + "source": "mount://" + } + } + ] + }, + { + "type": "org.osbuild.selinux", + "options": { + "file_contexts": "etc/selinux/targeted/contexts/files/file_contexts", + "exclude_paths": [ + "/sysroot" + ] + }, + "devices": { + "disk": { + "type": "org.osbuild.loopback", + "options": { + "filename": "disk.raw", + "partscan": true + } + } + }, + "mounts": [ + { + "name": "-", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/", + "partition": 3 + }, + { + "name": "boot", + "type": "org.osbuild.xfs", + "source": "disk", + "target": "/boot", + "partition": 2 + }, + { + "name": "boot-efi", + "type": "org.osbuild.fat", + "source": "disk", + "target": "/boot/efi", + "partition": 1 + }, + { + "name": "ostree.deployment", + "type": "org.osbuild.ostree.deployment", + "options": { + "source": "mount", + "deployment": { + "default": true + } + } + }, + { + "name": "bind-ostree-deployment-to-tree", + "type": "org.osbuild.bind", + "target": "tree://", + "options": { + "source": "mount://" + } + } + ] + } + ] + }, + { + "name": "qcow2", + "stages": [ + { + "type": "org.osbuild.qemu", + "inputs": { + "image": { + "type": "org.osbuild.files", + "origin": "org.osbuild.pipeline", + "references": { + "name:image": { + "file": "disk.raw" + } + } + } + }, + "options": { + "filename": "disk.qcow2", + "format": { + "type": "qcow2", + "compat": "1.1" + } + } + } + ] + }, + { + "name": "vmdk", + "stages": [ + { + "type": "org.osbuild.qemu", + "inputs": { + "image": { + "type": "org.osbuild.files", + "origin": "org.osbuild.pipeline", + "references": { + "name:image": { + "file": "disk.raw" + } + } + } + }, + "options": { + "filename": "disk.vmdk", + "format": { + "type": "vmdk", + "subformat": "streamOptimized" + } + } + } + ] + }, + { + "name": "vpc", + "stages": [ + { + "type": "org.osbuild.qemu", + "inputs": { + "image": { + "type": "org.osbuild.files", + "origin": "org.osbuild.pipeline", + "references": { + "name:image": { + "file": "disk.raw" + } + } + } + }, + "options": { + "filename": "disk.vhd", + "format": { + "type": "vpc" + } + } + } + ] + }, + { + "name": "ovf", + "stages": [ + { + "type": "org.osbuild.copy", + "inputs": { + "vmdk-tree": { + "type": "org.osbuild.tree", + "origin": "org.osbuild.pipeline", + "references": [ + "name:vmdk" + ] + } + }, + "options": { + "paths": [ + { + "from": "input://vmdk-tree/disk.vmdk", + "to": "tree:///" + } + ] + } + }, + { + "type": "org.osbuild.ovf", + "options": { + "vmdk": "disk.vmdk" + } + } + ] + }, + { + "name": "archive", + "stages": [ + { + "type": "org.osbuild.tar", + "inputs": { + "tree": { + "type": "org.osbuild.tree", + "origin": "org.osbuild.pipeline", + "references": [ + "name:ovf" + ] + } + }, + "options": { + "filename": "disk.tar", + "format": "ustar", + "paths": [ + "disk.ovf", + "disk.mf", + "disk.vmdk", + "disk.vhd" + ] + } + } + ] + }, + { + "name": "gce", + "build": "name:build", + "stages": [ + { + "type": "org.osbuild.tar", + "inputs": { + "tree": { + "type": "org.osbuild.tree", + "origin": "org.osbuild.pipeline", + "references": [ + "name:image" + ] + } + }, + "options": { + "filename": "image.tar.gz", + "format": "oldgnu", + "acls": false, + "selinux": false, + "xattrs": false, + "root-node": "omit" + } + } + ] + } + ], + "sources": { + "org.osbuild.containers-storage": { + "items": { + "sha256:65d9ef1b471457e793949e868c76eb827f0576cfce518ec7876624ac3e2e9896": {} + } + } + } +} diff --git a/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.image b/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.image new file mode 100644 index 0000000..7a5e2a7 --- /dev/null +++ b/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@ceilometer_agent_compute.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-ceilometer-compute:current-podified diff --git a/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.yaml b/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.yaml new file mode 100644 index 0000000..716a2a3 --- /dev/null +++ b/bootc/embedded-services/quadlets/ceilometer_agent_compute/ceilometer_agent_compute.yaml @@ -0,0 +1,80 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /var/lib/openstack/cacerts/telemetry/tls-ca-bundle.pem:z + creationTimestamp: "2024-11-21T04:54:58Z" + labels: + app: ceilometeragentcompute-pod + name: ceilometeragentcompute-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + - name: OS_ENDPOINT_TYPE + value: internal + image: quay.io/podified-antelope-centos9/openstack-ceilometer-compute:current-podified + name: ceilometeragentcompute + securityContext: + runAsGroup: 42405 + runAsUser: 42405 + seLinuxOptions: + type: ceilometer_polling_t + volumeMounts: + - mountPath: /openstack + name: var-lib-openstack-healthchecks-ceilometer_agent_compute-host-0 + readOnly: true + - mountPath: /run/libvirt + name: run-libvirt-host-2 + readOnly: true + - mountPath: /dev/log + name: dev-log-host-3 + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-openstack-config-telemetry-ceilometer-agent-compute.json-host-6 + - mountPath: /etc/hosts + name: etc-hosts-host-7 + readOnly: true + - mountPath: /var/lib/openstack/config/ + name: var-lib-openstack-config-telemetry-host-8 + - mountPath: /etc/localtime + name: etc-localtime-host-9 + readOnly: true + hostNetwork: true + hostname: edpm-compute-0 + volumes: + - hostPath: + path: /var/lib/openstack/healthchecks/ceilometer_agent_compute + type: Directory + name: var-lib-openstack-healthchecks-ceilometer_agent_compute-host-0 + - hostPath: + path: /run/libvirt + type: Directory + name: run-libvirt-host-2 + - hostPath: + path: /dev/log + type: File + name: dev-log-host-3 + - hostPath: + path: /etc/pki/ca-trust/source/anchors + type: Directory + name: etc-pki-ca-trust-source-anchors-host-4 + - hostPath: + path: /var/lib/openstack/config/telemetry/ceilometer-agent-compute.json + type: File + name: var-lib-openstack-config-telemetry-ceilometer-agent-compute.json-host-6 + - hostPath: + path: /etc/hosts + type: File + name: etc-hosts-host-7 + - hostPath: + path: /var/lib/openstack/config/telemetry + type: Directory + name: var-lib-openstack-config-telemetry-host-8 + - hostPath: + path: /etc/localtime + type: File + name: etc-localtime-host-9 diff --git a/bootc/embedded-services/quadlets/iscsid/iscsid.image b/bootc/embedded-services/quadlets/iscsid/iscsid.image new file mode 100644 index 0000000..0bca595 --- /dev/null +++ b/bootc/embedded-services/quadlets/iscsid/iscsid.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@iscsid.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-iscsid:current-podified diff --git a/bootc/embedded-services/quadlets/iscsid/iscsid.yaml b/bootc/embedded-services/quadlets/iscsid/iscsid.yaml new file mode 100644 index 0000000..d5831e5 --- /dev/null +++ b/bootc/embedded-services/quadlets/iscsid/iscsid.yaml @@ -0,0 +1,103 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /var/lib/openstack/healthchecks/iscsid:z + creationTimestamp: "2024-11-20T02:16:18Z" + labels: + app: iscsid-pod + name: iscsid-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + image: quay.io/podified-antelope-centos9/openstack-iscsid@sha256:4c9b5389a2564388e7a862d5756c37dc7d9739472b8d822dd6faae868a483a2d + name: iscsid + securityContext: + privileged: true + procMount: Unmasked + volumeMounts: + - mountPath: /etc/target + name: etc-target-host-1 + - mountPath: /sys + name: sys-host-3 + - mountPath: /dev/log + name: dev-log-host-4 + - mountPath: /lib/modules + name: lib-modules-host-5 + readOnly: true + - mountPath: /var/lib/iscsi + name: var-lib-iscsi-host-6 + - mountPath: /etc/hosts + name: etc-hosts-host-7 + readOnly: true + - mountPath: /etc/localtime + name: etc-localtime-host-8 + readOnly: true + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-kolla-config_files-iscsid.json-host-12 + readOnly: true + - mountPath: /etc/iscsi + name: etc-iscsi-host-13 + - mountPath: /run + name: run-host-14 + - mountPath: /dev + name: dev-host-15 + - mountPath: /openstack + name: var-lib-openstack-healthchecks-iscsid-host-16 + readOnly: true + hostNetwork: true + hostname: edpm-compute-0 + volumes: + - hostPath: + path: /etc/target + type: Directory + name: etc-target-host-1 + - hostPath: + path: /sys + type: Directory + name: sys-host-3 + - hostPath: + path: /dev/log + type: File + name: dev-log-host-4 + - hostPath: + path: /lib/modules + type: Directory + name: lib-modules-host-5 + - hostPath: + path: /var/lib/iscsi + type: Directory + name: var-lib-iscsi-host-6 + - hostPath: + path: /etc/hosts + type: File + name: etc-hosts-host-7 + - hostPath: + path: /etc/localtime + type: File + name: etc-localtime-host-8 + - hostPath: + path: /var/lib/kolla/config_files/iscsid.json + type: File + name: var-lib-kolla-config_files-iscsid.json-host-12 + - hostPath: + path: /etc/iscsi + type: Directory + name: etc-iscsi-host-13 + - hostPath: + path: /run + type: Directory + name: run-host-14 + - hostPath: + path: /dev + type: Directory + name: dev-host-15 + - hostPath: + path: /var/lib/openstack/healthchecks/iscsid + type: Directory + name: var-lib-openstack-healthchecks-iscsid-host-16 diff --git a/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.image b/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.image new file mode 100644 index 0000000..b4804f2 --- /dev/null +++ b/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@logrotate_crond.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-cron:current-podified diff --git a/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.yaml b/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.yaml new file mode 100644 index 0000000..568b15f --- /dev/null +++ b/bootc/embedded-services/quadlets/logrotate_crond/logrotate_crond.yaml @@ -0,0 +1,76 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /var/lib/openstack/healthchecks/logrotate_crond:z + creationTimestamp: "2024-11-21T04:43:22Z" + labels: + app: logrotatecrond-pod + name: logrotatecrond-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + - name: EDPM_CONFIG_HASH + value: dbeb85a6e8c49962f43cd1b33d267c56e4fc2875277fdec63dde667651963664 + image: quay.io/podified-antelope-centos9/openstack-cron:current-podified + name: logrotatecrond + securityContext: + privileged: true + procMount: Unmasked + volumeMounts: + - mountPath: /dev/log + name: dev-log-host-2 + - mountPath: /var/lib/kolla/config_files/src + name: var-lib-config-data-ansible-generated-crond-host-3 + readOnly: true + - mountPath: /var/log/containers + name: var-log-containers-host-4 + - mountPath: /etc/localtime + name: etc-localtime-host-7 + readOnly: true + - mountPath: /etc/hosts + name: etc-hosts-host-9 + readOnly: true + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-kolla-config_files-logrotate_crond.json-host-10 + readOnly: true + - mountPath: /openstack + name: var-lib-openstack-healthchecks-logrotate_crond-host-11 + readOnly: true + volumes: + - hostPath: + path: /dev/log + type: File + name: dev-log-host-2 + - hostPath: + path: /var/lib/config-data/ansible-generated/crond + type: Directory + name: var-lib-config-data-ansible-generated-crond-host-3 + - hostPath: + path: /var/log/containers + type: Directory + name: var-log-containers-host-4 + - hostPath: + path: /etc/pki/tls/certs/ca-bundle.crt + type: File + - hostPath: + path: /etc/localtime + type: File + name: etc-localtime-host-7 + - hostPath: + path: /etc/hosts + type: File + name: etc-hosts-host-9 + - hostPath: + path: /var/lib/kolla/config_files/logrotate_crond.json + type: File + name: var-lib-kolla-config_files-logrotate_crond.json-host-10 + - hostPath: + path: /var/lib/openstack/healthchecks/logrotate_crond + type: Directory + name: var-lib-openstack-healthchecks-logrotate_crond-host-11 diff --git a/bootc/embedded-services/quadlets/multipathd/multipathd.image b/bootc/embedded-services/quadlets/multipathd/multipathd.image new file mode 100644 index 0000000..6e386e6 --- /dev/null +++ b/bootc/embedded-services/quadlets/multipathd/multipathd.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@multipathd.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-multipathd:current-podified diff --git a/bootc/embedded-services/quadlets/multipathd/multipathd.yaml b/bootc/embedded-services/quadlets/multipathd/multipathd.yaml new file mode 100644 index 0000000..d3e71ed --- /dev/null +++ b/bootc/embedded-services/quadlets/multipathd/multipathd.yaml @@ -0,0 +1,111 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /etc/multipath:z + creationTimestamp: "2024-11-21T04:49:10Z" + labels: + app: multipathd-pod + name: multipathd-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + image: quay.io/podified-antelope-centos9/openstack-multipathd:current-podified + name: multipathd + securityContext: + privileged: true + procMount: Unmasked + volumeMounts: + - mountPath: /var/lib/iscsi + name: var-lib-iscsi-host-0 + - mountPath: /etc/iscsi + name: etc-iscsi-host-1 + readOnly: true + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-kolla-config_files-multipathd.json-host-2 + readOnly: true + - mountPath: /openstack + name: var-lib-openstack-healthchecks-multipathd-host-4 + readOnly: true + - mountPath: /dev + name: dev-host-5 + - mountPath: /etc/multipath + name: etc-multipath-host-6 + - mountPath: /etc/hosts + name: etc-hosts-host-7 + readOnly: true + - mountPath: /etc/multipath.conf + name: etc-multipath.conf-host-9 + readOnly: true + - mountPath: /dev/log + name: dev-log-host-10 + - mountPath: /lib/modules + name: lib-modules-host-11 + readOnly: true + - mountPath: /sys + name: sys-host-12 + - mountPath: /run/udev + name: run-udev-host-13 + - mountPath: /etc/localtime + name: etc-localtime-host-16 + readOnly: true + hostNetwork: true + hostname: edpm-compute-0 + volumes: + - hostPath: + path: /var/lib/iscsi + type: Directory + name: var-lib-iscsi-host-0 + - hostPath: + path: /etc/iscsi + type: Directory + name: etc-iscsi-host-1 + - hostPath: + path: /var/lib/kolla/config_files/multipathd.json + type: File + name: var-lib-kolla-config_files-multipathd.json-host-2 + - hostPath: + path: /var/lib/openstack/healthchecks/multipathd + type: Directory + name: var-lib-openstack-healthchecks-multipathd-host-4 + - hostPath: + path: /dev + type: Directory + name: dev-host-5 + - hostPath: + path: /etc/multipath + type: Directory + name: etc-multipath-host-6 + - hostPath: + path: /etc/hosts + type: File + name: etc-hosts-host-7 + - hostPath: + path: /etc/multipath.conf + type: File + name: etc-multipath.conf-host-9 + - hostPath: + path: /dev/log + type: File + name: dev-log-host-10 + - hostPath: + path: /lib/modules + type: Directory + name: lib-modules-host-11 + - hostPath: + path: /sys + type: Directory + name: sys-host-12 + - hostPath: + path: /run/udev + type: Directory + name: run-udev-host-13 + - hostPath: + path: /etc/localtime + type: File + name: etc-localtime-host-16 diff --git a/bootc/embedded-services/quadlets/nova_compute/nova_compute.image b/bootc/embedded-services/quadlets/nova_compute/nova_compute.image new file mode 100644 index 0000000..5bfb080 --- /dev/null +++ b/bootc/embedded-services/quadlets/nova_compute/nova_compute.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@nova_compute.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified diff --git a/bootc/embedded-services/quadlets/nova_compute/nova_compute.yaml b/bootc/embedded-services/quadlets/nova_compute/nova_compute.yaml new file mode 100644 index 0000000..712ff2c --- /dev/null +++ b/bootc/embedded-services/quadlets/nova_compute/nova_compute.yaml @@ -0,0 +1,123 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /var/lib/openstack/cacerts/nova/tls-ca-bundle.pem:z + creationTimestamp: "2024-11-21T04:24:13Z" + labels: + app: novacompute-pod + name: novacompute-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + image: quay.io/podified-antelope-centos9/openstack-nova-compute:current-podified + name: novacompute + securityContext: + privileged: true + procMount: Unmasked + volumeMounts: + - mountPath: /var/lib/iscsi + name: var-lib-iscsi-host-0 + - mountPath: /etc/multipath + name: etc-multipath-host-1 + - mountPath: /etc/localtime + name: etc-localtime-host-2 + readOnly: true + - mountPath: /run/libvirt + name: run-libvirt-host-3 + - mountPath: /var/lib/libvirt + name: var-lib-libvirt-host-4 + - mountPath: /var/log/containers/nova + name: var-log-containers-nova-host-5 + - mountPath: /etc/ssh/ssh_known_hosts + name: etc-ssh-ssh_known_hosts-host-6 + readOnly: true + - mountPath: /lib/modules + name: lib-modules-host-7 + readOnly: true + - mountPath: /var/lib/nova + name: var-lib-nova-host-8 + - mountPath: /etc/nvme + name: etc-nvme-host-9 + - mountPath: /etc/multipath.conf + name: etc-multipath.conf-host-10 + readOnly: true + - mountPath: /etc/iscsi + name: etc-iscsi-host-12 + readOnly: true + - mountPath: /dev + name: dev-host-13 + - mountPath: /var/lib/kolla/config_files + name: var-lib-openstack-config-nova-host-14 + readOnly: true + - mountPath: /var/lib/kolla/config_files/ceph + name: var-lib-openstack-config-ceph-host-15 + readOnly: true + hostNetwork: true + hostname: edpm-compute-0 + volumes: + - hostPath: + path: /var/lib/iscsi + type: Directory + name: var-lib-iscsi-host-0 + - hostPath: + path: /etc/multipath + type: Directory + name: etc-multipath-host-1 + - hostPath: + path: /etc/localtime + type: File + name: etc-localtime-host-2 + - hostPath: + path: /run/libvirt + type: Directory + name: run-libvirt-host-3 + - hostPath: + path: /var/lib/libvirt + type: Directory + name: var-lib-libvirt-host-4 + - hostPath: + path: /var/log/containers/nova + type: Directory + name: var-log-containers-nova-host-5 + - hostPath: + path: /etc/ssh/ssh_known_hosts + type: File + name: etc-ssh-ssh_known_hosts-host-6 + - hostPath: + path: /lib/modules + type: Directory + name: lib-modules-host-7 + - hostPath: + path: /var/lib/nova + type: Directory + name: var-lib-nova-host-8 + - hostPath: + path: /etc/nvme + type: Directory + name: etc-nvme-host-9 + - hostPath: + path: /etc/multipath.conf + type: File + name: etc-multipath.conf-host-10 + - hostPath: + path: /etc/iscsi + type: Directory + name: etc-iscsi-host-12 + - hostPath: + path: /dev + type: Directory + name: dev-host-13 + - hostPath: + path: /var/lib/openstack/config/nova + type: Directory + name: var-lib-openstack-config-nova-host-14 + - hostPath: + path: /var/lib/openstack/config/ceph + type: Directory + name: var-lib-openstack-config-ceph-host-15 diff --git a/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.image b/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.image new file mode 100644 index 0000000..5eb45bb --- /dev/null +++ b/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@ovn_controller.service + +[Image] +Image=quay.io/podified-antelope-centos9/openstack-ovn-controller:current-podified diff --git a/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.yaml b/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.yaml new file mode 100644 index 0000000..e60d2cd --- /dev/null +++ b/bootc/embedded-services/quadlets/ovn-controller/ovn_controller.yaml @@ -0,0 +1,69 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + labels: + app: ovn_controller + name: ovn_controller +spec: + containers: + - args: + - "dumb-init" + - "--single-child" + - "--" + env: + - name: "LANG" + value: "en_US.UTF-8" + - name: "KOLLA_CONFIG_STRATEGY" + value: "COPY_ALWAYS" + - name: "PATH" + value: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - name: "container" + value: "oci" + - name: "HOME" + value: "/root" + - name: "HOSTNAME" + value: "{{ ansible_hostname }}" + command: + - "kolla_start" + name: ovn_controller + image: quay.io/podified-antelope-centos9/openstack-ovn-controller:current-podified + securityContext: + privileged: true + procMount: Unmasked + volumeMounts: + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-kolla-config_files-ovn_controller.json-host-0 + readOnly: true + - mountPath: /run + name: run-host-2 + - mountPath: /run/ovn + name: var-lib-openvswitch-ovn-host-3 + - mountPath: /lib/modules + name: lib-modules-host-5 + readOnly: true + - mountPath: /openstack + name: var-lib-openstack-healthchecks-ovn_controller-host-7 + readOnly: true + hostNetwork: true + volumes: + - hostPath: + path: /var/lib/kolla/config_files/ovn_controller.json + type: File + name: var-lib-kolla-config_files-ovn_controller.json-host-0 + - hostPath: + path: /run + type: Directory + name: run-host-2 + - hostPath: + path: /var/lib/openvswitch/ovn + type: Directory + name: var-lib-openvswitch-ovn-host-3 + - hostPath: + path: /lib/modules + type: Directory + name: lib-modules-host-5 + - hostPath: + path: /var/lib/openstack/healthchecks/ovn_controller + type: Directory + name: var-lib-openstack-healthchecks-ovn_controller-host-7 diff --git a/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.image b/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.image new file mode 100644 index 0000000..02dd4c3 --- /dev/null +++ b/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.image @@ -0,0 +1,5 @@ +[install] +WantedBy=edpm-compute@ovn_metadata_agent.service + +[Image] +image=quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified diff --git a/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.yaml b/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.yaml new file mode 100644 index 0000000..73af3b1 --- /dev/null +++ b/bootc/embedded-services/quadlets/ovn_metadata_agent/ovn_metadata_agent.yaml @@ -0,0 +1,82 @@ +--- +apiVersion: v1 +kind: Pod +metadata: + annotations: + bind-mount-options: /var/lib/openstack/cacerts/neutron-metadata/tls-ca-bundle.pem:z + creationTimestamp: "2024-11-21T04:34:05Z" + labels: + app: ovnmetadataagent-pod + name: ovnmetadataagent-pod +spec: + containers: + - args: + - kolla_start + env: + - name: KOLLA_CONFIG_STRATEGY + value: COPY_ALWAYS + - name: EDPM_CONFIG_HASH + value: c661c16705cc829f2e51e2cb6f2adca1d433ec4966d0205ba7d64f55e7f8fd97 + image: quay.io/podified-antelope-centos9/openstack-neutron-metadata-agent-ovn:current-podified + name: ovnmetadataagent + securityContext: + privileged: true + procMount: Unmasked + runAsGroup: 0 + runAsUser: 0 + volumeMounts: + - mountPath: /run/netns + name: run-netns-host-1 + - mountPath: /var/lib/kolla/config_files/config.json + name: var-lib-kolla-config_files-ovn_metadata_agent.json-host-2 + readOnly: true + - mountPath: /etc/neutron/kill_scripts + name: var-lib-neutron-kill_scripts-host-3 + readOnly: true + - mountPath: /run/openvswitch + name: run-openvswitch-host-4 + - mountPath: /openstack + name: var-lib-openstack-healthchecks-ovn_metadata_agent-host-5 + readOnly: true + - mountPath: /etc/neutron.conf.d + name: var-lib-config-data-ansible-generated-neutron-ovn-metadata-agent-host-6 + - mountPath: /var/lib/neutron + name: var-lib-neutron-host-7 + - mountPath: /usr/local/bin/haproxy + name: var-lib-neutron-ovn_metadata_haproxy_wrapper-host-8 + readOnly: true + hostNetwork: true + hostname: edpm-compute-0 + volumes: + - hostPath: + path: /run/netns + type: Directory + name: run-netns-host-1 + - hostPath: + path: /var/lib/kolla/config_files/ovn_metadata_agent.json + type: File + name: var-lib-kolla-config_files-ovn_metadata_agent.json-host-2 + - hostPath: + path: /var/lib/neutron/kill_scripts + type: Directory + name: var-lib-neutron-kill_scripts-host-3 + - hostPath: + path: /run/openvswitch + type: Directory + name: run-openvswitch-host-4 + - hostPath: + path: /var/lib/openstack/healthchecks/ovn_metadata_agent + type: Directory + name: var-lib-openstack-healthchecks-ovn_metadata_agent-host-5 + - hostPath: + path: /var/lib/config-data/ansible-generated/neutron-ovn-metadata-agent + type: Directory + name: var-lib-config-data-ansible-generated-neutron-ovn-metadata-agent-host-6 + - hostPath: + path: /var/lib/neutron + type: Directory + name: var-lib-neutron-host-7 + - hostPath: + path: /var/lib/neutron/ovn_metadata_haproxy_wrapper + type: File + name: var-lib-neutron-ovn_metadata_haproxy_wrapper-host-8 diff --git a/bootc/embedded-services/quadlets/systemd/service-template.kube b/bootc/embedded-services/quadlets/systemd/service-template.kube new file mode 100644 index 0000000..a3a0b01 --- /dev/null +++ b/bootc/embedded-services/quadlets/systemd/service-template.kube @@ -0,0 +1,11 @@ +[Unit] +Description=%i container +After=edpm-container-shutdown.service +After=openvswitch.service +Wants=openvswitch.service + +[Kube] +Yaml=/usr/share/containers/systemd/%i.yaml + +[Install] +WantedBy=multi-user.target