Requirements

Software

There are a variety of methods of orchestrating a containerized application, and platforms which support this. SD Elements requires the following:

  • Helm 3.2 or newer

  • A platform which supports deploying containers using Helm and which uses or supports kubectl 1.18 or newer

  • A storage provider with support for the ReadWriteMany Kubernetes storage mode

    Starting with the SD Elements 2022.3 release, the ReadWriteMany storage mode is no longer required. Existing deployments will need it until they get upgraded to version 2022.3.
  • An ingress controller or load balancer that allows external clients to reach the SD Elements web deployment, and the ability to deploy SD Elements within such an environment. For proper configuration, consult the documentation for the solution that you selected for your environment.

  • Name resolution both within the Kubernetes cluster and for endpoints outside of it. This may be accomplished with an open-source CNI (Container Network Interface) plugin, or if using a cloud Kubernetes environment its native name resolution system.

Hardware

The requirements below are the minimal node compute resources that should be able to support both Kubernetes and SD Elements.

  • Cloud platforms that support Kubernetes will configure and manage the Kubernetes control plane, leaving the data plane resources as configurable. The total amount of resources for SD Elements should be the equivalent of no less than 16 vCPUs and 40GB RAM.

  • For bare metal Kubernetes clusters, those where both the control plane and data plane are managed by the administrators who will deploy SD Elements, the cluster should consist of at least 3 control plane nodes, and 5 data plane nodes each using 4 vCPUs and 8GB RAM.

Shared Object Storage

SD Elements shares files internally among its microservices. When you install or upgrade SD Elements, you will need to configure Shared Object Storage to facilitate API object storage.

Logging

SD Elements pods will produce logs that can be gathered by a supporting solution.

Components

SD Elements is composed of the following software elements, which are included in the deployment and don’t need to be installed or configured separately:

Apache + WSGI Webserver (dynamic content)

Apache processes application requests from Nginx. It also runs the Django Python application in WSGI processes.

Nginx Webserver (static content)

Nginx serves public static content directly to clients. It acts as a reverse proxy to Apache, hosts TLS/SSL for the SD Elements web application, and exposes ports 9080 and 9443 to SD Elements application users.

PostgreSQL Database

This is the database server for the application. It’s accessed by the Apache WSGI processes.

RabbitMQ Message Queue

RabbitMQ is a queuing system for jobs (Issue Tracker, Scanner integration, emails).

Postfix mail server

Postfix handles emails initiated by the SD Elements application.

Memcached server

Memcached server manages stored data for the SD Elements application and its services.

Celery workers

Celery runs application jobs (Issue Tracker, Scanner integration, emails).

Tested Versions

The table below contains versions of SD Elements that are deployable on corresponding versions of Kubernetes. While all listed versions should work, those emphasized in bold and italics represent deployments verified by QA.

SD Elements VersionMicrok8s VersionEKS VersionOpenShift Version
5.12.291.18
1.19
1.20
1.21
1.18
5.13.381.18
1.19
1.20
1.21
1.18
5.14.171.18
1.19
1.20
1.21
1.18
5.15.171.18
1.19
1.20
1.21
1.18
5.16.251.18
1.19
1.20
1.21
1.18
1.19
5.17.191.18
1.19
1.20
1.21
1.18
1.19
5.18.241.18
1.19
1.20
1.21
1.18
1.19
5.19.211.18
1.19
1.20
1.21
1.18
1.19
5.20.191.18
1.19
1.20
1.21
1.18
1.19
1.20
2022.2.XX1.18
1.19
1.20
1.21
1.18
1.19
1.20
1.21
4.8
2022.3.XX1.21
1.22
1.20
1.21
1.22
4.8
2022.4.XX1.21
1.22
1.23
1.20
1.21
1.22
1.23
4.9
2023.1.XX1.22
1.23
1.24
1.25
1.26
1.234.11

results matching ""

    No results matching ""