Skip to content

Commit

Permalink
Merge pull request #245 from KatharaFramework/develop
Browse files Browse the repository at this point in the history
Kathará v3.7.0
  • Loading branch information
tcaiazzi authored Oct 2, 2023
2 parents 4e5ab0e + 76d0f73 commit 82fa43f
Show file tree
Hide file tree
Showing 30 changed files with 701 additions and 205 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ body:
attributes:
label: Kathará Version
description: "Please provide the Kathará version you are using (`kathara -v`)."
placeholder: "3.6.3"
placeholder: "3.7.0"
validations:
required: true
- type: textarea
Expand Down
6 changes: 3 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

We release patches for security vulnerabilities only for the last version:

| Version | Supported Versions |
| --------- | ----------------------------------------- |
| 3.6.3 | :white_check_mark: |
| Version | Supported Versions |
|---------|--------------------|
| 3.7.0 | :white_check_mark: |

## Reporting a Vulnerability

Expand Down
14 changes: 11 additions & 3 deletions docs/kathara.conf.5.ronn
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Checks on the correctness of the configuration are performed each time a Kathara
* `image` (string):
Default Docker image used when starting a device.

Default to `kathara/quagga`.
Default to `kathara/base`.

* `manager_type` (string):
Manager used to launch the network scenario.
Expand Down Expand Up @@ -73,6 +73,13 @@ Each Manager specifies additional parameters which are used only when the Manage

### KATHARA (Docker)

* `network_plugin` (string):
This parameter specifies the Docker Network Plugin version used to create collision domains. Currently, Kathara supports two plugin versions: `kathara/katharanp` is the legacy plugin based on Linux bridges. `kathara/katharanp_vde` plugin is the default plugin, based on VDE software switches.

Possible values are `kathara/katharanp`, `kathara/katharanp_vde`.

Default to `kathara/katharanp_vde`.

* `hosthome_mount` (boolean):
This parameter specifies if the `/hosthome` dir will be mounted inside the device. The home directory of the current user is made available for reading/writing inside the device under the special directory `/hosthome`.

Expand Down Expand Up @@ -133,7 +140,7 @@ Each Manager specifies additional parameters which are used only when the Manage
## EXAMPLE

{
"image": "kathara/quagga",
"image": "kathara/base",
"manager_type": "docker",
"terminal": "/usr/bin/xterm",
"open_terminals": true,
Expand All @@ -149,7 +156,8 @@ Each Manager specifies additional parameters which are used only when the Manage
"image_update_policy": "Prompt",
"shared_cd": false,
"remote_url": null,
"cert_path": null
"cert_path": null,
"network_plugin": "kathara/katharanp_vde"
}

