mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
Merge pull request #1591 from dmbaturin/sagitta-updates
Updates for project changes since Sagitta release
This commit is contained in:
commit
a75b18016b
@ -14,72 +14,41 @@ Building using a :ref:`build_docker` container, although not the only way,
|
|||||||
is the easiest way as all dependencies are managed for you. However, you can
|
is the easiest way as all dependencies are managed for you. However, you can
|
||||||
also set up your own build machine and run a :ref:`build_native`.
|
also set up your own build machine and run a :ref:`build_native`.
|
||||||
|
|
||||||
.. note:: Starting with VyOS 1.2 the release model of VyOS has changed. VyOS
|
.. note:: Starting with VyOS 1.4, only source code and Debian package repositories
|
||||||
is now **free as in speech, but not as in beer**. This means that while
|
of the rolling release (the **current** branch) are publicly available.
|
||||||
VyOS is still an open source project, the release ISOs are no longer free
|
|
||||||
and can only be obtained via subscription, or by contributing to the
|
|
||||||
community.
|
|
||||||
|
|
||||||
The source code remains public and an ISO can be built using the process
|
The source code and pre-built Debian package repositories of LTS releases
|
||||||
outlined in this chapter.
|
are only available to subscription holders (customers and active community members
|
||||||
|
with contributors subscriptions).
|
||||||
|
|
||||||
The following includes the build process for VyOS 1.2 to the latest version.
|
The following includes the build process for VyOS rolling release.
|
||||||
|
|
||||||
This will guide you through the process of building a VyOS ISO using Docker_.
|
This will guide you through the process of building a VyOS ISO using Docker_.
|
||||||
This process has been tested on clean installs of Debian Jessie, Stretch, and
|
This process has been tested on clean installs of Debian Bookworm.
|
||||||
Buster.
|
|
||||||
|
|
||||||
.. _build_native:
|
.. _build_native:
|
||||||
|
|
||||||
Native Build
|
Native Build
|
||||||
============
|
============
|
||||||
|
|
||||||
To build VyOS natively you require a properly configured build host with the
|
To build VyOS natively you need a properly configured build host with the
|
||||||
following Debian versions installed:
|
following Debian versions installed:
|
||||||
|
|
||||||
- Debian Jessie for VyOS 1.2 (crux)
|
- Debian Bookworm
|
||||||
- Debian Buster for VyOS 1.3 (equuleus)
|
|
||||||
- Debian Bookworm for VyOS 1.4 (sagitta)
|
|
||||||
- Debian Bookworm for the upcoming VyOS 1.5/circinus/current
|
|
||||||
(subject to change) - aka the rolling release
|
|
||||||
|
|
||||||
To start, clone the repository to your local machine:
|
To start, clone the repository to your local machine:
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
# For VyOS 1.2 (crux)
|
|
||||||
$ git clone -b crux --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.3 (equuleus)
|
|
||||||
$ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ git clone -b sagitta --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.5 (circinus,current)
|
|
||||||
$ git clone -b current --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
$ cd vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.2 (crux) and VyOS 1.3 (equuleus)
|
|
||||||
$ ./configure --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
|
||||||
$ sudo make iso
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ sudo make clean
|
$ sudo make clean
|
||||||
$ sudo ./build-vyos-image iso --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
$ sudo ./build-vyos-image --architecture amd64 --build-by "j.randomhacker@vyos.io" generic
|
||||||
|
|
||||||
# For VyOS 1.5 (circinus,current)
|
|
||||||
$ sudo make clean
|
|
||||||
$ sudo ./build-vyos-image generic --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
|
||||||
|
|
||||||
For the packages required, you can refer to the ``docker/Dockerfile`` file
|
For the packages required, you can refer to the ``docker/Dockerfile`` file
|
||||||
in the repository_. The ``./build-vyos-image`` script will also warn you if any
|
in the repository_. The ``./build-vyos-image`` script will also warn you if any
|
||||||
dependencies are missing.
|
dependencies are missing.
|
||||||
|
|
||||||
This will guide you through the process of building a VyOS ISO using Docker.
|
This will guide you through the process of building a VyOS ISO using Docker.
|
||||||
This process has been tested on clean installs of Debian Bullseye (11) and
|
This process has been tested on clean installs of Bookworm (12).
|
||||||
Bookworm (12).
|
|
||||||
|
|
||||||
.. _build_docker:
|
.. _build_docker:
|
||||||
|
|
||||||
@ -142,10 +111,7 @@ To manually download the container from DockerHub, run:
|
|||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
$ docker pull vyos/vyos-build:crux # For VyOS 1.2
|
$ docker pull vyos/vyos-build:current # For VyOS rolling release
|
||||||
$ docker pull vyos/vyos-build:equuleus # For VyOS 1.3
|
|
||||||
$ docker pull vyos/vyos-build:sagitta # For VyOS 1.4
|
|
||||||
$ docker pull vyos/vyos-build:current # For VyOS 1.5 rolling release
|
|
||||||
|
|
||||||
Build from source
|
Build from source
|
||||||
^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^
|
||||||
@ -154,20 +120,10 @@ The container can also be built directly from source:
|
|||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
# For VyOS 1.2 (crux)
|
|
||||||
$ git clone -b crux --single-branch https://github.com/vyos/vyos-build
|
|
||||||
# For VyOS 1.3 (equuleus)
|
|
||||||
$ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ git clone -b sagitta --single-branch https://github.com/vyos/vyos-build
|
|
||||||
# For VyOS 1.5 (circinus,current)
|
|
||||||
$ git clone -b current --single-branch https://github.com/vyos/vyos-build
|
$ git clone -b current --single-branch https://github.com/vyos/vyos-build
|
||||||
|
|
||||||
$ cd vyos-build
|
$ cd vyos-build
|
||||||
$ docker build -t vyos/vyos-build:crux docker # For VyOS 1.2
|
$ docker build -t vyos/vyos-build:current docker
|
||||||
$ docker build -t vyos/vyos-build:equuleus docker # For VyOS 1.3
|
|
||||||
$ docker build -t vyos/vyos-build:sagitta docker # For VyOS 1.4
|
|
||||||
$ docker build -t vyos/vyos-build:current docker # For VyOS 1.5 rolling release
|
|
||||||
|
|
||||||
.. note:: VyOS has switched to Debian (12) Bookworm in its ``current`` branch,
|
.. note:: VyOS has switched to Debian (12) Bookworm in its ``current`` branch,
|
||||||
Due to software version updates, it is recommended to use the official
|
Due to software version updates, it is recommended to use the official
|
||||||
@ -177,7 +133,7 @@ Tips and Tricks
|
|||||||
---------------
|
---------------
|
||||||
|
|
||||||
You can create yourself some handy Bash aliases to always launch the latest -
|
You can create yourself some handy Bash aliases to always launch the latest -
|
||||||
per release train (`current` or `crux`) - container. Add the following to your
|
per release train (`current`) - container. Add the following to your
|
||||||
``.bash_aliases`` file:
|
``.bash_aliases`` file:
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
@ -191,16 +147,7 @@ per release train (`current` or `crux`) - container. Add the following to your
|
|||||||
-e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \
|
-e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \
|
||||||
vyos/vyos-build:current bash'
|
vyos/vyos-build:current bash'
|
||||||
|
|
||||||
alias vybld_crux='docker pull vyos/vyos-build:crux && docker run --rm -it \
|
Now you are prepared with a new aliase ``vybld`` to spawn
|
||||||
-v "$(pwd)":/vyos \
|
|
||||||
-v "$HOME/.gitconfig":/etc/gitconfig \
|
|
||||||
-v "$HOME/.bash_aliases":/home/vyos_bld/.bash_aliases \
|
|
||||||
-v "$HOME/.bashrc":/home/vyos_bld/.bashrc \
|
|
||||||
-w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 \
|
|
||||||
-e GOSU_UID=$(id -u) -e GOSU_GID=$(id -g) \
|
|
||||||
vyos/vyos-build:crux bash'
|
|
||||||
|
|
||||||
Now you are prepared with two new aliases ``vybld`` and ``vybld_crux`` to spawn
|
|
||||||
your development containers in your current working directory.
|
your development containers in your current working directory.
|
||||||
|
|
||||||
.. note:: Some VyOS packages (namely vyos-1x) come with build-time tests which
|
.. note:: Some VyOS packages (namely vyos-1x) come with build-time tests which
|
||||||
@ -220,20 +167,9 @@ Build ISO
|
|||||||
|
|
||||||
Now as you are aware of the prerequisites we can continue and build our own
|
Now as you are aware of the prerequisites we can continue and build our own
|
||||||
ISO from source. For this we have to fetch the latest source code from GitHub.
|
ISO from source. For this we have to fetch the latest source code from GitHub.
|
||||||
Please note as this will differ for both `current` and `crux`.
|
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
# For VyOS 1.2 (crux)
|
|
||||||
$ git clone -b crux --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.3 (equuleus)
|
|
||||||
$ git clone -b equuleus --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ git clone -b sagitta --single-branch https://github.com/vyos/vyos-build
|
|
||||||
|
|
||||||
# For VyOS 1.5 (circinus,current)
|
|
||||||
$ git clone -b current --single-branch https://github.com/vyos/vyos-build
|
$ git clone -b current --single-branch https://github.com/vyos/vyos-build
|
||||||
|
|
||||||
|
|
||||||
@ -243,57 +179,20 @@ Now a fresh build of the VyOS ISO can begin. Change directory to the
|
|||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
$ cd vyos-build
|
$ cd vyos-build
|
||||||
# For VyOS 1.2 (crux)
|
|
||||||
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:crux bash
|
|
||||||
|
|
||||||
# For VyOS 1.3 (equuleus)
|
|
||||||
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:equuleus bash
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:sagitta bash
|
|
||||||
|
|
||||||
# For VyOS 1.5 (current)
|
|
||||||
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash
|
$ docker run --rm -it --privileged -v $(pwd):/vyos -w /vyos vyos/vyos-build:current bash
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
# For MacOS (crux, equuleus, sagitta)
|
|
||||||
$ git clone https://github.com/vyos/vyos-utils-misc
|
|
||||||
$ cd build-tools/macos-build
|
|
||||||
|
|
||||||
# For VyOS 1.2 (crux)
|
|
||||||
$ os=jessie64 branch=crux make build
|
|
||||||
|
|
||||||
# For VyOS 1.3 (equuleus)
|
|
||||||
$ os=buster64 branch=equuleus make build
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
$ os=buster64 branch=sagitta make build
|
|
||||||
|
|
||||||
Start the build:
|
Start the build:
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
# For VyOS 1.2 (crux) and VyOS 1.3 (equuleus)
|
|
||||||
vyos_bld@8153428c7e1f:/vyos$ ./configure --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
|
||||||
vyos_bld@8153428c7e1f:/vyos$ sudo make iso
|
|
||||||
|
|
||||||
# For VyOS 1.4 (sagitta)
|
|
||||||
vyos_bld@8153428c7e1f:/vyos$ sudo make clean
|
vyos_bld@8153428c7e1f:/vyos$ sudo make clean
|
||||||
vyos_bld@8153428c7e1f:/vyos$ sudo ./build-vyos-image iso --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
vyos_bld@8153428c7e1f:/vyos$ sudo ./build-vyos-image --architecture amd64 --build-by "j.randomhacker@vyos.io" generic
|
||||||
|
|
||||||
# For VyOS 1.5 (circinus,current)
|
|
||||||
vyos_bld@8153428c7e1f:/vyos$ sudo make clean
|
|
||||||
vyos_bld@8153428c7e1f:/vyos$ sudo ./build-vyos-image generic --architecture amd64 --build-by "j.randomhacker@vyos.io"
|
|
||||||
|
|
||||||
When the build is successful, the resulting iso can be found inside the
|
When the build is successful, the resulting iso can be found inside the
|
||||||
``build`` directory as ``live-image-[architecture].hybrid.iso``.
|
``build`` directory as ``live-image-[architecture].hybrid.iso``.
|
||||||
|
|
||||||
Good luck!
|
|
||||||
|
|
||||||
.. hint:: Building VyOS on Windows WSL2 with Docker integrated into WSL2 will
|
|
||||||
work like a charm. No problems are known so far!
|
|
||||||
|
|
||||||
.. _build source:
|
.. _build source:
|
||||||
|
|
||||||
|
|
||||||
@ -736,39 +635,6 @@ Simply use our wrapper script to build all of the driver modules.
|
|||||||
I: Cleanup qat source
|
I: Cleanup qat source
|
||||||
|
|
||||||
|
|
||||||
After compiling the packages you will find yourself the newly generated `*.deb`
|
|
||||||
binaries in ``vyos-build/packages/linux-kernel`` from which you can copy them
|
|
||||||
to the ``vyos-build/packages`` folder for inclusion during the ISO build.
|
|
||||||
|
|
||||||
|
|
||||||
Mellanox OFED
|
|
||||||
^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The Mellanox OFED drivers do not come from a Git repository, instead we fetch the
|
|
||||||
tarball from Nvidia and compile the sources its contains against our kernel tree.
|
|
||||||
|
|
||||||
Simply use our wrapper script to build all of the driver modules.
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
./build-mellanox-ofed.sh
|
|
||||||
...
|
|
||||||
Below is the list of OFED packages that you have chosen
|
|
||||||
(some may have been added by the installer due to package dependencies):
|
|
||||||
|
|
||||||
ofed-scripts
|
|
||||||
mlnx-tools
|
|
||||||
mlnx-ofed-kernel-utils
|
|
||||||
mlnx-ofed-kernel-modules
|
|
||||||
...
|
|
||||||
Building packages
|
|
||||||
Building DEB for ofed-scripts-24.04.OFED.24.04.0.6.6 (ofed-scripts)...
|
|
||||||
Running /usr/bin/dpkg-buildpackage -us -uc
|
|
||||||
Installing ofed-scripts-24.04.OFED.24.04.0.6.6...
|
|
||||||
Running /usr/bin/dpkg -i --force-confmiss '/vyos/packages/linux-kernel/MLNX_OFED_SRC-debian-24.04-0.6.6.0/DEBS/debian12.1/x86_64/ofed-scripts_24.04.OFED.24.04.0.6.6-1_amd64.deb'
|
|
||||||
Building DEB for mlnx-tools-24.04.0 (mlnx-tools)...
|
|
||||||
|
|
||||||
|
|
||||||
After compiling the packages you will find yourself the newly generated `*.deb`
|
After compiling the packages you will find yourself the newly generated `*.deb`
|
||||||
binaries in ``vyos-build/packages/linux-kernel`` from which you can copy them
|
binaries in ``vyos-build/packages/linux-kernel`` from which you can copy them
|
||||||
to the ``vyos-build/packages`` folder for inclusion during the ISO build.
|
to the ``vyos-build/packages`` folder for inclusion during the ISO build.
|
||||||
@ -816,29 +682,6 @@ during ISO build.
|
|||||||
|
|
||||||
.. start_vyoslinter
|
.. start_vyoslinter
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Virtualization Platforms
|
|
||||||
========================
|
|
||||||
|
|
||||||
QEMU
|
|
||||||
----
|
|
||||||
|
|
||||||
Run the following command after building the ISO image.
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
$ make qemu
|
|
||||||
|
|
||||||
VMware
|
|
||||||
------
|
|
||||||
|
|
||||||
Run the following command after building the QEMU image.
|
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
$ make vmware
|
|
||||||
|
|
||||||
.. _build_packages:
|
.. _build_packages:
|
||||||
|
|
||||||
********
|
********
|
||||||
|
|||||||
@ -119,20 +119,11 @@ repositories found in the VyOS GitHub organisation at https://github.com/vyos
|
|||||||
Determinine source package
|
Determinine source package
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
Suppose you want to make a change in the webproxy script but yet you do not know
|
Suppose you want to make a change in a file but yet you do not know
|
||||||
which of the many VyOS packages ship this file. You can determine the VyOS
|
which of the VyOS packages ship this file. You can determine the VyOS
|
||||||
package name in question by using Debian's ``dpkg -S`` command of your running
|
package name in question by using Debian's ``dpkg -S`` command of your running
|
||||||
VyOS installation.
|
VyOS installation.
|
||||||
|
|
||||||
.. code-block:: none
|
|
||||||
|
|
||||||
vyos@vyos:~ dpkg -S /opt/vyatta/sbin/vyatta-update-webproxy.pl
|
|
||||||
vyatta-webproxy: /opt/vyatta/sbin/vyatta-update-webproxy.pl
|
|
||||||
|
|
||||||
This means the file in question (``/opt/vyatta/sbin/vyatta-update-webproxy.pl``)
|
|
||||||
is located in the ``vyatta-webproxy`` package which can be found here:
|
|
||||||
https://github.com/vyos/vyatta-webproxy
|
|
||||||
|
|
||||||
|
|
||||||
Fork Repository and submit Patch
|
Fork Repository and submit Patch
|
||||||
--------------------------------
|
--------------------------------
|
||||||
@ -171,7 +162,7 @@ record them in your created Git commit:
|
|||||||
* Submit the patch ``git push`` and create the GitHub pull-request.
|
* Submit the patch ``git push`` and create the GitHub pull-request.
|
||||||
|
|
||||||
|
|
||||||
Attach patch to Phabricator task
|
Attach patch to Phorge task
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
Follow the above steps on how to "Fork repository to submit a Patch". Instead
|
Follow the above steps on how to "Fork repository to submit a Patch". Instead
|
||||||
@ -192,9 +183,6 @@ us all. By having a consistent coding style it becomes very easy for new
|
|||||||
and also longtime contributors to navigate through the sources and all the
|
and also longtime contributors to navigate through the sources and all the
|
||||||
implied logic of any one source file..
|
implied logic of any one source file..
|
||||||
|
|
||||||
Python 3 **shall** be used. How long can we keep Python 2 alive anyway? No
|
|
||||||
considerations for Python 2 compatibility **should** be taken at any time.
|
|
||||||
|
|
||||||
|
|
||||||
Formatting
|
Formatting
|
||||||
----------
|
----------
|
||||||
@ -219,43 +207,6 @@ used for structured, multi-line formats such as those used by ISC DHCPd.
|
|||||||
The default template processor for VyOS code is Jinja2_.
|
The default template processor for VyOS code is Jinja2_.
|
||||||
|
|
||||||
|
|
||||||
Summary
|
|
||||||
-------
|
|
||||||
|
|
||||||
When modifying the source code, remember these rules of the legacy elimination
|
|
||||||
campaign:
|
|
||||||
|
|
||||||
* No new features in Perl
|
|
||||||
* No old style command definitions
|
|
||||||
* No code incompatible with Python3
|
|
||||||
|
|
||||||
|
|
||||||
Python
|
|
||||||
======
|
|
||||||
|
|
||||||
The switch to the Python programming language for new code is not merely a
|
|
||||||
change of the language, but a chance to rethink and improve the programming
|
|
||||||
approach.
|
|
||||||
|
|
||||||
Let's face it: VyOS is full of spaghetti code where logic for reading the VyOS
|
|
||||||
config, generating daemon configs, and restarting processes is all mixed up.
|
|
||||||
|
|
||||||
Python (or any other language, for that matter) does not provide automatic
|
|
||||||
protection from bad design, so we need to also devise design guidelines and
|
|
||||||
follow them to keep the system extensible and maintainable.
|
|
||||||
|
|
||||||
But we are here to assist you and want to guide you through how you can become
|
|
||||||
a good VyOS contributor. The rules we have are not there to punish you - the
|
|
||||||
rules are in place to help us all. What does it mean? By having a consistent
|
|
||||||
coding style it becomes very easy for new contributors and also longtime
|
|
||||||
contributors to navigate through the sources and all the implied logic of
|
|
||||||
the spaghetti code.
|
|
||||||
|
|
||||||
Please use the following template as good starting point when developing new
|
|
||||||
modules or even rewrite a whole bunch of code in the new style XML/Python
|
|
||||||
interface.
|
|
||||||
|
|
||||||
|
|
||||||
Configuration Script Structure and Behaviour
|
Configuration Script Structure and Behaviour
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
@ -635,69 +586,6 @@ Examples:
|
|||||||
* Good: "Disable IPv6 forwarding"
|
* Good: "Disable IPv6 forwarding"
|
||||||
* Bad: "Disables IPv6 forwarding"
|
* Bad: "Disables IPv6 forwarding"
|
||||||
|
|
||||||
Migrating old CLI
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:widths: 25 25 50
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - Old concept/syntax
|
|
||||||
- New syntax
|
|
||||||
- Notes
|
|
||||||
* - mynode/node.def
|
|
||||||
- <node name="mynode"> </node>
|
|
||||||
- Leaf nodes (nodes with values) use <leafNode> tag instead
|
|
||||||
* - mynode/node.tag , tag:
|
|
||||||
- <tagNode name="mynode> </node>
|
|
||||||
-
|
|
||||||
* - help: My node
|
|
||||||
- <properties> <help>My node</help>
|
|
||||||
-
|
|
||||||
* - val_help: <format>; some string
|
|
||||||
- <properties> <valueHelp> <format> format </format> <description> some
|
|
||||||
string </description>
|
|
||||||
- Do not add angle brackets around the format, they will be inserted
|
|
||||||
automatically
|
|
||||||
* - syntax:expression: pattern
|
|
||||||
- <properties> <constraint> <regex> ...
|
|
||||||
- <constraintErrorMessage> will be displayed on failure
|
|
||||||
* - syntax:expression: $VAR(@) in "foo", "bar", "baz"
|
|
||||||
- None
|
|
||||||
- Use regex
|
|
||||||
* - syntax:expression: exec ...
|
|
||||||
- <properties> <constraint> <validator> <name ="foo" argument="bar">
|
|
||||||
- "${vyos_libexecdir}/validators/foo bar $VAR(@)" will be executed,
|
|
||||||
<constraintErrorMessage> will be displayed on failure
|
|
||||||
* - syntax:expression: (arithmetic expression)
|
|
||||||
- None
|
|
||||||
- External arithmetic validator may be added if there's demand, complex
|
|
||||||
validation is better left to commit-time scripts
|
|
||||||
* - priority: 999
|
|
||||||
- <properties> <priority>999</priority>
|
|
||||||
- Please leave a comment explaining why the priority was chosen
|
|
||||||
(e.g. "after interfaces are configured")
|
|
||||||
* - multi:
|
|
||||||
- <properties> <multi/>
|
|
||||||
- Only applicable to leaf nodes
|
|
||||||
* - allowed: echo foo bar
|
|
||||||
- <properties> <completionHelp> <list> foo bar </list>
|
|
||||||
-
|
|
||||||
* - allowed: cli-shell-api listNodes vpn ipsec esp-group
|
|
||||||
- <properties> <completionHelp> <path> vpn ipsec esp-group </path> ...
|
|
||||||
-
|
|
||||||
* - allowed: /path/to/script
|
|
||||||
- <properties> <completionHelp> <script> /path/to/script </script> ...
|
|
||||||
-
|
|
||||||
* - default:
|
|
||||||
- None
|
|
||||||
- Move default values to scripts
|
|
||||||
* - commit:expression:
|
|
||||||
- None
|
|
||||||
- All commit time checks should be in the verify() function of the script
|
|
||||||
* - begin:/create:/delete:
|
|
||||||
- None
|
|
||||||
- All logic should be in the scripts
|
|
||||||
|
|
||||||
C++ Backend Code
|
C++ Backend Code
|
||||||
================
|
================
|
||||||
@ -717,39 +605,6 @@ in the C/C++ code.
|
|||||||
|
|
||||||
- https://github.com/vyos/vyatta-cfg/blob/0f42786a0b3/src/commit/commit-algorithm.cpp#L1252
|
- https://github.com/vyos/vyatta-cfg/blob/0f42786a0b3/src/commit/commit-algorithm.cpp#L1252
|
||||||
|
|
||||||
|
|
||||||
Continuous Integration
|
|
||||||
======================
|
|
||||||
|
|
||||||
VyOS makes use of Jenkins_ as our Continuous Integration (CI) service. Our
|
|
||||||
`VyOS CI`_ server is publicly accessible here: https://ci.vyos.net. You can get
|
|
||||||
a brief overview of all required components shipped in a VyOS ISO.
|
|
||||||
|
|
||||||
To build our modules we utilize a CI/CD Pipeline script. Each and every VyOS
|
|
||||||
component comes with it's own ``Jenkinsfile`` which is (more or less) a copy.
|
|
||||||
The Pipeline utilizes the Docker container from the :ref:`build_iso` section -
|
|
||||||
but instead of building it from source on every run, we rather always fetch a
|
|
||||||
fresh copy (if needed) from Dockerhub_.
|
|
||||||
|
|
||||||
Each module is build on demand if a new commit on the branch in question is
|
|
||||||
found. After a successful run the resulting Debian Package(s) will be deployed
|
|
||||||
to our Debian repository which is used during build time. It is located here:
|
|
||||||
http://dev.packages.vyos.net/repositories/.
|
|
||||||
|
|
||||||
|
|
||||||
.. stop_vyoslinter
|
|
||||||
|
|
||||||
.. _Jenkins: https://jenkins.io/
|
|
||||||
.. _Dockerhub: https://hub.docker.com/u/vyos/
|
|
||||||
.. _process: https://blog.vyos.io/vyos-development-digest-10
|
|
||||||
.. _VyConf: https://github.com/vyos/vyconf/tree/master/data/schemata
|
|
||||||
.. _vyos-1x: https://github.com/vyos/vyos-1x/tree/current/schema
|
|
||||||
.. _Jinja2: https://jinja.palletsprojects.com/
|
|
||||||
.. _`IPv4, IPv6 and DHCP(v6)`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
|
|
||||||
.. _`IPv4, IPv6`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
|
|
||||||
.. _`VLAN (VIF)`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/vif.xml.i
|
|
||||||
.. _`MAC address`: https://github.com/vyos/vyos-1x/blob/current/interface-definitions/include/interface/mac.xml.i
|
|
||||||
|
|
||||||
.. include:: /_include/common-references.txt
|
.. include:: /_include/common-references.txt
|
||||||
|
|
||||||
.. start_vyoslinter
|
.. start_vyoslinter
|
||||||
|
|||||||
@ -12,7 +12,7 @@ called Vyatta. [*]_ 2006 onwards, it was a great free software
|
|||||||
alternative to Cisco IOS and Jupiter JUNOS. It came in two editions:
|
alternative to Cisco IOS and Jupiter JUNOS. It came in two editions:
|
||||||
Vyatta Core (previously Vyatta Community Edition) that was completely
|
Vyatta Core (previously Vyatta Community Edition) that was completely
|
||||||
free software, and Vyatta Subscription Edition that had proprietary
|
free software, and Vyatta Subscription Edition that had proprietary
|
||||||
features and was only available to paying customers. [*]_
|
features and was only available to paying customers.
|
||||||
|
|
||||||
Vyatta was acquired by Brocade Communication Systems in 2012. Shortly
|
Vyatta was acquired by Brocade Communication Systems in 2012. Shortly
|
||||||
after, Brocade renamed Vyatta Subscription Edition to Brocade vRouter,
|
after, Brocade renamed Vyatta Subscription Edition to Brocade vRouter,
|
||||||
@ -30,7 +30,7 @@ the last Vyatta Core version (6.6R1) and VyOS Project came into being.
|
|||||||
`Sentrium SL <https://blog.vyos.io/sentrium-what-sentrium>`_ was
|
`Sentrium SL <https://blog.vyos.io/sentrium-what-sentrium>`_ was
|
||||||
established by VyOS maintainers in 2014 to fund VyOS development by
|
established by VyOS maintainers in 2014 to fund VyOS development by
|
||||||
selling support, consulting services and prebuilt long-term support
|
selling support, consulting services and prebuilt long-term support
|
||||||
images.
|
images. The company was later reorganized under the VyOS brand.
|
||||||
|
|
||||||
Brocade was acquired by Broadcom in 2016 and sold what remains of
|
Brocade was acquired by Broadcom in 2016 and sold what remains of
|
||||||
erstwhile Vyatta to AT&T in 2017, who in turn sold it to Ciena in 2021.
|
erstwhile Vyatta to AT&T in 2017, who in turn sold it to Ciena in 2021.
|
||||||
@ -85,7 +85,7 @@ configuration migration. Introduction of new Perl and shell code was
|
|||||||
proscribed and the rewriting of legacy Perl code in pure Python began
|
proscribed and the rewriting of legacy Perl code in pure Python began
|
||||||
with Crux.
|
with Crux.
|
||||||
|
|
||||||
As of 2022, Crux is still supported and maintained.
|
Crux reached end of support in 2023..
|
||||||
|
|
||||||
Equuleus (1.3)
|
Equuleus (1.3)
|
||||||
--------------
|
--------------
|
||||||
@ -101,13 +101,12 @@ interfaces, support for GENEVE and MACSec interfaces, VRF, IS-IS
|
|||||||
routing, preliminary support for MPLS and LDP, and many other
|
routing, preliminary support for MPLS and LDP, and many other
|
||||||
initialisms.
|
initialisms.
|
||||||
|
|
||||||
As of 2022, Equuleus is in the stable.
|
Equuleus reached end of support in 2025.
|
||||||
|
|
||||||
Sagitta (1.4)
|
Sagitta (1.4)
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Sagitta (the Arrow) is the codename of the current development
|
Sagitta (the Arrow) was released in 2024 and is currently a supported LTS release.
|
||||||
branch, so there's no VyOS 1.4 yet.
|
|
||||||
|
|
||||||
Circinus (1.5)
|
Circinus (1.5)
|
||||||
--------------
|
--------------
|
||||||
@ -131,6 +130,4 @@ any pre-built image for more precise information.
|
|||||||
|
|
||||||
|
|
||||||
.. [*] From the Sanskrit adjective "Vyātta" (व्यात्त), meaning opened.
|
.. [*] From the Sanskrit adjective "Vyātta" (व्यात्त), meaning opened.
|
||||||
.. [*] A business model comparable to that of Redis, rather than that
|
|
||||||
of VyOS today.
|
|
||||||
.. [*] This is not unlike how Linus Torvalds owns the trademark "Linux".
|
.. [*] This is not unlike how Linus Torvalds owns the trademark "Linux".
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user