diff --git a/dt/perfscale/scalelab/kustomization.yaml b/dt/perfscale/scalelab/kustomization.yaml index 2411a3966..5c29e8dfe 100644 --- a/dt/perfscale/scalelab/kustomization.yaml +++ b/dt/perfscale/scalelab/kustomization.yaml @@ -173,3 +173,137 @@ replacements: name: ctlplane fieldPaths: - spec.interfaces.0 + + # Octavia + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.enabled + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.enabled + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.amphoraImageContainerImage + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.amphoraImageContainerImage + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.apacheContainerImage + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.apacheContainerImage + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaAPI.networkAttachments + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaAPI.networkAttachments + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaHousekeeping.networkAttachments + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaHousekeeping.networkAttachments + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaHealthManager.networkAttachments + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaHealthManager.networkAttachments + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaWorker.networkAttachments + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaWorker.networkAttachments + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaAPI.customServiceConfig + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaAPI.customServiceConfig + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaHealthManager.customServiceConfig + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaHealthManager.customServiceConfig + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaHousekeeping.customServiceConfig + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaHousekeeping.customServiceConfig + options: + create: true + + - source: + kind: ConfigMap + name: service-values + fieldPath: data.octavia.octaviaWorker.customServiceConfig + targets: + - select: + kind: OpenStackControlPlane + fieldPaths: + - spec.octavia.template.octaviaWorker.customServiceConfig + options: + create: true diff --git a/dt/perfscale/scalelab/networking/kustomization.yaml b/dt/perfscale/scalelab/networking/kustomization.yaml index 2408f8365..1f2d2b0ee 100644 --- a/dt/perfscale/scalelab/networking/kustomization.yaml +++ b/dt/perfscale/scalelab/networking/kustomization.yaml @@ -2,8 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1alpha1 kind: Component +secretGenerator: + - name: octavia-ca-passphrase + literals: + - server-ca-passphrase=12345678 + options: + disableNameSuffixHash: true + resources: - externalapi.yaml + - octavia_netattach.yaml transformers: # Set namespace to OpenStack on all namespaced objects without a namespace @@ -82,3 +90,14 @@ replacements: name: ctlplane fieldPaths: - spec.interfaces.0 + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.net-attach-def + targets: + - select: + kind: NetworkAttachmentDefinition + name: octavia + fieldPaths: + - spec.config diff --git a/dt/perfscale/scalelab/networking/nncp/kustomization.yaml b/dt/perfscale/scalelab/networking/nncp/kustomization.yaml new file mode 100644 index 000000000..0ae962c32 --- /dev/null +++ b/dt/perfscale/scalelab/networking/nncp/kustomization.yaml @@ -0,0 +1,187 @@ +--- +apiVersion: kustomize.config.k8s.io/v1alpha1 +kind: Component + +transformers: + - |- + apiVersion: builtin + kind: NamespaceTransformer + metadata: + name: _ignored_ + namespace: openstack + setRoleBindingSubjects: none + unsetOnly: true + fieldSpecs: + - path: metadata/name + kind: Namespace + create: true + +components: + - ../../../../../lib/nncp + +patches: + - target: + kind: NodeNetworkConfigurationPolicy + name: master-0 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia vlan host interface + name: octavia + state: up + type: vlan + vlan: + base-iface: _replaced_ + id: _replaced_ + + - target: + kind: NodeNetworkConfigurationPolicy + name: master-0 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia bridge + mtu: 1500 + name: octbr + type: linux-bridge + bridge: + options: + stp: + enabled: false + port: + - name: octavia + + - target: + kind: NodeNetworkConfigurationPolicy + name: master-1 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia vlan host interface + name: octavia + state: up + type: vlan + vlan: + base-iface: _replaced_ + id: _replaced_ + + - target: + kind: NodeNetworkConfigurationPolicy + name: master-1 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia bridge + mtu: 1500 + name: octbr + type: linux-bridge + bridge: + options: + stp: + enabled: false + port: + - name: octavia + + - target: + kind: NodeNetworkConfigurationPolicy + name: master-2 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia vlan host interface + name: octavia + state: up + type: vlan + vlan: + base-iface: _replaced_ + id: _replaced_ + + - target: + kind: NodeNetworkConfigurationPolicy + name: master-2 + patch: |- + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia bridge + mtu: 1500 + name: octbr + type: linux-bridge + bridge: + options: + stp: + enabled: false + port: + - name: octavia + +replacements: + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.base_iface + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-0 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.base-iface + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.vlan + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-0 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.id + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.base_iface + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-1 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.base-iface + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.vlan + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-1 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.id + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.base_iface + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-2 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.base-iface + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.vlan + targets: + - select: + kind: NodeNetworkConfigurationPolicy + name: master-2 + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.id diff --git a/dt/perfscale/scalelab/networking/octavia_netattach.yaml b/dt/perfscale/scalelab/networking/octavia_netattach.yaml new file mode 100644 index 000000000..d59e60095 --- /dev/null +++ b/dt/perfscale/scalelab/networking/octavia_netattach.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: k8s.cni.cncf.io/v1 +kind: NetworkAttachmentDefinition +metadata: + name: octavia + labels: + osp/net: octavia + osp/net-attach-def-type: standard diff --git a/examples/dt/perfscale/scalelab/networking/nncp/kustomization.yaml b/examples/dt/perfscale/scalelab/networking/nncp/kustomization.yaml index cb4f98473..918ef5987 100644 --- a/examples/dt/perfscale/scalelab/networking/nncp/kustomization.yaml +++ b/examples/dt/perfscale/scalelab/networking/nncp/kustomization.yaml @@ -52,6 +52,30 @@ patches: vlan: base-iface: _replaced_ id: "_replaced_" + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia vlan host interface + name: octavia + state: up + type: vlan + vlan: + base-iface: _replaced_ + id: _replaced_ + - op: add + path: /spec/desiredState/interfaces/- + value: + description: Octavia bridge + mtu: 1500 + name: octbr + type: linux-bridge + state: up + bridge: + options: + stp: + enabled: false + port: + - name: octavia replacements: # External VLAN base interface @@ -130,3 +154,22 @@ replacements: kind: NodeNetworkConfigurationPolicy fieldPaths: - spec.desiredState.interfaces.[name=external].ipv4.address.0.prefix-length + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.base_iface + targets: + - select: + kind: NodeNetworkConfigurationPolicy + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.base-iface + + - source: + kind: ConfigMap + name: network-values + fieldPath: data.octavia.vlan + targets: + - select: + kind: NodeNetworkConfigurationPolicy + fieldPaths: + - spec.desiredState.interfaces.[name=octavia].vlan.id diff --git a/examples/dt/perfscale/scalelab/networking/nncp/values.yaml b/examples/dt/perfscale/scalelab/networking/nncp/values.yaml index 6ca710213..cc540168f 100644 --- a/examples/dt/perfscale/scalelab/networking/nncp/values.yaml +++ b/examples/dt/perfscale/scalelab/networking/nncp/values.yaml @@ -191,6 +191,30 @@ data: "range_end": "172.16.15.250" } } + octavia: + dnsDomain: octavia.example.com + mtu: 1500 + vlan: 29 + base_iface: ens2f0np0 + net-attach-def: | + { + "cniVersion": "0.3.1", + "name": "octavia", + "type": "bridge", + "bridge": "octbr", + "ipam": { + "type": "whereabouts", + "range": "172.23.0.0/16", + "range_start": "172.23.0.30", + "range_end": "172.23.0.70", + "routes": [ + { + "dst": "172.24.0.0/16", + "gw": "172.23.0.150" + } + ] + } + } dns-resolver: config: server: diff --git a/examples/dt/perfscale/scalelab/service-values.yaml b/examples/dt/perfscale/scalelab/service-values.yaml index 33e477582..686ae6e36 100644 --- a/examples/dt/perfscale/scalelab/service-values.yaml +++ b/examples/dt/perfscale/scalelab/service-values.yaml @@ -30,6 +30,8 @@ data: ovn-encap-type: geneve system-id: random networkAttachment: tenant + nicMappings: + octavia: octbr resources: {} tls: {} glance: @@ -64,3 +66,23 @@ data: customServiceConfig: | [filter_scheduler] enabled_filtes = AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter + octavia: + enabled: true + amphoraImageContainerImage: quay.io/gthiemonge/octavia-amphora-image + apacheContainerImage: registry.redhat.io/ubi9/httpd-24:latest + octaviaAPI: + customServiceConfig: '# add your customization here' + networkAttachments: + - internalapi + octaviaHousekeeping: + customServiceConfig: '# add your customization here' + networkAttachments: + - octavia + octaviaHealthManager: + customServiceConfig: '# add your customization here' + networkAttachments: + - octavia + octaviaWorker: + customServiceConfig: '# add your customization here' + networkAttachments: + - octavia