{"id":20111488,"url":"https://github.com/openstack/charm-neutron-gateway","last_synced_at":"2025-05-06T11:30:44.125Z","repository":{"id":6054752,"uuid":"52858829","full_name":"openstack/charm-neutron-gateway","owner":"openstack","description":"Juju Charm - Neutron Gateway. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2024-06-22T04:09:40.000Z","size":3014,"stargazers_count":19,"open_issues_count":0,"forks_count":13,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-06-22T15:56:44.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/charm-neutron-gateway","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openstack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-01T07:55:41.000Z","updated_at":"2024-06-22T15:56:46.972Z","dependencies_parsed_at":"2023-02-14T15:45:22.167Z","dependency_job_id":"abc3fa4c-145c-49e1-b055-2bdf25d0a986","html_url":"https://github.com/openstack/charm-neutron-gateway","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-neutron-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-neutron-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-neutron-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fcharm-neutron-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/charm-neutron-gateway/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224499851,"owners_count":17321605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T18:16:18.410Z","updated_at":"2024-11-13T18:16:19.204Z","avatar_url":"https://github.com/openstack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nThe neutron-gateway charm deploys the data plane of\n[Neutron][upstream-neutron], the core OpenStack service that provides software\ndefined networking (SDN) for Nova instances. This provides the Neutron Gateway\nservice, which in turn supplies two key services: L3 network routing and DHCP.\nThe charm works alongside other Juju-deployed OpenStack applications; in\nparticular: neutron-openvswitch, nova-compute, and nova-cloud-controller.\n\n\u003e **Note**: Starting with OpenStack Train, the neutron-gateway and\n  neutron-openvswitch charm combination can be replaced by the [OVN\n  charms][cdg-ovn] (e.g. ovn-central, ovn-chassis, and neutron-api-plugin-ovn).\n\n# Usage\n\n## Configuration\n\nThis section covers common and/or important configuration options. See file\n`config.yaml` for the full list of options, along with their descriptions and\ndefault values. See the [Juju documentation][juju-docs-config-apps] for details\non configuring applications.\n\n#### `data-port`\n\nA bridge that Neutron Gateway will bind to, given in the form of a\nspace-delimited bridge:port mapping (e.g. 'br-ex:ens8'). The port will be added\nto its corresponding bridge.\n\n\u003e **Note**: If network device names are not consistent between hosts (e.g.\n  'eth1' and 'ens8') a list of values can be provided where a MAC address is\n  used in the place of a device name. The charm will iterate through the list\n  and configure the first matching interface.\n\nThe specified bridge(s) should match the one(s) defined in the\n`bridge-mappings` option.\n\nFlat or VLAN network types are supported.\n\nThe device itself must not have any L3 configuration. In MAAS, it must have an\nIP mode of 'Unconfigured'.\n\n#### `bridge-mappings`\n\nA space-delimited list of ML2 data provider:bridge mappings (e.g.\n'physnet1:br-ex'). The specified bridge(s) should match the one(s) defined in\nthe `data-port` option.\n\n#### `openstack-origin`\n\nThe `openstack-origin` option states the software sources. A common value is an\nOpenStack UCA release (e.g. 'cloud:bionic-ussuri' or 'cloud:focal-victoria').\nSee [Ubuntu Cloud Archive][wiki-uca]. The underlying host's existing apt\nsources will be used if this option is not specified (this behaviour can be\nexplicitly chosen by using the value of 'distro').\n\n## Deployment\n\nThese deployment instructions assume the following pre-existing applications:\nneutron-api, nova-cloud-controller, and rabbitmq-server.\n\n\u003e **Important**: For Neutron Gateway to function properly, the\n  nova-cloud-controller charm must have its `network-manager` option set to\n  'Neutron'.\n\nDeploy Neutron Gateway:\n\n    juju deploy neutron-gateway\n    juju add-relation neutron-gateway:quantum-network-service nova-cloud-controller:quantum-network-service\n    juju add-relation neutron-gateway:neutron-plugin-api neutron-api:neutron-plugin-api\n    juju add-relation neutron-gateway:amqp rabbitmq-server:amqp\n\n### Port configuration\n\nNetwork ports are configured with the `bridge-mappings` and `data-port` options\nbut the neutron-api charm also has several relevant options (e.g.\n`flat-network-providers`, `vlan-ranges`, etc.). Additionally, the network\ntopology can be further defined with supplementary `openstack` client commands.\n\n\u003c!-- The two trailing spaces for each of the below three example headers is\ndeliberate. --\u003e\n\n**Example 1**  \nThis configuration has a single external network and is typically used when\nfloating IP addresses are combined with a GRE private network.\n\nCharm option values (YAML):\n\n    neutron-gateway:\n        bridge-mappings: physnet1:br-ex\n        data-port: br-ex:eth1\n    neutron-api:\n        flat-network-providers: physnet1\n\nSupplementary commands:\n\n    openstack network create --provider-network-type flat \\\n       --provider-physical-network physnet1 --external \\\n       external\n    openstack router set router1 --external-gateway external\n\n**Example 2**  \nThis configuration is for two networks, where an internal private network is\ndirectly connected to the gateway with public IP addresses but a floating IP\naddress range is also offered.\n\nCharm option values (YAML):\n\n    neutron-gateway:\n        bridge-mappings: physnet1:br-data external:br-ex\n        data-port: br-data:eth1 br-ex:eth2\n    neutron-api:\n        flat-network-providers: physnet1 external\n\n**Example 3**  \nThis configuration has two external networks, where one is for public instance\naddresses and one is for floating IP addresses. Both networks are on the same\nphysical network connection (but they might be on different VLANs).\n\nCharm option values (YAML):\n\n    neutron-gateway:\n        bridge-mappings: physnet1:br-data\n        data-port: br-data:eth1\n    neutron-api:\n        flat-network-providers: physnet1\n\nSupplementary commands:\n\n    openstack network create --provider-network-type vlan \\\n       --provider-segment 400 \\\n       --provider-physical-network physnet1 --share \\\n       external\n    openstack network create --provider-network-type vlan \\\n       --provider-segment 401 \\\n       --provider-physical-network physnet1 --share --external \\\n       floating\n    openstack router set router1 --external-gateway floating\n\n#### legacy `ext-port` option\n\nThe `ext-port` option is deprecated and is superseded by the `data-port`\noption. The `ext-port` option always created a bridge called 'br-ex' for\nexternal networks that was used implicitly by external router interfaces.\n\nThe following will occur if both the `data-port` and `ext-port` options are\nset:\n\n* the neutron-gateway unit will be marked as 'blocked' to indicate that the\n  charm is misconfigured\n* the `ext-port` option will be ignored\n* a warning will be logged\n\n## Instance MTU\n\nWhen using Open vSwitch plugin with GRE tunnels the default MTU of 1500 can\ncause packet fragmentation due to GRE overhead. One solution to this problem is\nto increase the MTU on physical hosts and network equipment. When this is not\nfeasible the charm's `instance-mtu` option can be used to reduce instance MTU\nvia DHCP:\n\n    juju config neutron-gateway instance-mtu=1400\n\n\u003e **Note**: The `instance-mtu` option is supported starting with OpenStack\n  Havana.\n\n## Actions\n\nThis section covers Juju [actions][juju-docs-actions] supported by the charm.\nActions allow specific operations to be performed on a per-unit basis. To\ndisplay action descriptions run `juju actions --schema neutron-gateway`. If the\ncharm is not deployed then see file `actions.yaml`.\n\n* `cleanup`\n* `get-status-dhcp`\n* `get-status-lb`\n* `get-status-routers`\n* `openstack-upgrade`\n* `pause`\n* `restart-services`\n* `resume`\n* `restart-services`\n* `run-deferred-hooks`\n* `security-checklist`\n* `show-deferred-events`\n\n## Deferred service events\n\nOperational or maintenance procedures applied to a cloud often lead to the\nrestarting of various OpenStack services and/or the calling of certain charm\nhooks. Although normal, such events can be undesirable due to the service\ninterruptions they can cause.\n\nThe deferred service events feature provides the operator the choice of\npreventing these service restarts and hook calls from occurring, which can then\nbe resolved at a more opportune time.\n\nSee the [Deferred service events][cdg-deferred-service-events] page in the\n[OpenStack Charms Deployment Guide][cdg] for an in-depth treatment of this\nfeature.\n\n# Documentation\n\nThe OpenStack Charms project maintains two documentation guides:\n\n* [OpenStack Charm Guide][cg]: for project information, including development\n  and support notes\n* [OpenStack Charms Deployment Guide][cdg]: for charm usage information\n\n# Bugs\n\nPlease report bugs on [Launchpad][lp-bugs-charm-neutron-gateway].\n\n\u003c!-- LINKS --\u003e\n\n[cg]: https://docs.openstack.org/charm-guide\n[cdg]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide\n[cdg-deferred-service-events]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/deferred-events.html\n[lp-bugs-charm-neutron-gateway]: https://bugs.launchpad.net/charm-neutron-gateway/+filebug\n[juju-docs-config-apps]: https://juju.is/docs/configuring-applications\n[upstream-neutron]: https://docs.openstack.org/neutron/latest/\n[juju-docs-actions]: https://jaas.ai/docs/actions\n[cdg-ovn]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/app-ovn.html\n[wiki-uca]: https://wiki.ubuntu.com/OpenStack/CloudArchive\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-neutron-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Fcharm-neutron-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fcharm-neutron-gateway/lists"}