Integrating partner content Red Hat OpenStack Services on OpenShift 18.0 Integrating and certifying third-party software and hardware for Red Hat OpenStack Services on OpenShift OpenStack Documentation Team rhos-docs@redhat.com

Commands:
FROM registry.redhat.io/rhoso/openstack-cinder-volume-rhel9:18.0.0 1 LABEL name="rhoso18/openstack-cinder-volume-partnerX-plugin" maintainer="maintainer@partnerX.com" vendor="PartnerX" summary="RHOSO 18.0 cinder-volume PartnerX PluginY" description="RHOSO 18.0 cinder-volume PartnerX PluginY" 2 Switch to root to install software dependencies USER root Enable a repo to install a package 3 COPY vendorX.repo /etc/yum.repos.d/vendorX.repo RUN dnf clean all && dnf install -y vendorX-plugin Install a package over the network 4 RUN dnf install -y http://vendorX.com/partnerX-plugin.rpm Install a local package 5 COPY partnerX-plugin.rpm /tmp RUN dnf install -y /tmp/partnerX-plugin.rpm && rm -f /tmp/partnerX-plugin.rpm Install a python package from PyPI 6 RUN curl -OL https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py --no-setuptools --no-wheel && pip3 install partnerX-plugin && rm -f get-pip.py Add required license as text file(s) in /licenses directory (GPL, MIT, APACHE, Partner End User Agreement, etc) RUN mkdir /licenses COPY licensing.txt /licenses Switch to cinder user USER cinder
apiVersion: core.openstack.org/v1beta1 kind: OpenStackVersion metadata: name: openstack spec: customContainerImages: cinderVolumeImages: backend-X1: registry.connect.redhat.com/partnerX/openstack-cinder-volume-partnerX-plugin backend-X2: registry.connect.redhat.com/partnerX/openstack-cinder-volume-partnerX-plugin 1 backend-Y: registry.connect.redhat.com/partnerY/openstack-cinder-volume-partnerY-plugin manilaShareImages: 2 backend-Z: registry.connect.redhat.com/partnerZ/openstack-manila-share-partnerZ-plugin
apiVersion: v1 kind: Secret metadata: name: cinder-volume-example-config 1 type: Opaque stringData: config.xml: | 2 <example-credentials>example</example-credentials> 3
apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack spec: cinder: template: cinderApi: cinderScheduler: cinderVolumes: example: 1 customServiceConfig: | [example] volume_backend_name=example volume_driver=cinder....ExampleDriver networkAttachments: - storage replicas: 1 extraMounts: 2 - extraVol: - mounts: - name: example-config mountPath: /etc/cinder/config.xml 3 subPath: config.xml 4 readOnly: true propagation: - example 5 volumes: - name: example-config secret: secretName: cinder-volume-example-config 6
FROM registry.redhat.io/rhoso/openstack-neutron-server-rhel9:18.0.1 1 LABEL name="rhoso18/openstack-neutron-server-partnerX-plugin" maintainer="maintainer@partnerX.com" vendor="PartnerX" summary="RHOSO 18.0 neutron-server PartnerX PluginY" description="RHOSO 18.0 neutron-server PartnerX PluginY" 2 Switch to root to install software dependencies USER root Enable a repo to install a package 3 COPY vendorX.repo /etc/yum.repos.d/vendorX.repo RUN dnf clean all && dnf install -y vendorX-plugin Install a package over the network 4 RUN dnf install -y http://vendorX.com/partnerX-plugin.rpm Install a local package 5 COPY partnerX-plugin.rpm /tmp RUN dnf install -y /tmp/partnerX-plugin.rpm && rm -f /tmp/partnerX-plugin.rpm Install a python package from PyPI 6 RUN curl -OL https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py --no-setuptools --no-wheel && pip3 install partnerX-plugin && rm -f get-pip.py Add required license as text file(s) in /licenses directory (GPL, MIT, APACHE, Partner End User Agreement, etc) RUN mkdir /licenses COPY licensing.txt /licenses Switch to neutron user USER neutron
apiVersion: core.openstack.org/v1beta1 kind: OpenStackVersion metadata: name: openstack spec: customContainerImages: neutronAPIImage: registry.connect.redhat.com/partnerX/openstack-neutron-server-partnerX-plugin:18.0.1
apiVersion: v1 kind: Secret metadata: name: cinder-volume-example-config 1 type: Opaque stringData: partner_config.ini: | 2 example_credentials=example 3
apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack spec: neutron: template: databaseAccount: neutron databaseInstance: openstack memcachedInstance: memcached networkAttachments: - internalapi passwordSelectors: service: NeutronPassword rabbitMqClusterName: rabbitmq replicas: 1 secret: osp-secret serviceUser: neutron ml2MechanismDrivers: - partner-mech-driver 1 customServiceConfig: | 2 [example] foo=bar extraMounts: 3 - extraVol: - mounts: - name: partner-config mountPath: /etc/neutron/neutron.conf.d/partner_config.ini 4 subPath: partner_config.ini 5 readOnly: true volumes: - name: partner-config secret: secretName: neutron-server-partnerX-config 6
FROM quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest COPY neutron_agent_partner_role /usr/share/ansible/roles/neutron_agent_partner_role 1 COPY playbooks/neutron_agent_partner.yaml /usr/share/ansible/collections/ansible_collections/osp/edpm/playbooks/ 2
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: neutron-custom-partner-service 1 spec: label: dataplane-deployment-neutron-custom-partner-service playbook: osp.edpm.neutron_agent_partner 2 openStackAnsibleEERunnerImage: openstack-ansibleee-partnerX-runner:latest 3
apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: openstack-edpm spec: services: - download-cache - bootstrap - configure-network - validate-network - install-os - configure-os - run-os - neutron-custom-partner-service 1 - libvirt - nova nodes: edpm-compute: ansible: ansibleHost: 172.20.12.67 ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret ansibleUser: cloud-admin ansibleVars: ansible_ssh_transfer_method: scp ctlplane_ip: 172.20.12.67 external_ip: 172.20.12.76 fqdn_internalapi: edpm-compute-1.example.com internalapi_ip: 172.17.0.101 storage_ip: 172.18.0.101 tenant_ip: 172.10.0.101 hostName: edpm-compute-0 networkConfig: {} nova: cellName: cell1 deploy: true novaInstance: nova