should be a way to specify space binding for maas "unconfigured" (layer-2) interface

Bug #1659376 reported by Larry Michel
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Canonical Juju
Triaged
Low
Unassigned
OpenStack Neutron Gateway Charm
Opinion
Wishlist
Unassigned
neutron-gateway (Juju Charms Collection)
Invalid
Undecided
Unassigned

Bug Description

Some network charms have requirements that a particular interface be connected to a specific network and that the interface be left unconfigured.

When using "data" binding for the neutron-gateway charm and deploying bundle with Juju 2.1-beta4-xenial-amd64 and MAAS Version 2.1.3+bzr5573-0ubuntu1, having the interface with a subnet associated with "data" space and unconfigured caused the charm to fail to install because it could not access network config for the interface on the OS. But in this case, it is a valid scenario for the interface to be left unconfigured and we should not see the error.

Also refer to bug 1659360.

tags: added: network
Changed in juju:
status: New → Triaged
importance: Undecided → High
milestone: none → 2.2.0
Revision history for this message
John A Meinel (jameinel) wrote :

Supporting unconfigured interfaces is something that we do want to support. I would think we already have a bug about this, but maybe it was only a road map item. The charm had a workaround for it in the past (IIRC white listing MAC Addresses in the charm config), which is absolutely a workaround for us not having the right pieces modeled to expose it properly. Did 2.1b4 break the existing workaround or is it that you were hoping unconfigured space support was already implemented?

James Page (james-page)
Changed in neutron-gateway (Juju Charms Collection):
status: New → Invalid
Curtis Hovey (sinzui)
Changed in juju:
milestone: 2.2-beta1 → 2.2-beta2
tags: added: cdo-qa-blocker
Ryan Beisner (1chb1n)
tags: added: uosci
Changed in juju:
milestone: 2.2-beta2 → 2.2-beta3
Revision history for this message
Anastasia (anastasia-macmood) wrote :

As per comment # 5, we most certainly want to implement unconfigured space support. However, with 2.2 timeline and our current capacity, it will not be addressed in 2.2x.

I am removing it from milestone.

Changed in juju:
milestone: 2.2-beta3 → none
Revision history for this message
Larry Michel (lmic) wrote :

@John sorry I had not seen your earlier question. This is for new enablement of bindings in our bundle. So we don't know how the workaround worked prior to hitting this issue.

Changed in juju:
milestone: none → 2.3-alpha1
John A Meinel (jameinel)
summary: - neutron-gateway/0 install failure - should be a way to specify space
- binding for maas "unconfigured" interface
+ should be a way to specify space binding for maas "unconfigured"
+ interface
Revision history for this message
Tim Penhey (thumper) wrote : Re: should be a way to specify space binding for maas "unconfigured" interface

Changing the tag name as this isn't a blocking bug, but instead a requested feature.

tags: added: cdo-qa-feature
removed: cdo-qa-blocker
John A Meinel (jameinel)
tags: added: binding layer-2
summary: should be a way to specify space binding for maas "unconfigured"
- interface
+ (layer-2) interface
Revision history for this message
Peter Sabaini (peter-sabaini) wrote :

Just as a data point, I'd need this for a bit diff. usecase; for a cloud that calls for a publicly accessible api which we'd like to put in containers. We only have a small subnet available for that, and to save on ipaddress we have to leave the metal hosts configured with mode=link_up; only giving the actual containers ipaddress in the spaces subnet.

tags: added: canonical-bootstack
removed: binding layer-2
tags: added: binding layer-2
James Page (james-page)
Changed in charm-neutron-gateway:
status: New → Triaged
importance: Undecided → Wishlist
Changed in juju:
milestone: 2.3-beta1 → 2.3-beta2
Changed in juju:
milestone: 2.3-beta2 → none
Revision history for this message
Trent Lloyd (lathiat) wrote :

As part of the implementation for this, currently charms often need to get the network interface related to an IP. Currently they use the network-get charm command to get the IP of the space, but then have to figure out what interface that IP is on manually. Ideally the charm API would be expanded to specifically give the interface.

Having said that there is a trap here when things change after deployment, by either juju or the system administrator. Right now juju or MAAS won't let you change network interfaces after deployment so manual changes might be made which juju may or may not know about.

On the juju side, a case it knows about is when an interface is moved to be a bridge, e.g. when a container is deployed on that interface. That can happen during inital deploy, but could also happen much later if a container was deployed for the first time.

Just some thoughts.

Revision history for this message
Trent Lloyd (lathiat) wrote :

There is an additional security argument for this feature.

Right now, if you want to deploy a container onto a space, that space must be configured with an active IP address on the metal host.

You can configure an interface in MAAS with the space defined but the IP unconfigured. In this case, while the interface and it's MTU will be written to the interfaces file, juju will not recognize the host as having an interface on that space and deployment of a container will fail.

It is completely possible to still create a bridge on the interface and deploy the container in this configuration, without having an IP on the host, however juju does not know how to do so.

Peter Sabaini's comment from 2017-05-31 argued that we want this same behavior to save IP addresses on the (possibly small) public subnet. But we also want this behaviour so that the metal host (often with sensitive services such as nova-compute or ceph-osd) are not exposed to a public internet subnet unexpectedly.

This has been a real issue in real deployments, public routable IPs are assigned to host only for the reason of connecting the public-api space in containers. This has resulted in the unexpected exposition of sensitive services to the public internet. There is no simple way currently to implement a firewall for such cases.

In MAAS environments we have no security groups or automatic firewalls in many cases to work around this issue.

If we need to move this use case into a separate bug, let me know. It's a bit borderline as it's closely related but technically is a different use case to wanting a raw interface to use for other purposes.

tags: added: cpe-onsite
Revision history for this message
Peter Sabaini (peter-sabaini) wrote :

subscribed ~field-medium as we're hitting this again

Revision history for this message
Peter Sabaini (peter-sabaini) wrote :

Subscribing field-high as we have clouds running out of ipaddr

Revision history for this message
Drew Freiberger (afreiberger) wrote :

Agree with Trent and Peter, MAAS concept of spaces is L2, but currently juju concept of spaces is L3. While an L2 space doesn't make sense for charm use in the manner of private_address(binding_relation_name), it does make sense for subordinate use and network interface pass-through to OVS/other L3 management layer plugins.

Revision history for this message
Ryan Beisner (1chb1n) wrote :

This seems like it woudld require re-engineering of a Juju feature/primitive in order to properly address. I think it would need to be planned development cycle work, not break/fix bug work. As such, I'm not sure anyone can put a Field SLA on it. I'll take it to the next Juju/OpenStack engineering cross-team, however, to confirm.

Changed in charm-neutron-gateway:
status: Triaged → Opinion
Revision history for this message
Canonical Juju QA Bot (juju-qa-bot) wrote :

This bug has not been updated in 2 years, so we're marking it Low importance. If you believe this is incorrect, please update the importance.

Changed in juju:
importance: High → Low
tags: added: expirebugs-bot
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.