Roman, > This behavior is actually described in [1]. Should we allocate > VIPs on network check as well?
No, we shouldn't. We should check whether it's enough IPs for nodes / VIPs with current network configuration, but no more. - igor On Tue, Oct 20, 2015 at 4:54 PM, Igor Kalnitsky <ikalnit...@mirantis.com> wrote: > Andrew, > >> but the problem lies that VIP's need to already be allocated. > > Why? Fuel doesn't use them on this stage. > > >> They need to be allocated on network update, or when a node role requiring >> one is added to the environment. > > It looks like either you or me misunderstood something. AFAIK, node > role itself has nothing in common with VIPs. It doesn't require any of > them. > > Currently VIPs are requested by network roles, and network roles are > the same for all nodes (except Network Templating case). Network roles > are assigned on network, and if VIP is required for network role it > will be allocated in the assigned network. > > So basically, it requires a huge effort to redesign our allocation > system to achieve what you want, because: > > * Each time you reassign network role, the corresponding VIP should be > re-allocated in the database either. > * Each time you enable/disable plugins, the VIPs should be > re-allocated, because plugins may export network roles. > * Each time you add new node to cluster, the VIPs should be > re-allocated, because with new node you simply may run out of free > IPs. And, btw, should we assign IP on added nodes here? Or maybe > postpone to serialization step? > > Well, Andrew, I believe we don't have enough resources to implement > your proposal. Moreover, the proposed approach requires a lot of > discussions and design meetings. And it definitely should be > implemented in scope of some blueprint, not a bugfix. > > >> Not knowing the address until serialization for deployment is too late. > > Once again - why? I agree, perhaps it would be useful, but there's no > strict requirement on this and we should resolve our issues > step-by-step. See my response above. > > >> No, Again, this is too late. > > Too late for what? > > > - Igor > > On Tue, Oct 20, 2015 at 12:38 PM, Roman Prykhodchenko <m...@romcheg.me> wrote: >> My concern here is that there is also a Network check feature that according >> to its name should check things like whether or not there’s enough IP >> addresses in all ranges in a network. The problem is that it may be run at >> any time, even when VIPs are not yet allocated. From a user-side the >> workflow may look a little wrong: >> >> 1. Check network => get "Everything is fine" >> 2. Right after that press Apply Changes => get "Network configuration is >> bad" >> >> This behavior is actually described in [1]. Should we allocate VIPs on >> network check as well? >> >> >> 1. https://bugs.launchpad.net/fuel/+bug/1487996 >> >> >> - romcheg >> >> >>> 19 жовт. 2015 р. о 18:28 Igor Kalnitsky <ikalnit...@mirantis.com> >>> написав(ла): >>> >>> Hi Roman, >>> >>>> Not assign addresses to VIPs is a network configuration is being >>>> serialized for API output. >>> >>> AFAIK, that's not truth. Fuel UI and OSTF relies only on *public* VIP. >>> So we can keep only *public* VIP, and do not assign / show others. >>> >>>> Check number of IP addresses wherever it is possible to "spoil" network >>>> configuration: when a role get’s assigned to a node, when network >>>> changes or network templates are applied. >>> >>> It won't work that way. What if you enable plugin when all roles are >>> assigned? What if you change networks, and now it's not enough IPs? Or >>> what if enable plugin that requires 5 VIPs in public network by >>> default, and it's not enough. But by using network templates you >>> assign this netrole to management network? >>> >>> From what I can say the proposed approach requires to put checks >>> here-and-there around the code. Let's do not overcomplicate things >>> without real need. >>> >>> So let me share my thoughts regarding this issue. >>> >>> * We shouldn't *allocate* VIPs when we make GET request on network >>> configuration handler. It should return only *already allocated* VIPs >>> and no more. >>> * VIP allocation should be performed when we run deployment. >>> * Before deployment checks should fail, if there's not enough VIPs or >>> other resources. So users fix them, and try again. >>> * Both Fuel UI and OSTF needs VIPs only when cluster is deployed, and >>> it's safe to return allocated VIPs on that stage. >>> >>> So what do you think guys? >>> >>> Thanks, >>> Igor >>> >>> On Fri, Oct 16, 2015 at 5:25 PM, Roman Prykhodchenko <m...@romcheg.me> >>> wrote: >>>> Hi folks! >>>> >>>> I’ve been discussing several bugs [1-3] with some folks and noticed that >>>> they share the same root cause which is that network serialization fails, >>>> if there’s not enough IP addresses in all available ranges of one of the >>>> available networks to assign them to all VIPs. There are several possible >>>> solutions for this issue: >>>> >>>> a. Not assign addresses to VIPs is a network configuration is being >>>> serialized for API output. >>>> A lot of external tools and modules, i. e., OSTF, rely on that information >>>> so this relatively small change in Nailgun will require big >>>> cross-components changes. Therefore this change can only be done as a >>>> feature but it seems to be the way this issue must be fixed. >>>> >>>> b. Leave some VIPs without IP addresses >>>> If network configuration is generated for API output it is possible to >>>> leave some VIPs without IP addresses assigned. This will only create more >>>> mess around Nailgun and bring more issues that it will resolve. >>>> >>>> c. Check number of IP addresses wherever it is possible to "spoil" network >>>> configuration: when a role get’s assigned to a node, when network changes >>>> or network templates are applied. >>>> >>>> >>>> The proposal is to follow [c] as a fast solution and file a blueprint for >>>> [a]. Opinions? >>>> >>>> >>>> 1 https://bugs.launchpad.net/fuel/+bug/1487996 >>>> 2 https://bugs.launchpad.net/fuel/+bug/1500394 >>>> 3 https://bugs.launchpad.net/fuel/+bug/1504572 >>>> >>>> >>>> - romcheg >>>> >>>> __________________________________________________________________________ >>>> OpenStack Development Mailing List (not for usage questions) >>>> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >>>> >>> >>> __________________________________________________________________________ >>> OpenStack Development Mailing List (not for usage questions) >>> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> >> __________________________________________________________________________ >> OpenStack Development Mailing List (not for usage questions) >> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev