Adding to NS8 supported distros

It looks like the current installation script only supports Debian 11, not 12. And with AssHat’s latest moves, it seems that (if anything EL-based is going to be supported in the first place) it’d be worth expanding the EL-based support to include Oracle Linux. Wondering if either or both of these might be planned for Beta 2.

We are going to fully support Dbian 12: the work has been already done but not yet released
(Davide and Steph are out on holidays).

I do not know about Oracle Linux, we didn’t discuss it at all.
Personally I still fear the Oracle world whenever I read it :smiley:

4 Likes

I get it, and it feels weird to me to be treating them like the good guys–but you can’t deny they’ve been saying and doing the right things over the past year or so (i.e., since the initial CentOS sh*tshow). But if you’re intending to keep compatibility with EL at all, it doesn’t seem like it should take much to work with Oracle’s flavor too.

1 Like

Hi

To be honset, I do not quite see the relevance of an EL distro in a distro targeting SMEs, like NethServer still pertains to be doing.

EL compatibility was once held up high, for the somewhat irrelevant reason you could install a DB2 database - or eg Oracle’s database, using the same instructions as for RHEL. What SME ever installed a DB2, or even an Oracle DB?
In Enterprise environments, LTS “can” make sense, but for the average SME, LTS comes with BIG gotchas… Then again, even in large Enterprises, EL often doesn’t last over 5 years, it’s installed on new servers, running the latest versions, as data is migrated…

We’re seeing LTS problems for several years now, how many versions of MariaDB does an average NS7.9 run now (needed!)?
Same goes for PHP, running 5.4 is such a crutch nowadays…
Old versions all over, no current requirements can be fulfilled easily…

If someone REALLY needs an EL, they can still install one (bare metal or VM) and join it to NS8 AD…

Note:

I’m absolutely NOT opposed to including another Distro NS8 can run on, even if it’s from Oracle… :slight_smile:
But at the moment I do see more priority on getting a fully workng RC out front!
Good Devs don’t grow on trees, and pay peanuts, get monkeys won’t work for NethServer either!
:slight_smile:

My 2 cents
Andy

2 Likes

Even in light of the news, I still think AlmaLinux is worth supporting. They no longer are confining themselves to be a bug-for-bug 1:1 compatible clone of RHEL but will still be Application Binary Interface (ABI) compatible. They have a lot a support behind them, too.

I am an openSUSE user and have been watching from the sidelines.

The fact that this distro (and I’m including Koozali SME, and before that Mitel SME, and before that e-smith) has been EL-based for over 20 years has to play a role here. And it’s never had anything to do with database support; it’s that RedHat was the direction the original devs chose to go, and they quite naturally wanted to base the distro on a stable server OS rather than a rapidly-shifting desktop OS. So RHEL it was, and then CentOS.

Yes, and it’s every bit as much an issue–if not more so–with Debian. Though with the container-based architecture of NS8, the impact of this might be less than we’ve been used to with NS7.

For now, at least, NS8 supports both EL-based and Debian as the base OS. If it’s going to continue to do that–and I can see good arguments for dropping EL support entirely–I think it’d be worth whatever the presumably-minor effort would be to include support for Oracle Linux as another EL flavor. Though it’d probably help if I could narrow down where the problem is…

The above may be specific to this distro.

In my past 35+ years in IT, the major issues from client side were: pricing, stability, compatibility. Actual, paying users of EL Linux was almost exclusively by large enterprises - and mostly specifically to run expensive ERP software. In Europe, SAP is very popular, especially among “suits”. SuSE was more or less “ruined” by the Novell downcoming, it’s been pushed around, still exists, still has major clients using it, and is generally on par with RHEL as EnterpriseLinux. They are now MUCH smaller, of course.

I don’t quite see this, as Debian is one of the few distros which usually can handle in place upgrades well. Only issue is that Debian doesn’t distribute BLOBs (Binary Large Objects, aka propreitary code), like drivers for the latest Broadcom Chipsets. But again, for a server, this is more an issue for freaks than a business case.

