Group Based Policy
Go to file
Sumit Naiksatam a7903e971d [apic] Nested domain extension for networks
Attributes needed to support nesting of container
domains in OpenStack VMs are being added.

A new extension to the network resource which allows providing
the Kubernetes instance and the list of VLANs is being added. The
extension adds the following information:

apic:nested_domain_name - name of the Kubernetes domain; empty string if no nesting
apic:nested_domain_type - specific string used in APIC
apic:nested_domain_infra_vlan - this is 4093 for Kubernetes/OpenShift
apic:nested_domain_service_vlan -
apic:nested_domain_node_network_vlan -
apic:nested_domain_allowed_vlans - {'vlans_list': <[...,...]>,
                                    'vlan_ranges': <[{'start': <>, 'end': <>},
                                                     {'start': <>, 'end': <>},...]>}

The allowed VLANs specify the VLAN IDs used for tagging
Kubernetes pod and node traffic. The vlan_list can be used
for enumerating non-contiguous ranges, and/or the vlan_ranges
can be used for one one or more contiguos ranges.

Example CLI:
neutron net-create nn1 --apic:nested-domain-name kube \
                       --apic:nested-domain-type k8s \
                       --apic:nested_domain_infra_vlan 4093 \
                       --apic:nested_domain_node_network_vlan 3000 \
                       --apic:nested_domain_service_vlan 1000 \
                       --apic:nested_domain_allowed_vlans \
                       "{'vlans_list': [2, 3], \
                       'vlan_ranges': [{'start': 10, 'end': 12}]}"

Any VMs configured for host a nested domain also require
a "nested_host_vlan" configuration specified in the
"aim_mapping" section. This value is set to 4094 by default
but can be overridden to any VLAN that does not overlap
with any other VLAN used in the system. This VLAN is locally
significant and is only used so that the VM's traffic
intended for the neutron network is not dropped by the Opflex
agent configured flows.

Change-Id: Icb4ca8f4addb0f886450393c44c08d81ebfcea3c
2018-07-10 18:06:15 -07:00
devstack Remove SCREEN_LOGDIR from devstack 2018-01-24 12:55:45 +07:00
doc/source Replace Chinese quotes to English quotes 2018-02-12 10:41:23 +08:00
etc Remove monolithic service chain plugin and drivers 2017-06-13 13:35:03 -07:00
gbpservice [apic] Nested domain extension for networks 2018-07-10 18:06:15 -07:00
tools Fix tox_install script 2018-04-06 22:13:57 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:59:28 +00:00
.gitignore Status attributes for GBP resources 2016-06-22 01:29:46 -07:00
.gitreview Changing stackforge references 2015-10-17 13:43:25 -07:00
.testr.conf Raise OS_TEST_TIMEOUT 2017-09-13 20:58:48 +00:00
babel.cfg Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
CONTRIBUTING.rst Update the outdated links 2018-03-20 06:09:16 +00:00
HACKING.rst Update links to the latest addresses 2017-08-18 21:38:05 +08:00
LICENSE Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
MANIFEST.in Project boilerplate and base modules 2014-09-26 15:16:17 -07:00
openstack-common.conf Renaming gbp package to gbpservice 2014-12-31 19:13:19 -08:00
README.rst Add some acronyms for brevity in README 2017-10-13 17:24:42 +08:00
requirements.txt Pin keystoneclient to liberty branch 2016-01-14 10:08:36 -08:00
run_tests.sh fix test coverage report 2015-06-10 21:28:04 -07:00
setup.cfg [AIM] Validation/Repair/Migration Tool 2018-05-21 15:30:01 -04:00
setup.py Syncing with mitaka dependencies 2016-02-25 18:35:47 -08:00
test-requirements.txt SFC integration for AIM driver 2018-02-26 21:48:09 +00:00
TESTING.rst Adding dir structure for developer reference docs 2016-02-19 14:46:27 -08:00
tox.ini Use non-master branch of OpenStack requirements 2018-03-16 02:03:45 -07:00

Group Based Policy (GBP) provides declarative abstractions for achieving scalable intent-based infrastructure automation.

GBP complements the OpenStack networking model with the notion of policies that can be applied between groups of network endpoints. As users look beyond basic connectivity, richer network services with diverse implementations and network properties are naturally expressed as policies. Examples include service chaining, QoS, path properties, access control, etc.

GBP allows application administrators to express their networking requirements using a Group and a Policy Rules-Set abstraction. The specifics of policy rendering are left to the underlying pluggable policy driver.

GBP model also supports a redirect operation that makes it easy to abstract and consume complex network service chains and graphs.

Checkout the GBP wiki page for more detailed information: <https://wiki.openstack.org/wiki/GroupBasedPolicy>

The latest code is available at: <http://git.openstack.org/cgit/openstack/group-based-policy>.

GBP project management (blueprints, bugs) is done via Launchpad: <https://launchpad.net/group-based-policy>

For help using or hacking on GBP, you can send mail to <mailto:openstack-dev@lists.openstack.org>.

Acronyms used in code for brevity:

  • PT: Policy Target
  • PTG: Policy Target Group
  • PR: Policy Rule
  • PRS: Policy Rule Set
  • L2P: L2 Policy
  • L3P: L3 Policy
  • NSP: Network Service Policy
  • EP: External Policy
  • ES: External Segment
  • SC: Service Chain
  • SP: Service Profile