Example of the default `kathara.conf`(5) file using Docker Manager.
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kathara"
version = "3.6.3"
version = "3.7.0"
description = "A lightweight container-based emulation system."
readme = "README.md"
requires-python = ">=3.9"
Expand Down Expand Up @@ -37,7 +37,7 @@ dependencies = [
"terminaltables>=3.1.0",
"slug>=2.0",
"deepdiff==6.2.2",
"pyroute2>=0.5.19",
"pyroute2",
"progressbar2>=1.14.0",
"fs>=2.4.16",
"chardet",
Expand Down
2 changes: 1 addition & 1 deletion scripts/Linux-Deb/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/make -f

VERSION=3.6.3
VERSION=3.7.0
DEBIAN_PACKAGE_VERSION=1
LAUNCHPAD_NAME=user
NO_BINARY_PACKAGES=pyroute2|pyuv|deepdiff
Expand Down
11 changes: 3 additions & 8 deletions scripts/Linux-Deb/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
kathara (__VERSION__-__DEBIAN_PACKAGE_VERSION____UBUNTU_VERSION__) __UBUNTU_VERSION__; urgency=low

* Use "chardet" to parse all byte strings in order to correctly encode non-UTF8 characters
* Wait for startup commands execution while opening a connection to a device (the wait can be overridden by pressing [ENTER])
* Keep correct folders/files permissions when copying files inside the device
* Fix "sysctl" metadata parsing for negative values
* Fix "machine.is_ipv6_enabled()"" method to correctly follow priority of "ipv6" meta
* Rename "startup_commands" meta to "exec_commands" to avoid ambiguity with ".startup" files
* Add new helper methods to "model.Lab"
* Minor fixes
* Add support for the new Kathara Network Plugin based on VDE software switches. It is possible to select the old Network Plugin (based on Linux Bridges) from "kathara settings"
* Switch the default image to "kathara/base" for new installations
* Fix Docker images fetching in "kathara settings"

-- Kathara Team <[email protected]> __DATE__
2 changes: 1 addition & 1 deletion scripts/Linux-Pkg/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/make -f

VERSION=3.6.3
VERSION=3.7.0
PACKAGE_VERSION=1
AUR_NAME=user
AUR_MAIL[email protected]
Expand Down
11 changes: 3 additions & 8 deletions scripts/Linux-Pkg/pkginfo/kathara.changelog
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
__DATE__ Kathara Team <******@kathara.org>

* Release v__VERSION__
* Use "chardet" to parse all byte strings in order to correctly encode non-UTF8 characters
* Wait for startup commands execution while opening a connection to a device (the wait can be overridden by pressing [ENTER])
* Keep correct folders/files permissions when copying files inside the device
* Fix "sysctl" metadata parsing for negative values
* Fix "machine.is_ipv6_enabled()"" method to correctly follow priority of "ipv6" meta
* Rename "startup_commands" meta to "exec_commands" to avoid ambiguity with ".startup" files
* Add new helper methods to "model.Lab"
* Minor fixes
* Add support for the new Kathara Network Plugin based on VDE software switches. It is possible to select the old Network Plugin (based on Linux Bridges) from "kathara settings"
* Switch the default image to "kathara/base" for new installations
* Fix Docker images fetching in "kathara settings"
5 changes: 3 additions & 2 deletions scripts/Linux-Rpm/Docker-Linux-Build/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM fedora:36
FROM fedora:38

ENV RUBYOPT="-KU -E utf-8:utf-8"

Expand All @@ -14,7 +14,8 @@ RUN dnf install -y rubygem-rails \
rpmdevtools \
patchelf \
pip \
python3-devel
python3.10 \
python3.10-devel

RUN gem install ronn-ng

Expand Down
2 changes: 1 addition & 1 deletion scripts/Linux-Rpm/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/make -f

VERSION=3.6.3
VERSION=3.7.0
PACKAGE_VERSION=1

.PHONY: all clean docker-build-image prepare-source prepare-man-pages prepare-bash-completion pack-source build
Expand Down
13 changes: 4 additions & 9 deletions scripts/Linux-Rpm/rpm/kathara.spec
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ new network protocols.
python3.10 -m venv %{_builddir}/venv
%{_builddir}/venv/bin/pip install --upgrade pip
%{_builddir}/venv/bin/pip install -r src/requirements.txt
%{_builddir}/venv/bin/pip install nuitka
%{_builddir}/venv/bin/pip install nuitka==1.7.10
%{_builddir}/venv/bin/pip install pytest

%build
Expand Down Expand Up @@ -68,11 +68,6 @@ chmod g+s %{_libdir}/kathara/kathara

%changelog
* __DATE__ Kathara Team <******@kathara.org> - __VERSION__-__PACKAGE_VERSION__
- Use "chardet" to parse all byte strings in order to correctly encode non-UTF8 characters
- Wait for startup commands execution while opening a connection to a device (the wait can be overridden by pressing [ENTER])
- Keep correct folders/files permissions when copying files inside the device
- Fix "sysctl" metadata parsing for negative values
- Fix "machine.is_ipv6_enabled()"" method to correctly follow priority of "ipv6" meta
- Rename "startup_commands" meta to "exec_commands" to avoid ambiguity with ".startup" files
- Add new helper methods to "model.Lab"
- Minor fixes
- Add support for the new Kathara Network Plugin based on VDE software switches. It is possible to select the old Network Plugin (based on Linux Bridges) from "kathara settings"
- Switch the default image to "kathara/base" for new installations
- Fix Docker images fetching in "kathara settings"
2 changes: 1 addition & 1 deletion scripts/OSX/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/make -s

PRODUCT=Kathara
VERSION=3.6.3
VERSION=3.7.0
TARGET_DIRECTORY=Output
APPLE_DEVELOPER_CERTIFICATE_ID=FakeID
ROFF_DIR=../../docs/Roff
Expand Down
2 changes: 1 addition & 1 deletion scripts/Windows/installer.iss
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Kathara"
#define MyAppVersion "3.6.3"
#define MyAppVersion "3.7.0"
#define MyAppPublisher "Kathara Team"
#define MyAppURL "https://www.kathara.org"
#define MyAppExeName "kathara.exe"
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = kathara
version = 3.6.3
version = 3.7.0
author = Kathara Framework
author_email = [email protected]
description = A lightweight container based emulation system
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
package_dir={'': 'src'},
packages=find_packages('src'),
py_modules=['kathara'],
version='3.6.3',
version='3.7.0',
license='gpl-3.0',
description='A lightweight container based emulation system.',
author='Kathara Framework',
author_email='[email protected]',
url='https://www.kathara.org',
download_url='https://github.com/KatharaFramework/Kathara/archive/refs/tags/3.6.3.tar.gz',
download_url='https://github.com/KatharaFramework/Kathara/archive/refs/tags/3.7.0.tar.gz',
keywords=['NETWORK-EMULATION', 'CONTAINERS', 'NFV'],
install_requires=[
"binaryornot>=0.4.4",
Expand All @@ -24,7 +24,7 @@
"terminaltables>=3.1.0",
"slug>=2.0",
"deepdiff==6.2.2",
"pyroute2>=0.5.19",
"pyroute2",
"progressbar2>=1.14.0",
"fs>=2.4.16",
"chardet",
Expand Down
31 changes: 31 additions & 0 deletions src/Kathara/cli/ui/setting/DockerOptionsHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,36 @@

class DockerOptionsHandler(OptionsHandler):
def add_items(self, current_menu: ConsoleMenu, menu_formatter: MenuFormatBuilder) -> None:
# Network Plugin Option
network_plugin_string = "Choose Docker Network Plugin version"
network_plugin_menu = SelectionMenu(strings=[],
title=network_plugin_string,
subtitle=setting_utils.current_string("network_plugin"),
prologue_text="""Choose Docker Network Plugin version used to create"""
""" collision domains.\n"""
"""`kathara/katharanp` plugin is based on Linux bridges.\n"""
"""`kathara/katharanp_vde` plugin is based on VDE switches.
Default is `%s`.""" %
DEFAULTS['network_plugin'],
formatter=menu_formatter
)

network_plugin_menu.append_item(FunctionItem(text="kathara/katharanp",
function=setting_utils.update_setting_value,
args=["network_plugin", "kathara/katharanp"],
should_exit=True
)
)
network_plugin_menu.append_item(FunctionItem(text="kathara/katharanp_vde",
function=setting_utils.update_setting_value,
args=["network_plugin", "kathara/katharanp_vde"],
should_exit=True
)
)

network_plugin_item = SubmenuItem(network_plugin_string, network_plugin_menu, current_menu)

# Hosthome Mount Option
hosthome_string = "Automatically mount /hosthome on startup"
hosthome_menu = SelectionMenu(strings=[],
Expand Down Expand Up @@ -198,6 +228,7 @@ def remote_url_unix():

platform_remote_url_item = exec_by_platform(remote_url_unix, lambda: None, remote_url_unix)

current_menu.append_item(network_plugin_item)
current_menu.append_item(hosthome_item)
current_menu.append_item(shared_item)
current_menu.append_item(image_update_policy_item)
Expand Down
Loading

0 comments on commit 82fa43f

Please sign in to comment.