Skip to content

Configure the deployment

The config.yml file describes the environment that the self-hosted-controller (SHC) deploys. For Sekoia Self-Hosted 0.1.0, start from a built-in sizing profile and provide the site-specific values described on this page.

The SHC combines the built-in defaults, the selected sizing profile, and your config.yml into one computed configuration. It validates the result before installation and rejects missing required fields, invalid values, and unsupported keys.

This page explains every required field. To inspect supported optional settings, use the SHC configuration commands.

Check the correct

The SHC validates the configuration in the CheckLocalConfig Pre-Flight check. The SHC does not however check that all variable are provided in full and correctly. For example a variable passed as an empty string may still be considered valid and cause the deployment to fail at later phases.

To assure that the configuration is correct, please us the config show command to inspect the computed configuration and verify that all required values are present and correct.

Create the configuration file

Use the following configuration as a starting point. Replace every example value before running the SHC.

global:
  inherit_config: sizing/1tb-day.yaml
  host: "app.example.com"
  delivery_host: "admin.example.com"
  kube_manager_host: "kubernetes.example.com"
  forward_dns: "10.0.0.100"
  platform_storage:
    region: "${env.STORAGE_S3_REGION}"
    endpoint: "${env.STORAGE_S3_ENDPOINT}"
    access_key: "${env.STORAGE_S3_ACCESS_KEY}"
    secret_key: "${env.STORAGE_S3_SECRET_KEY}"
  version:
    platform:
      version: "v0.1.0"

utils:
  ansible:
    ssh-key: "${env.SERVERS_SSH_KEY}"
    user: debian
    inventory:
      managers:
        - 10.0.0.1
        - 10.0.0.2
        - 10.0.0.3
      workers:
        - 10.0.0.10
        - 10.0.0.11
        - 10.0.0.12
  git:
    repo_url: "https://git.example.com/sekoia/self-hosted.git"
  oci_registry:
    host: "registry.example.com"
    project: "sekoia-self-hosted"
    username: "${env.REGISTRY_USERNAME}"
    password: "${env.REGISTRY_PASSWORD}"

modules:
  platform_configuration:
    config:
      global:
        instance_public_key: "${env.SEKOIA_INSTANCE_PUBLIC_KEY}"

References such as ${env.STORAGE_S3_REGION} read values from environment variables when the SHC loads the file. Use this syntax for credentials instead of storing secrets directly in config.yml. The former env.VARIABLE_NAME syntax is not supported.

Set these environment variables before running the SHC:

Variable Purpose
STORAGE_S3_REGION Region of the S3-compatible storage used by the platform.
STORAGE_S3_ENDPOINT Endpoint of the S3-compatible storage used by the platform.
STORAGE_S3_ACCESS_KEY Access key for platform storage.
STORAGE_S3_SECRET_KEY Secret key for platform storage.
SERVERS_SSH_KEY SSH private key used to configure the Kubernetes nodes.
REGISTRY_USERNAME Username for the OCI registry.
REGISTRY_PASSWORD Password for the OCI registry.
SEKOIA_INSTANCE_PUBLIC_KEY Base64-encoded instance public key provided by Sekoia.

The deployment guide shows how to pass these variables to the SHC container.

Select and adjust a sizing profile

global.inherit_config selects a sizing profile shipped with the SHC image. The profile supplies service replicas, resource allocations, storage sizes, and other capacity-related defaults, while your site configuration overrides the values specific to your environment.

sizing/1tb-day.yaml is one built-in sizing example. Additional profiles may be included in the GA release. A profile is a starting point, not a universal production recommendation: review and adjust it with Sekoia to match your event sizes, events per second, daily ingestion volume, retention requirements, and volume of search queries.

Use config show to review the result after inheritance, and config help to identify supported sizing overrides. Do not copy undocumented keys into your configuration: the SHC rejects unsupported fields.

Required fields

Platform endpoints

Field Description
global.host Primary FQDN used to access the Sekoia platform, for example app.example.com. Configure DNS and the load balancer so this hostname reaches the platform.
global.delivery_host Public FQDN used by delivery services, including the administrator portal, for example admin.example.com.
global.kube_manager_host IP address or hostname used to reach the Kubernetes manager endpoint. For a highly available deployment, use the address of a TCP load balancer in front of the manager nodes.
global.forward_dns DNS nameserver address forwarded by CoreDNS for name resolution outside the Kubernetes cluster.

Platform storage

The platform uses S3-compatible object storage for ExaLog and other platform data. These credentials must allow the platform to create and use its required buckets.

Field Description
global.platform_storage.region Region configured by your S3-compatible storage provider.
global.platform_storage.endpoint Endpoint used to access the S3-compatible storage. Include the URL scheme, for example https://s3.example.com.
global.platform_storage.access_key Access key for the S3-compatible storage. Use an environment-variable reference.
global.platform_storage.secret_key Secret key for the S3-compatible storage. Use an environment-variable reference.

ExaLog storage configuration is derived from global.platform_storage. Some computed configuration keys retain quickwit in their names, but they configure the ExaLog capability.

Release

Field Description
global.version.platform.version Sekoia Self-Hosted release to deploy. Set it to v0.1.0 for this GA documentation.

Kubernetes node access

Field Description
utils.ansible.ssh-key Private key used by the self-hosted-controller (SHC) to connect to and configure every Kubernetes node. Use an environment-variable reference.
utils.ansible.user SSH user used on every Kubernetes node. The account must meet the privilege requirements in the technical requirements.
utils.ansible.inventory.managers List of manager-node IP addresses or resolvable hostnames. At least one manager is required.

Worker nodes are configured under utils.ansible.inventory.workers. The field is not required by the configuration validator, but production sizing profiles normally require workers to provide the expected capacity.

Git repository

Field Description
utils.git.repo_url URL of the customer-managed Git repository in which the self-hosted-controller (SHC) publishes the ArgoCD stack manifests.

If the repository requires authentication, use config help utils.git to inspect the supported HTTP and SSH authentication settings.

OCI registry

Field Description
utils.oci_registry.host Registry hostname, with an optional port and without a URL scheme, for example registry.example.com or registry.example.com:5000.
utils.oci_registry.project Registry project or namespace in which the self-hosted-controller (SHC) publishes Sekoia artifacts, for example sekoia-self-hosted.
utils.oci_registry.username Username with push, pull, and delete permissions in the registry project. Use an environment-variable reference.
utils.oci_registry.password Password or token for the registry account. Use an environment-variable reference.

The SHC derives the registry URL and the repositories used for checks, charts, and images from these values. Do not set the derived url, check_repo, chart_repo, or image_repo fields directly for a standard deployment. Override them only for a special registry layout or while debugging with guidance from Sekoia.

Instance license

Field Description
modules.platform_configuration.config.global.instance_public_key Base64-encoded public key used to validate the Sekoia instance license. Sekoia provides this value. Use an environment-variable reference.

Inspect the configuration with the SHC

Use the SHC itself to discover supported optional fields and verify the computed configuration.

To list supported configuration fields, run:

config help

Add a prefix to focus on one section:

config help global.platform_storage
config help utils.oci_registry

To display the configuration after defaults, inheritance, environment references, and derived values have been resolved, run:

config show

You can also display one section:

config show global.platform_storage

Protect resolved secrets

config show includes resolved credentials. Do not paste its output into tickets, chat messages, or logs. Redact all secrets before sharing it with Sekoia support.

Finally, validate the configuration before starting an installation:

exec CheckLocalConfig

The command reports missing required values, invalid formats, and unsupported keys. Correct every error before continuing.