Well programmed containers CAN alleviate this problem. As stated before, “well proigrrammed containers” is there for a reason. I’ve seen Container programmed apps and “black boxes”, that were so shoddily programmed, that internally used IPs were leaking to the clients network, and shut down the ISP box and Internet Access. Too many coders seem afflicted with the “Great, with containers I don’t have to worry about security at all!” syndrome… I hope this improves with time, but I do have my doubts…

I’m fully supportive of this, I just hope it’s not an ominous LarryE-Blob causing the ssues installing NS8 (Just Joking!)…

IMHO, LTS was a major part of the downfall of SME Server. Got too complacent, stuck on 6.x for too long, migration and coding for 7x took too long, by the time they reorganized, it was version 10…

My 2 cents
Andy

2 Likes

To the subject of Oracle Linux… I’m able to run the install script, and it seems to complete without issues. But creating a cluster fails, giving this error:

{
  "context": {
    "action": "create-cluster",
    "data": {
      "endpoint": "ns8-oel.familybrown.org:55820",
      "listen_port": 55820,
      "network": "10.5.4.0/24"
    },
    "extra": {
      "eventId": "278ab826-ff24-4ea3-8e11-222115ca36ec",
      "isNotificationHidden": true,
      "isProgressNotified": true,
      "title": "Create cluster",
      "toastTimeout": 0
    },
    "id": "47895c3d-4a4c-4dd9-bd32-a3897504bcf9",
    "parent": "",
    "queue": "cluster/tasks",
    "timestamp": "2023-07-15T13:05:44.79649374Z",
    "user": "admin"
  },
  "status": "aborted",
  "progress": 25,
  "subTasks": [
    {
      "context": {
        "action": "add-module",
        "data": {
          "image": "loki",
          "node": 1
        },
        "extra": {},
        "id": "b5b7aff1-842e-41c7-a399-8403c8a9e57c",
        "parent": "47895c3d-4a4c-4dd9-bd32-a3897504bcf9"
      },
      "status": "aborted",
      "progress": 33,
      "subTasks": [
        {
          "context": {
            "action": "add-module",
            "data": {
              "environment": {
                "IMAGE_DIGEST": "sha256:e529f52a3bc7032a9c9386ba919f5555d17a104b8eceba375790f15ceb7246bd",
                "IMAGE_ID": "6704b79e5bbad54fd69f68276f82f78a2d070b085ec50e527789803b53ff8726",
                "IMAGE_REOPODIGEST": "ghcr.io/nethserver/loki@sha256:e529f52a3bc7032a9c9386ba919f5555d17a104b8eceba375790f15ceb7246bd",
                "IMAGE_URL": "ghcr.io/nethserver/loki:0.0.3",
                "MODULE_ID": "loki1",
                "MODULE_UUID": "d2b604ec-f1e8-4f69-b6f4-3cbbf55e32f9",
                "NODE_ID": "1",
                "TCP_PORT": "20008",
                "TCP_PORTS": "20008"
              },
              "is_rootfull": false,
              "module_id": "loki1"
            },
            "extra": {},
            "id": "0be7b258-2fc1-4310-817a-936323aff97f",
            "parent": "b5b7aff1-842e-41c7-a399-8403c8a9e57c"
          },
          "status": "completed",
          "progress": 100,
          "subTasks": [],
          "result": {
            "error": "<7>useradd -m -k /etc/nethserver/skel -s /bin/bash loki1\n<7>extract-image ghcr.io/nethserver/loki:0.0.3\nExtracting container filesystem imageroot to /home/loki1/.config\nTotal bytes read: 30720 (30KiB, 503KiB/s)\nimageroot/actions/\nimageroot/actions/create-module/\nimageroot/actions/create-module/10env\nimageroot/actions/create-module/20systemd\nimageroot/actions/restore-module/\nimageroot/actions/restore-module/06copyenv\nimageroot/etc/\nimageroot/etc/state-include.conf\nimageroot/scripts/\nimageroot/scripts/expandconfig-traefik\nimageroot/systemd/\nimageroot/systemd/user/\nimageroot/systemd/user/loki-server.service\nimageroot/systemd/user/loki.service\nimageroot/systemd/user/traefik.service\nimageroot/update-module.d/\nimageroot/update-module.d/20restart\nchanged ownership of './state/environment' from root:root to loki1:loki1\nchanged ownership of './state/agent.env' from root:root to loki1:loki1\nchanged ownership of './systemd/user/loki-server.service' from root:root to loki1:loki1\nchanged ownership of './systemd/user/loki.service' from root:root to loki1:loki1\nchanged ownership of './systemd/user/traefik.service' from root:root to loki1:loki1\nchanged ownership of './.imageroot.lst' from root:root to loki1:loki1\nchanged ownership of './actions/create-module/10env' from root:root to loki1:loki1\nchanged ownership of './actions/create-module/20systemd' from root:root to loki1:loki1\nchanged ownership of './actions/create-module' from root:root to loki1:loki1\nchanged ownership of './actions/restore-module/06copyenv' from root:root to loki1:loki1\nchanged ownership of './actions/restore-module' from root:root to loki1:loki1\nchanged ownership of './actions' from root:root to loki1:loki1\nchanged ownership of './etc/state-include.conf' from root:root to loki1:loki1\nchanged ownership of './etc' from root:root to loki1:loki1\nchanged ownership of './scripts/expandconfig-traefik' from root:root to loki1:loki1\nchanged ownership of './scripts' from root:root to loki1:loki1\nchanged ownership of './update-module.d/20restart' from root:root to loki1:loki1\nchanged ownership of './update-module.d' from root:root to loki1:loki1\n3bf90e94e7e21450d7aad66855a1b5bb46477e3035091377622651e1fff1f5a5\n<7>loginctl enable-linger loki1\n",
            "exit_code": 0,
            "file": "task/node/1/0be7b258-2fc1-4310-817a-936323aff97f",
            "output": {
              "redis_sha256": "5a8827bead62e9be4f274fb3d591d4bad50615f4acb61650b7b9da6fe396b8d1"
            }
          }
        },
        {
          "context": {
            "action": "create-module",
            "data": {
              "images": [
                "docker.io/traefik:v2.4",
                "docker.io/grafana/loki:2.2.1"
              ]
            },
            "extra": {},
            "id": "3c33b364-8727-4456-8416-ce3f141ad5d7",
            "parent": "b5b7aff1-842e-41c7-a399-8403c8a9e57c"
          },
          "status": "aborted",
          "progress": 88,
          "subTasks": [],
          "result": {
            "error": "Add to module/loki1 environment TRAEFIK_IMAGE=docker.io/traefik:v2.4\nAdd to module/loki1 environment LOKI_IMAGE=docker.io/grafana/loki:2.2.1\n<7>dump_env() is deprecated and implemented as a no-op\n<7>podman-pull-missing docker.io/traefik:v2.4 docker.io/grafana/loki:2.2.1\nTrying to pull docker.io/library/traefik:v2.4...\nGetting image source signatures\nCopying blob sha256:fe4701c53ae539044a129428575f42a0e0aa5e923d04b97466915bf45f5df0e3\nCopying blob sha256:5f6722e60c2f6c55424dadebe886f88ba1b903df075b00048427439abb91b85a\nCopying blob sha256:ddad3d7c1e96adf9153f8921a7c9790f880a390163df453be1566e9ef0d546e0\nCopying blob sha256:3abdcd3bb40ca29c232ad12d1f2cba6efcb28e8d8ab7e5787ad2771b4e3862b0\nCopying config sha256:de1a7c9d5d63d8ab27b26f16474a74e78d252007d3a67ff08dcbad418eb335ae\nWriting manifest to image destination\nStoring signatures\nde1a7c9d5d63d8ab27b26f16474a74e78d252007d3a67ff08dcbad418eb335ae\nTrying to pull docker.io/grafana/loki:2.2.1...\nGetting image source signatures\nCopying blob sha256:753793ea21f66410ed4b05c828216728b6521b13a1de5939203258636f11eed5\nCopying blob sha256:31603596830fc7e56753139f9c2c6bd3759e48a850659506ebfb885d1cf3aef5\nCopying blob sha256:e4f5d1b1114583aca9dafec1f0cc4f8a21ae15f5ea04b0ac236c148e09aa5f54\nCopying blob sha256:858024693c419c0dd99a6d6ea88967d0f74cb3bdace948a115a6b7584019f644\nCopying blob sha256:e94f8da5a2cba4300c6e74d1eef04f2cc7f39cb1d08303f803f119fe3e06ca0f\nCopying blob sha256:8818f75b6e26a7de66dd46182944abe3a695bcafe01f1bf4cffcab489b34f960\nCopying blob sha256:586f67fcd52ef2996deebfe0c50f19ca0b2c59660e6efa9c76e580580dd8a5f9\nCopying config sha256:727c39682956d63917122ed8b23b916821f7c850bed426ace01fabfe81530790\nWriting manifest to image destination\nStoring signatures\n727c39682956d63917122ed8b23b916821f7c850bed426ace01fabfe81530790\nCreated symlink /home/loki1/.config/systemd/user/default.target.wants/loki.service → /home/loki1/.config/systemd/user/loki.service.\nJob for loki.service failed because the control process exited with error code.\nSee \"systemctl --user status loki.service\" and \"journalctl --user -xeu loki.service\" for details.\n",
            "exit_code": 1,
            "file": "task/module/loki1/3c33b364-8727-4456-8416-ce3f141ad5d7",
            "output": ""
          }
        }
      ],
      "result": {
        "error": "<7>podman-pull-missing ghcr.io/nethserver/loki:0.0.3\nTrying to pull ghcr.io/nethserver/loki:0.0.3...\nGetting image source signatures\nCopying blob sha256:93d4c93aba88cb506bddfc3337ed2402f5af4ba84872aef39f670d1f7492ae82\nCopying config sha256:6704b79e5bbad54fd69f68276f82f78a2d070b085ec50e527789803b53ff8726\nWriting manifest to image destination\nStoring signatures\n6704b79e5bbad54fd69f68276f82f78a2d070b085ec50e527789803b53ff8726\n<7>extract-ui ghcr.io/nethserver/loki:0.0.3\nExtracting container filesystem ui to /var/lib/nethserver/cluster/ui/apps/loki1\nui/index.html\nfe54c92e8b8514961cb5c20d9ea1fda8cb4e7e64b2088f7b3b85ae134c8548f4\nAssertion failed\n  File \"/var/lib/nethserver/cluster/actions/add-module/50update\", line 200, in <module>\n    agent.assert_exp(create_module_result['exit_code'] == 0) # Ensure create-module is successful\n",
        "exit_code": 2,
        "file": "task/cluster/b5b7aff1-842e-41c7-a399-8403c8a9e57c",
        "output": ""
      }
    },
    {
      "context": {
        "action": "add-module",
        "data": {
          "image": "ldapproxy",
          "node": 1
        },
        "extra": {},
        "id": "253e6659-17b1-4b74-854a-59649b4559ce",
        "parent": "47895c3d-4a4c-4dd9-bd32-a3897504bcf9"
      },
      "status": "completed",
      "progress": 100,
      "subTasks": [
        {
          "context": {
            "action": "add-module",
            "data": {
              "environment": {
                "IMAGE_DIGEST": "sha256:360b82d2b0a9df4029816ede4c02dd0b11b382d93be7d679234aab766c982905",
                "IMAGE_ID": "dc2f9f82e533b48d035e41958e7a76bb8526d9faa4a27a9808f1f78c8c98e4ba",
                "IMAGE_REOPODIGEST": "ghcr.io/nethserver/ldapproxy@sha256:360b82d2b0a9df4029816ede4c02dd0b11b382d93be7d679234aab766c982905",
                "IMAGE_URL": "ghcr.io/nethserver/ldapproxy:0.0.6",
                "MODULE_ID": "ldapproxy1",
                "MODULE_UUID": "bff319cd-a60f-4705-970e-c9af02980c62",
                "NODE_ID": "1",
                "TCP_PORT": "20000",
                "TCP_PORTS": "20000,20001,20002,20003,20004,20005,20006,20007",
                "TCP_PORTS_RANGE": "20000-20007"
              },
              "is_rootfull": false,
              "module_id": "ldapproxy1"
            },
            "extra": {},
            "id": "0f1b6330-2d34-41ea-803f-d2de5dfa9836",
            "parent": "253e6659-17b1-4b74-854a-59649b4559ce"
          },
          "status": "completed",
          "progress": 100,
          "subTasks": [],
          "result": {
            "error": "<7>useradd -m -k /etc/nethserver/skel -s /bin/bash ldapproxy1\n<7>extract-image ghcr.io/nethserver/ldapproxy:0.0.6\nExtracting container filesystem imageroot to /home/ldapproxy1/.config\nTotal bytes read: 30720 (30KiB, 375KiB/s)\nimageroot/actions/\nimageroot/actions/create-module/\nimageroot/actions/create-module/50start_service\nimageroot/bin/\nimageroot/bin/allocate-ports\nimageroot/bin/expand-template\nimageroot/bin/update-conf\nimageroot/events/\nimageroot/events/ldap-provider-changed/\nimageroot/events/ldap-provider-changed/10handler\nimageroot/events/service-ldap-changed/\nimageroot/events/service-ldap-changed/10handler\nimageroot/systemd/\nimageroot/systemd/user/\nimageroot/systemd/user/ldapproxy.service\nimageroot/templates/\nimageroot/templates/nginx.conf.j2\nchanged ownership of './state/environment' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './state/agent.env' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './systemd/user/ldapproxy.service' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './.imageroot.lst' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './actions/create-module/50start_service' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './actions/create-module' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './actions' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './bin/allocate-ports' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './bin/expand-template' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './bin/update-conf' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './bin' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './events/ldap-provider-changed/10handler' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './events/ldap-provider-changed' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './events/service-ldap-changed/10handler' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './events/service-ldap-changed' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './events' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './templates/nginx.conf.j2' from root:root to ldapproxy1:ldapproxy1\nchanged ownership of './templates' from root:root to ldapproxy1:ldapproxy1\n83a181887e58b2442030a293e4c123943463396329d0cda2b9770a061eeb8279\n<7>loginctl enable-linger ldapproxy1\n",
            "exit_code": 0,
            "file": "task/node/1/0f1b6330-2d34-41ea-803f-d2de5dfa9836",
            "output": {
              "redis_sha256": "e2f1fb43bb719b73088de9d4d2fd98e50b51587eddc6edeaff83fc7c724ef2fe"
            }
          }
        },
        {
          "context": {
            "action": "create-module",
            "data": {
              "images": [
                "docker.io/library/nginx:1.23.3-alpine"
              ]
            },
            "extra": {},
            "id": "9c2505d2-d6f1-4fd9-bd26-95723b5ea524",
            "parent": "253e6659-17b1-4b74-854a-59649b4559ce"
          },
          "status": "completed",
          "progress": 100,
          "subTasks": [],
          "result": {
            "error": "Add to module/ldapproxy1 environment NGINX_IMAGE=docker.io/library/nginx:1.23.3-alpine\n<7>dump_env() is deprecated and implemented as a no-op\n<7>podman-pull-missing docker.io/library/nginx:1.23.3-alpine\nTrying to pull docker.io/library/nginx:1.23.3-alpine...\nGetting image source signatures\nCopying blob sha256:0d4f6b3f3de69252af87911eaab1781b43161bafdfd3c4b9514a2ebce96a0cd6\nCopying blob sha256:8c7e1fd9638084ba511aec1cf01d0f8e406520605d6646b040927dd4bc14d866\nCopying blob sha256:b874033c43fb2c911c74a6f9dc209b76bb4131c6990d3af5e00c1b6a927f6efe\nCopying blob sha256:86c5246c96dbb77b446cfbd8caeaa7d71bbac064836e7eb5107e047da5cb6ead\nCopying blob sha256:63b65145d645c1250c391b2d16ebe53b3747c295ca8ba2fcb6b0cf064a4dc21c\nCopying blob sha256:dbe1551bd73f2a91dc74c53156da4d2dd38074f14aba106e534ca32c6e49a0c3\nCopying blob sha256:2a41f256c40f00d75b71a31444da307b5a1884c3af9fdac91504acfcc1141c6a\nCopying config sha256:2bc7edbc3cf2fce630a95d0586c48cd248e5df37df5b1244728a5c8c91becfe0\nWriting manifest to image destination\nStoring signatures\n2bc7edbc3cf2fce630a95d0586c48cd248e5df37df5b1244728a5c8c91becfe0\nCreated symlink /home/ldapproxy1/.config/systemd/user/default.target.wants/ldapproxy.service → /home/ldapproxy1/.config/systemd/user/ldapproxy.service.\n",
            "exit_code": 0,
            "file": "task/module/ldapproxy1/9c2505d2-d6f1-4fd9-bd26-95723b5ea524",
            "output": ""
          }
        }
      ],
      "result": {
        "error": "<7>podman-pull-missing ghcr.io/nethserver/ldapproxy:0.0.6\nTrying to pull ghcr.io/nethserver/ldapproxy:0.0.6...\nGetting image source signatures\nCopying blob sha256:b8c154e1b6b44bb7e8fb3fa44668e8793809ade6b1c1e0a5a767616a19689013\nCopying config sha256:dc2f9f82e533b48d035e41958e7a76bb8526d9faa4a27a9808f1f78c8c98e4ba\nWriting manifest to image destination\nStoring signatures\ndc2f9f82e533b48d035e41958e7a76bb8526d9faa4a27a9808f1f78c8c98e4ba\n<7>extract-ui ghcr.io/nethserver/ldapproxy:0.0.6\nExtracting container filesystem ui to /var/lib/nethserver/cluster/ui/apps/ldapproxy1\nui/index.html\nbe1fe856fd353f519ab8167e21499eb8e9a1174bf64daaa9bb521d5058b94a02\n",
        "exit_code": 0,
        "file": "task/cluster/253e6659-17b1-4b74-854a-59649b4559ce",
        "output": {
          "image_name": "ldapproxy",
          "image_url": "ghcr.io/nethserver/ldapproxy:0.0.6",
          "module_id": "ldapproxy1"
        }
      }
    }
  ],
  "validated": true,
  "result": {
    "error": "<7>sed -i -e '/cluster-localnode$/c\\10.5.4.1 cluster-localnode' /etc/hosts\n<7>systemctl restart wg-quick@wg0.service\nTask cluster/add-module run failed: {'output': '', 'error': '<7>podman-pull-missing ghcr.io/nethserver/loki:0.0.3\\nTrying to pull ghcr.io/nethserver/loki:0.0.3...\\nGetting image source signatures\\nCopying blob sha256:93d4c93aba88cb506bddfc3337ed2402f5af4ba84872aef39f670d1f7492ae82\\nCopying config sha256:6704b79e5bbad54fd69f68276f82f78a2d070b085ec50e527789803b53ff8726\\nWriting manifest to image destination\\nStoring signatures\\n6704b79e5bbad54fd69f68276f82f78a2d070b085ec50e527789803b53ff8726\\n<7>extract-ui ghcr.io/nethserver/loki:0.0.3\\nExtracting container filesystem ui to /var/lib/nethserver/cluster/ui/apps/loki1\\nui/index.html\\nfe54c92e8b8514961cb5c20d9ea1fda8cb4e7e64b2088f7b3b85ae134c8548f4\\nAssertion failed\\n  File \"/var/lib/nethserver/cluster/actions/add-module/50update\", line 200, in <module>\\n    agent.assert_exp(create_module_result[\\'exit_code\\'] == 0) # Ensure create-module is successful\\n', 'exit_code': 2}\nAssertion failed\n  File \"/var/lib/nethserver/cluster/actions/create-cluster/50update\", line 101, in <module>\n    agent.assert_exp(add1_module_failures == 0)\n",
    "exit_code": 2,
    "file": "task/cluster/47895c3d-4a4c-4dd9-bd32-a3897504bcf9",
    "output": ""
  }
}

We were considering using Rocky as the “official” base for NethServer 8, but Red Hat’s led us to reconsider the available options.
As “official”, I mean that we would like to ship an image only for the official distribution, while all other distributions will be supported only using the installation script.

NS8 uses few packages from the distribution so it’s a bit easier to guarantee the stability/security of the underlying platform. Still, we need to guarantee OS updates for at least 5 years, probably more.

I hope the whole RHEL ecosystem situation will be clearer at the end of summer so we will be able to make the right choice.

8 Likes