>From a certain point of view, OpenWRT is most likely not suitable for our
needs, this project is highly oriented for router appliance platforms and
kernel is most likely highly optimised for a small memory footprint and
might not have performance and virtualization in mind.

It's a shame that there is not some sort of API driven open source VyOS :-S

Anything useful that would come out of the CloudNative projects?


On Fri, Aug 13, 2021 at 5:48 AM Rohit Yadav <rohit.ya...@shapeblue.com>
wrote:

> Hi Pierre-Luc,
>
> Thanks for replying.
>
> We've another thread on-going to discuss IPv6 support where we've indeed
> discussed idea of introducing dynamic routing capabilities in the VR in a
> future phase with FRR in the VR.
>
> For the VR agent idea, I'm indeed thinking of API driven way (the agent
> exposes an API for CloudStack and a custom CLI perhaps) for it to manage
> iptables, software packages/services such as dnsmasq etc. Right now it's
> possible to configure some of the services in network offering (for ex. if
> you don't want LB etc).
>
> I've indeed looked at some alternatives:
>
>   *   Alpine: I experimented a new systemvmtemplate based on Alpine (
> https://github.com/shapeblue/alpine-systemvm) but we saw many cons with
> Alpine and the gains weren't significant so we decided to drop the idea of
> moving from Debian to Alpine.
>   *   VyOS: I've concerns about project and community (I could be wrong)
> to have our VR depend on it as the "default" provider; though I see an old
> PR
>   *   OpenWRT: Among available router distributions, I really liked it -
> it has (a) a good health and active community and commit activity (
> https://github.com/openwrt/openwrt/graphs/contributors), (b) multi-years
> (10+yrs) of releases (https://openwrt.org/about/history), (c) a
> configuration system (UCI) and UI (LUCI) which can be used to manage
> services, interfaces, firewall, routes etc with a Lua based API, (d) opkg
> packaging system, most software packages or equivalent are available that
> our Debian based systemvmtemplate needs/uses (java jre workaround from
> Alpine though), (e) good documentation on extending features/writing
> plugins etc, (f) they tend to do regular releases and use Linux/LTS kernel.
>   *   pfSense/opnSense: the major cons are FreeBSD-based kernel and skills
> that CloudStack community may not have in terms of debugging, investigation
> etc like they have for Linux
>
> Among the above, OpenWRT is probably worth exploring in my opinion; other
> some firewall/iptables and iproute2 (interfaces and routes) API/library
> that can be used by the VR agent on Debian to program the firewall (acls,
> firewall, pf), IP/interface management and routing features in the VR
> (currently it's all done in a manual sense which is untested and often
> source of bugs and issues).
>
> Lastly, we already have this PR which aims to do automatic
> systemvmtemplate registeration/installation/seeding and handle upgrades
> (targetted for 4.16): https://github.com/apache/cloudstack/pull/4329 The
> PR also unifies the systemvm template use to be extended for CKS use-case
> (i.e. no separate template installation required for CKS).
>
>
> Regards.
>
> ________________________________
> From: Pierre-Luc Dion <pdion...@apache.org>
> Sent: Thursday, August 12, 2021 16:45
> To: dev <dev@cloudstack.apache.org>
> Subject: Re: [DISCUSS] NextGen VR?
>
> Hi Rohit,
>
> Like it! Our VR system is due for some rethinking!
> I don't have much points to add to issues you highlight, it seems pretty
> complete.
>
> Here are some more features or ideas that would be interesting to see in a
> new VR system:
>  - Use or support for routing protocol, such as BGP or OSBP so we could
> provide a more dynamic PrivateGateway concept. using FRR[1]?
>  - have an API driven way to configure IPtables and other network services.
>  - could we decouple network services such as LB, VPNserver, gateways from
> the VR ?
>
> Debian has been  a pain for building VR because the iso defined in our
> config need constant update, but on the other hand it's been proved to be a
> reliable OS, we saw some of our VR with uptime over 1000 days.
>
> As an alternative OS, I'd be curious to look at VyOS[2] or Alpine Linux.
>
> From a certain perspective, us providing the systemvm template make sure
> that systemVM will deploy. work reliably and make it a single template to
> test. Compared to a system that would just  provide RPM/DEB packages and
> mechanism to push configs, this could require to test all kinds of template
> scenarios, since users could use any version of distro to deploy their
> systemVM/VRs.
>
> "Users forget to register the right systemvmtemplate for a new ACS version
> and upgrades fail": Maybe we could automatically register the new template
> during the upgrade process? This feature used to exist in the Citrix
> CloudPlatform.
>
>
> [1] https://frrouting.org/
> [2] https://github.com/vyos/vyos-1x
>
> On Wed, Aug 11, 2021 at 12:37 PM Rohit Yadav <rohit.ya...@shapeblue.com>
> wrote:
>
> > All,
> >
> > We've over the years create a VR that largely is stable but we've
> > discussed the pain of maintaining, extending, and upgrading VRs both in
> > lists and in user-groups and CCC conferences.
> >
> > On a high-level the pain points are:
> >
> >   *   It's difficult to debug, investigate VR for operators and support
> > team
> >   *   Maintaining the VR code, fixing bugs, implementing features is a
> > pain for developers; further the xml&json databags based programming
> model
> > is confusing
> >   *   Any fix or changes requires a new systemvmtemplate or VR codebase
> > whose patching requires restarting the VR or destroying an old VR
> >   *   No uniform VR programming API (current approach is SSH+databags and
> > execute a script), this makes testing VR difficult and QA in isolation is
> > not possible
> >   *   Users forget to register the right systemvmtemplate for a new ACS
> > version and upgrades fail
> >   *   Others (please share yours)?
> >
> > Among these pain points my colleagues have proposed a PR targeting 4.16
> > [1] that aims to unify systemvmtemplate as a building block that is
> bundled
> > as part of ACS rpm/deb/* packages which CloudStack will automatically
> > seed/register/use with which upgrades will be as simple as a yum update
> or
> > apt-get upgrade. Further, my colleagues and I are exploring a live patch
> > API which in near future that can patch a running systemvm/VR using
> > systemvm.iso (or deprecate systemvm.iso and use ssh/scp to patch?)
> without
> > requiring to reboot/recreate it. Hopefully, this addresses some of those
> > pain points. We request the community for your feedback and
> > review/participation in the PR.
> >
> > Open questions, topics to discuss and gather feedback:
> >
> >   *   VR programming: Should we explore a new light-weight VR agent that
> > provides an API (restful/grpc, or CLI?), some mechanism of live patching
> VR
> > code, packages, and kernel?
> >   *   Refactoring isolated network and VPC codebases into a unified
> > codebase and feature sets (assumption that isolated network are largely a
> > VPC with single tier), does it benefit the community, users, and
> developers?
> >   *   Underlying OS:
> >      *   should we consider something other than Debian, any suggestions?
> >      *   or explore stable/widely used and maintained opensource router
> > distributions such as OpenWRT [2] which ships with a UI and
> > CLI/configuration system UCI [3]? The cons of the approach are a new
> > dependency and some likely missing packages.
> >      *   In current VR codebase, most of the effort is spent in
> > implementing/maintaining router packages/configure codebase which we can
> > get rid of by depending on a stable Linux router distro which ships with
> > some API/config system. Not choosing an existing router distribution
> means
> > we continue to DIY router programming+config management codebase.
> >      *   Any other ideas?
> >
> > Thoughts, feedback?
> >
> > [1] https://github.com/apache/cloudstack/pull/4329
> > [2] https://github.com/openwrt/openwrt/graphs/contributors
> > [3] https://openwrt.org/docs/guide-user/base-system/uci
> >
> >
> > Regards.
> >
> >
> >
> >
>
>
>
>

Reply via email to