VyConfProject
ActivePublic

Details

Description

Software appliance configuration framework

Recent Activity

Fri, Sep 8

dmbaturin created T387: Prevent command injection in VyConf external validator execution.
Fri, Sep 8, 6:05 AM · VyConf

Thu, Sep 7

dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@sebastianm In VyConf it's going to be fairly easy (ok, possible at least) to implement different input and output formats, so chances are we can add | display json or | display yaml filters if there's demand for it.

Thu, Sep 7, 10:23 PM · VyOS 2.0.x, VyConf

Mon, Aug 28

JulesT added a comment to V3: Tag node syntax for VyOS 2.0.

To my mind... I'd rather keep a compatible syntax than a new one, even if there are benefits in terms of uniformity and parsing.

Mon, Aug 28, 9:36 PM · VyOS 2.0.x, VyConf
sebastianm added a comment to V3: Tag node syntax for VyOS 2.0.

I say don't change it. I'd consider JSON/YAML though. (I am/was lylylyly on IRC).

Mon, Aug 28, 8:25 PM · VyOS 2.0.x, VyConf

Jul 24 2017

syncer removed a member for VyConf: kostiantyn.
Jul 24 2017, 6:03 PM
syncer set the image for VyConf to F15957: profile.
Jul 24 2017, 10:58 AM
syncer changed the join policy for VyConf.
Jul 24 2017, 10:55 AM

Feb 26 2017

afics added a watcher for VyConf: afics.
Feb 26 2017, 7:06 PM
creaworlds added a member for VyConf: creaworlds.
Feb 26 2017, 12:06 AM

Feb 8 2017

shon added a comment to T255: Add curly config renderer.
Feb 8 2017, 1:03 PM · VyOS 2.0.x, VyConf

Jan 26 2017

amata added a watcher for VyConf: amata.
Jan 26 2017, 4:13 PM

Jan 18 2017

shon claimed T255: Add curly config renderer.

Following a discussion with @dmbaturin in #vyos, I'm to work on this puppy.

Jan 18 2017, 3:23 AM · VyOS 2.0.x, VyConf

Jan 17 2017

dmbaturin closed T250: Implement intuitive node sorting as Resolved.
Jan 17 2017, 6:42 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T250: Implement intuitive node sorting.

I think we can just reference it directly.

Jan 17 2017, 7:05 AM · VyOS 2.0.x, VyConf
shon added a comment to T250: Implement intuitive node sorting.

In that case, BatString can just be added as a dependency, I guess, and we can call upon that function to sort as needed? Or would you still like a specific function for node sorting?

Jan 17 2017, 6:24 AM · VyOS 2.0.x, VyConf
dmbaturin added a comment to T250: Implement intuitive node sorting.

I've just done a quick test of the BatString.numeric_compare, looks perfect.

Jan 17 2017, 6:19 AM · VyOS 2.0.x, VyConf
shon added a comment to T250: Implement intuitive node sorting.

Depending on your feelings toward batteries, we could either use BatString's numeric_compare or just crib the implementation of that function (with all due credit given, of course).

Jan 17 2017, 3:12 AM · VyOS 2.0.x, VyConf
shon added a comment to T250: Implement intuitive node sorting.

I like this kind of problem.

Jan 17 2017, 12:00 AM · VyOS 2.0.x, VyConf

Jan 16 2017

dmbaturin closed T2: Make sure set/delete functions can be used without path validation as Resolved.

Already implemented in Config_tree.

Jan 16 2017, 9:39 AM · VyConf
dmbaturin added a comment to T28: Add auto provisioning.

This has nothing to do with vyconf. Please move it out of the project, and to vyos 1.2.0

Jan 16 2017, 9:39 AM · VyOS 1.2.x

Jan 15 2017

dmbaturin closed T245: Add support for the old tag node syntax to the curly config parser as Resolved.
Jan 15 2017, 6:38 PM · VyOS 2.0.x, VyConf
dmbaturin closed T249: Add support for "inactive" and "ephemeral" node properties to the parser as Resolved.
Jan 15 2017, 6:36 PM · VyConf, VyOS 2.0.x

Jan 14 2017

dmbaturin closed T216: Decide on the wire protocol for VyConf as Resolved.

Protobuf schema has been written.

Jan 14 2017, 6:46 PM · VyOS 2.0.x, VyConf
dmbaturin updated the task description for T255: Add curly config renderer.
Jan 14 2017, 8:36 AM · VyOS 2.0.x, VyConf
dmbaturin created T255: Add curly config renderer.
Jan 14 2017, 8:31 AM · VyOS 2.0.x, VyConf

Jan 13 2017

jclendenan added a comment to V3: Tag node syntax for VyOS 2.0.

I'm a "NO" as a network engineer with a bunch of different brands already XORP style, or as close to JunOS as you can get it the best. Yet another (Similar) config style would be way too much frustration for most of my peers to even consider.

Jan 13 2017, 9:27 PM · VyOS 2.0.x, VyConf
dmbaturin created T254: Global node name validation in VyConf.
Jan 13 2017, 1:19 PM · VyOS 2.0.x, VyConf
dmbaturin assigned T231: Add a function from loading interface definitions from a directory to the Startup module to shon.
Jan 13 2017, 7:16 AM · VyConf, VyOS 2.0.x
shon added a comment to T231: Add a function from loading interface definitions from a directory to the Startup module.

@dmbaturin, you can probably assign this one to me, if you feel comfortable doing so. I think I'm nearly done. I'd just like to put together some decent test cases before making a PR.

Jan 13 2017, 3:23 AM · VyConf, VyOS 2.0.x

Jan 12 2017

dmbaturin created T251: Implement component dependency sorting.
Jan 12 2017, 2:08 AM · VyOS 2.0.x, VyConf

Jan 11 2017

dmbaturin updated the task description for T250: Implement intuitive node sorting.
Jan 11 2017, 9:39 PM · VyOS 2.0.x, VyConf
dmbaturin created T250: Implement intuitive node sorting.
Jan 11 2017, 9:39 PM · VyOS 2.0.x, VyConf
dmbaturin created T249: Add support for "inactive" and "ephemeral" node properties to the parser.
Jan 11 2017, 4:48 AM · VyConf, VyOS 2.0.x

Jan 9 2017

mickvav added a comment to V3: Tag node syntax for VyOS 2.0.

Well, my vote is "No", because if for small configs it's OK to have just intent-expressed syntax, if you have huge one, e.g. several pages - if you omit prefix before, say, 55, you will have to guess from context, if it is a vlan or preffix list entry, or VRRP group or whatever.

Jan 9 2017, 7:54 AM · VyOS 2.0.x, VyConf
adestis added a comment to V3: Tag node syntax for VyOS 2.0.

The suggestion from @rps (XORP style) seems to be the best way from my point of view:
https://phabricator.vyos.net/V3#51

Jan 9 2017, 7:13 AM · VyOS 2.0.x, VyConf
dmbaturin edited the description of V3: Tag node syntax for VyOS 2.0.
Jan 9 2017, 5:34 AM · VyOS 2.0.x, VyConf
dmbaturin created T245: Add support for the old tag node syntax to the curly config parser.
Jan 9 2017, 4:47 AM · VyOS 2.0.x, VyConf

Jan 8 2017

rps added a comment to V3: Tag node syntax for VyOS 2.0.

With respect to the concerns I mentioned above, I've voted no.

Jan 8 2017, 6:46 PM · VyOS 2.0.x, VyConf
systo added a comment to V3: Tag node syntax for VyOS 2.0.

@dmbaturin, Im with you on the aesthetics, and the readability. In the firewall ruleset example I still feel that the first is easier read than the second. Are we talking hundreds of lines to parse the former vs the latter? It seems like the later, across a whole config would at 10-20 lines if not more depending on the complexity. I for one am interested in seeing as much of the config on one screen, vs needlessly needing to scroll. As for your Q on pfSense, I've had to edit the xml configuration file by hand based on how pfSense sorts VLANs based on their add date vs numerical value.

Jan 8 2017, 6:12 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@tmartinson Well, you should change your vote then (votes are not final here, for the better I guess).

Jan 8 2017, 3:43 PM · VyOS 2.0.x, VyConf
rps added a comment to V3: Tag node syntax for VyOS 2.0.

I keep coming back to a sense that dramatic syntax changes are very damaging and disruptive to users. My fear is that we'll be spending years explaining to people that they're looking at old documentation or examples and that they don't have their curly braces in the right place. Or that we'll alienate a segment of our user base that is averse to change.

Jan 8 2017, 3:08 PM · VyOS 2.0.x, VyConf
tmartinson added a comment to V3: Tag node syntax for VyOS 2.0.

In the example above, I vote that the first example where name Foo and rule 10 are on the same line. It is much easier to read, and shortens up the output on the display. Sometimes with long configurations, it is easier when you can see more information on the same screen without scrolling.

Jan 8 2017, 3:04 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@systo Just to make sure you are looking at it the right way, in the large it's actually less verbose than old syntax. The vif may not be the best example but firewall would make it apparent:

Jan 8 2017, 12:49 PM · VyOS 2.0.x, VyConf
systo added a comment to V3: Tag node syntax for VyOS 2.0.

As an end user, I just keep coming back to the verbosity of the syntax, and the divergence from all the other established command syntax in this space. VyOS doesn't have the following to do it differently, as it adds another barrier to adoption. Its a subtle change, but it has a long reach, especially when luring former vyatta or EdgeOS converts that want to roll-their-own, vs buy MIPS hardware. While I understand it may save coding time in the end, I'm trying to avoid the verbosity that is pfsense, and awall/shorewall. I bet if you asked a room of non-vyos engineers, they would prefer the first syntax with a much higher percentage, but alas I digress.

Jan 8 2017, 8:57 AM · VyOS 2.0.x, VyConf

Jan 6 2017

whiskeyalpharomeo added a comment to V3: Tag node syntax for VyOS 2.0.

Any change that imparts simplicity for the coding ahead is worthwhile. Time saved in the parser's reduced complexity can be spent in other ways.

Jan 6 2017, 12:35 AM · VyOS 2.0.x, VyConf

Jan 5 2017

dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@rps An serious issue with "interfaces { eth0" is that when there is no parent subtree of all ethernet interfaces specifically, we don't know which script to call when something in "eth0" changes. We'd have to have one big script that handles the whole "interfaces" subtree, which is very problematic when it comes to adding new interface types. If eth* interfaces are children of the "ethernet" node and tun* interfaces are children of the "tunnel" node, it's easy to attach ethernet script to the "ethernet" node and "tunnel" script to the "tunnel" node, if we want to add "openvpn" later, we won't have to modify that large script to accomodate it

Jan 5 2017, 3:43 PM · VyOS 2.0.x, VyConf
rps added a comment to V3: Tag node syntax for VyOS 2.0.

I haven't voted yet because I haven't decided ... It's a big change.

Jan 5 2017, 2:44 PM · VyOS 2.0.x, VyConf
dmbaturin added a comment to V3: Tag node syntax for VyOS 2.0.

@rps No, that's not the biggest challenge. Semicolon at the end of leaf nodes makes them unambiguous enough and easy to tell from tag nodes (this is especially bad with valueless nodes by the way, think "disable", colon wouldn't help there, but semicolon at the end does the job). The biggest challenge is that with "ethernet eth0" the parser must be fully stateful and capable of tracking which parent nodes it's already seen. "eth0", "eth1" etc. are really children of the same node called "ethernet", but in the config they appear separately. Consider this unusual but logically valid config:

Jan 5 2017, 2:02 PM · VyOS 2.0.x, VyConf
Merijn added a comment to V3: Tag node syntax for VyOS 2.0.

@rps this distinction also seems to be easy in the original proposed solution by @dmbaturin because key value pairs are not followed by '{' and the rest is.

Jan 5 2017, 1:57 PM · VyOS 2.0.x, VyConf
rps added a comment to V3: Tag node syntax for VyOS 2.0.

From a parsing perspective the only challenge tag nodes present is that you can't easily distinguish between "key value" and "key tag" without context. "key" and "key tag value" are fine. Using a ":" you get "key: value" vs "key tag" which removes the ambiguity.

Jan 5 2017, 1:45 PM · VyOS 2.0.x, VyConf