summaryrefslogtreecommitdiffstats
path: root/type/cntt/software/charts/osh/openstack-compute-kit/neutron-ovsdpdk.yaml
blob: 6c2d228451f702da616e3aebccffb2b02ba20650 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
---
# This file defines hardware-specific settings for neutron. If you use the same
# hardware profile as this environment, you should not need to change this file.
# Otherwise, you should review the settings here and adjust for your hardware.
# In particular:
# 1. logical network interface names
# 2. physical device mappigns
# TODO: Should move to global layer and become tied to the hardware profile
#
# OVS-DPDK NOTE:
#   This chart is created to support deployment of ovs-dpdk.
#   Do not use for env that uses regular ovs kernel.

schema: armada/Chart/v1
metadata:
  schema: metadata/Document/v1
  name: neutron-ovsdpdk
  labels:
    name: neutron-ovsdpdk-cntt
    component: neutron
  layeringDefinition:
    abstract: false
    layer: type
    parentSelector:
      name: neutron-global
      component: neutron
    actions:
      - method: merge
        path: .
  storagePolicy: cleartext
  substitutions:
    # Chart source
    - src:
        schema: pegleg/SoftwareVersions/v1
        name: software-versions
        path: .ovs-dpdk.charts.osh.neutron
      dest:
        path: .source
    # Images
    - src:
        schema: pegleg/SoftwareVersions/v1
        name: software-versions
        path: .ovs-dpdk.images.osh.neutron
      dest:
        path: .values.images.tags

    # OVS-DPDK settings for neutron
    - src:
        schema: pegleg/CommonAddresses/v1
        name: common-addresses-ovsdpdk
        path: .bridge_for_ovsdpdk
      dest:
        - path: .values.conf.ovs_dpdk.bridges[0].name
          pattern: TUNNEL_BRIDGE
        - path: .values.conf.ovs_dpdk.bonds[0].bridge
          pattern: TUNNEL_BRIDGE
        - path: .values.conf.plugins.openvswitch_agent.ovs.bridge_mappings
          pattern: TUNNEL_BRIDGE
        - path: .values.network.interface.tunnel
          pattern: TUNNEL_BRIDGE
    ## OVS-DPDK NOTE: Using storage network for dpdk work for now
    - src:
        schema: drydock/Network/v1
        name: storage
        path: .mtu
      dest:
        path: .values.conf.ovs_dpdk.bonds[0].mtu
    - src:
        schema: drydock/HardwareProfile/v1
        name: intel-s2600wt
        path: .device_aliases.data_nic2.address
      dest:
        path: .values.conf.ovs_dpdk.bonds[0].nics[0].pci_id
    - src:
        schema: drydock/HardwareProfile/v1
        name: intel-s2600wt
        path: .device_aliases.data_nic3.address
      dest:
        path: .values.conf.ovs_dpdk.bonds[0].nics[1].pci_id
data:
  wait:
    timeout: 1800
  test:
    timeout: 900
  values:
    labels:
      sriov:
        node_selector_key: sriov
        node_selector_value: enabled
    pod:
      replicas:
        server: 9
      security_context:
        neutron_sriov_agent:
          pod:
            runAsUser: 42424
          container:
            neutron_sriov_agent_init:
              privileged: true
              runAsUser: 0
              readOnlyRootFilesystem: false
            neutron_sriov_agent:
              readOnlyRootFilesystem: true
              privileged: true
      probes:
        dhcp_agent:
          dhcp_agent:
            readiness:
              enabled: false
            liveness:
              enabled: false
        l3_agent:
          l3_agent:
            readiness:
              enabled: false
            liveness:
              enabled: false
        metadata_agent:
          metadata_agent:
            readiness:
              enabled: false
            liveness:
              enabled: false
        ovs_agent:
          ovs_agent:
            liveness:
              enabled: false
        sriov_agent:
          sriov_agent:
            readiness:
              enabled: false
    network:
      interface:
        sriov:
          - device: ens785f1
            num_vfs: 32
            promisc: false
          - device: ens785f2
            num_vfs: 32
            promisc: false
        tunnel: TUNNEL_BRIDGE
      backend:
        - openvswitch
        - sriov
    conf:
      # api-paste entrypoint neutron.api.versions:Versions.factory was deprecated in Queens
      # See https://docs.openstack.org/releasenotes/neutron/queens.html:
      paste:
        app:neutronversions:
          paste.app_factory: neutron.pecan_wsgi.app:versions_factory
      ovs_dpdk:
        enabled: true
        driver: vfio-pci
        nics: []
        bridges:
          - name: TUNNEL_BRIDGE
        bonds:
          - name: dpdkbond0
            bridge: TUNNEL_BRIDGE
            # The IP from the first nic in nics list shall be used
            migrate_ip: false
            n_rxq: 4
            n_txq: 4
            n_rxq_size: 1024
            n_txq_size: 1024
            ovs_options: "bond_mode=active-backup"
            nics:
              - name: dpdk_b0s0
                vf_index: 0
              - name: dpdk_b0s1
                vf_index: 0
      neutron:
        DEFAULT:
          service_plugins: router,trunk
      plugins:
        openvswitch_agent:
          default:
            ovs_vsctl_timeout: 30
          agent:
            tunnel_types: ""
          securitygroup:
            enable_security_group: False
            firewall_driver: neutron.agent.firewall.NoopFirewallDriver
          ovs:
            bridge_mappings: ovsnet:TUNNEL_BRIDGE
            datapath_type: netdev
            of_connect_timeout: 60
            of_request_timeout: 30
            vhostuser_socket_dir: /var/run/openvswitch/vhostuser
        ml2_conf:
          ml2:
            mechanism_drivers: l2population,openvswitch,sriovnicswitch
          ml2_type_vlan:
            ## NOTE: Must have at least 1 sriov network defined
            network_vlan_ranges: external,sriovnet1:100:4000,sriovnet2:100:4000,ovsnet:2:4094
        sriov_agent:
          securitygroup:
            firewall_driver: neutron.agent.firewall.NoopFirewallDriver
          sriov_nic:
            ## NOTE: Must have at least 1 sriov network to physical device
            ##       mapping, otherwise sriov agent readiness check
            ##       will fail.
            physical_device_mappings: sriovnet1:ens785f1,sriovnet2:ens785f2
            exclude_devices: ens785f1:0000:05:06.0,ens785f2:05:0a.0
    # Need to wait for sriov agent to come up and configure VFs first
    dependencies:
      dynamic:
        targeted:
          openvswitch:
            ovs_agent:
              pod:
                - requireSameNode: true
                  labels:
                    application: neutron
                    component: neutron-sriov-agent
  dependencies:
    - neutron-htk-ovsdpdk
...
---
schema: armada/Chart/v1
metadata:
  schema: metadata/Document/v1
  name: neutron-htk-ovsdpdk
  labels:
    name: neutron-htk-ovsdpdk-cntt
    component: neutron
  layeringDefinition:
    abstract: false
    layer: type
  storagePolicy: cleartext
  substitutions:
    - src:
        schema: pegleg/SoftwareVersions/v1
        name: software-versions
        path: .ovs-dpdk.charts.osh.neutron-htk
      dest:
        path: .source
data:
  chart_name: neutron-htk
  release: neutron-htk
  namespace: neutron-htk
  values: {}
  dependencies: []
...