Apply a configuration change
To change an installed Sekoia Self-Hosted platform, edit the config.yml file of the self-hosted-controller (SHC), then apply it with the appropriate modules. For a change without a dedicated procedure, run Install again. Each run converges the platform to the state declared in config.yml. It reuses existing resources where possible, but can still restart components even when config.yml has not changed.
This page describes the general procedure, for example for a new SMTP server, a new proxy, or a sizing override, and a shorter procedure to change worker replica counts.
Plan a maintenance window: Install restarts K3s
A run of Install on an installed platform runs K3SInstall again. This module restarts the K3s service on every node where the K3s files changed: the service unit, the registry configuration, or the proxy settings. It restarts one node at a time and waits for the service to be back before it moves to the next node. The first run of Install after the initial installation always restarts K3s on the first manager node. This run replaces the unit used to initialize the cluster with the standard unit. When modules.k3s_install.reboot_after_install is true, the nodes reboot instead. PlatformInstallation also restarts the secret operator of the platform each time it runs. It redeploys every component whose deployed state differs from the configuration.
Use the dedicated procedure when one exists
Some changes have a shorter procedure. It runs only the modules they need, without the K3s stage. Follow it instead of this page for the platform certificate and the credentials, the backups, and the detection rules and intake formats.
Prerequisites
- The platform is installed and healthy:
exec DiagnosticreportsOKfor every check. Fix the current issues first, so that a failure of the run has one cause. - You run the SHC from the orchestration node, with the execution script and the environment variables described in Deploy the platform.
- For a run of
Install, the release files and the security content bundles are still extracted in$SEKOIA_LOCAL_DIR, or the online mode credentials are set.Installvalidates the release files again. It also publishes the images, the charts, and the bundles again. global.version.platform.versionkeeps its current value. The SHC does not yet upgrade or roll back the platform automatically, and 1.0.1 is currently the only release of Sekoia Self-Hosted.- No other SHC session is installing or updating the platform. See Interrupted Helm operations.
Change worker replica counts
Use this procedure only to change values under modules.scale_services.deploy on an installed platform. It does not run K3SInstall, PlatformInstallation, or InstanceBootstrap. If you also change service resources, storage, or other platform settings, follow Change the configuration and run Install instead.
-
Edit the target counts in
config.yml, using the mapping described in Worker replica counts. Confirm the capacity and the target counts with Sekoia before applying them. -
Quit the interactive SHC interface and open it again so that it reads the edited file. In one-shot CLI mode, each invocation of
./run-shc.sh <command>reads the current file. -
Validate the configuration and review the complete inherited scaling plan:
exec CheckLocalConfig config show modules.scale_services.deployCheckLocalConfigaccepts nested deployment keys but does not check their replica counts or whether the Deployments exist. Check the namespace, Deployment name, and target count of every entry before continuing. -
Apply the replica counts:
exec ScaleServicesThe SHC retrieves a current kubeconfig automatically.
ScaleServicesprocesses every configured Deployment and leaves those already at their target count untouched. It does not create missing Deployments. Invalid counts, missing Deployments, and Kubernetes API failures are reported together at the end. Counts already applied are not rolled back: fix the reported cause, restart the SHC if you editedconfig.yml, and run the command again. -
The command updates the desired replica counts but does not wait for the pods to become ready. From a shell with a kubeconfig for the cluster, check the changed Deployments, for example:
kubectl get deployments -n sic ingestworker1 sigma-workflow-worker1Wait until the
READYcolumn matches the configured count for each Deployment. If pods remain pending, check the node capacity and the pod events. Then runexec Diagnosticin the SHC and confirm that every check reportsOK.
The next run of ScaleServices or Install applies the counts in the computed configuration again. Keep durable changes in config.yml; ScaleServices does not accept --set overrides.
Change the configuration and run Install
-
Edit
config.yml, or the protected file that holds the environment variables referenced byconfig.yml.To find the key and the format of a setting, run
config help <PREFIX>, for exampleconfig help modules.platform_configuration.config.email. The required fields and the most common optional settings are described in Configure the deployment.Runtime overrides are not configuration changes
A value passed with
exec <MODULE> --set KEY=VALUEapplies to that run only. It is never written toconfig.yml. The next run ofInstallapplies the value ofconfig.ymlagain. Write a durable change inconfig.yml. -
Restart the SHC so that it reads the new values.
The SHC reads
config.ymlonce, when it starts. It resolves the${env.VARIABLE}references at the same time. In one-shot CLI mode, each./run-shc.sh <command>starts a new SHC and reads the current values. In the interactive interface, the values are the ones read when you opened it. Quit the interface and open it again after the change. When you changed an environment variable, load the protected file again before you start the SHC. -
To validate the new configuration without changing the platform, run:
exec CheckLocalConfigThe command reports a missing required field, an invalid format, or an unsupported key. It names the key without printing its value. It does not validate every optional setting, so an incorrect optional value can stop
Installin a later stage. To check a resolved value, runconfig show <PREFIX>on a section that holds no secret. See Inspect the configuration with the SHC. -
To apply the configuration, run:
exec InstallThe command runs the four stages of the installation execution plan, in order. It stops at the first module that fails. The run has completed when the
Install.start terminatedmessage reportssuccess=True. Warning-level messages can appear while the run makes progress. Investigate only when a module fails or stops making progress.Credentials in the run log
PlatformAccessprints the instance-administrator credentials in the output. In the interactive interface, it also writes them to the run log file. -
If a module fails, fix the cause reported in the log. Then run
exec Installagain. Nothing is rolled back. The work done by the completed modules is kept. The next run applies only the differences that remain. See Resume after a failure. -
Some values are read by the platform services only when they start, for example the SMTP server settings or the platform storage keys. When you changed one of them, restart the microservices:
exec RestartAllMicroservicesThe command restarts every microservice of the platform and waits for their rollouts. The databases keep running. The settings that need this restart are listed in Rotate the credentials.
-
To check the platform, run:
exec DebugArgoCD exec DiagnosticEvery ArgoCD application reports
Sync: SyncedandHealth: Healthy. Every diagnostic check reportsOK.Progressingis normal for a few minutes after the run.
Result
The platform runs with the values declared in config.yml. K3s restarted on the nodes whose K3s files changed. The components whose configuration changed were redeployed, and PlatformInstallation restarted the secret operator. A further run of Install with the same config.yml converges to the same declared state, but still runs the installation steps and restarts the secret operator.
Changes that Install does not apply
The SHC rejects the following changes, or does not apply them with a run of Install.
| Change | Behavior | What to do |
|---|---|---|
| Backup encryption keys in use | PlatformInstallation stops when BACKUP_ARANGO_CRYPT_KEY or BACKUP_CLICKHOUSE_CRYPT_KEY differs from the key in use. |
Keep the keys unchanged. See Back up the platform. |
| Smaller database storage size | CloudNativePG cannot shrink a volume. | Set a value equal to or larger than the current size. See Database storage. |
| Playbook library bundle | The bundle is downloaded in online mode. It is not published or applied after the installation. | None in 1.0.1. See Update the security content. |
| Platform release | The SHC does not yet upgrade or roll back the platform automatically. | Keep global.version.platform.version unchanged: 1.0.1 is currently the only release. |
Related links
- Configure the deployment: Reference of the configuration fields and of the SHC configuration commands.
- The deployment process: Installation execution plan, idempotency, and resume after a failure.
- Rotate the certificate and credentials: Dedicated procedures for the certificate and the credentials, and the components they restart.
- Back up the platform: Dedicated procedure to enable or change the backups.
- Run platform diagnostics: Check the platform services after the run.