Skip to content

feat: add revcovery mode#2974

Merged
ferruhcihan merged 37 commits intomainfrom
APL-1629
Feb 27, 2026
Merged

feat: add revcovery mode#2974
ferruhcihan merged 37 commits intomainfrom
APL-1629

Conversation

@j-zimnowoda
Copy link
Contributor

@j-zimnowoda j-zimnowoda commented Feb 23, 2026

📌 Summary

This pull request adds configuration options to control deployment and installation mode (standard|recovery), and implements the recovery process from the external git repository.

  • Added logic to read and persist the installation mode (standard or recovery) in the apl-installation-status ConfigMap,
  • updated the install flow to use this information for standard installs and recovery. (src/cmd/install.ts,
  • Implemented new methods in the Installer class to support recovery from Git (recoverFromGit),
  • Added a new VSCode launch configuration for debugging the operator. (.vscode/launch.json)
  • Improve unit tests execution by 2 seconds

🔍 Reviewer Notes

To test this delivery,

  1. create Kubernetes cluster

  2. install apl chart on that cluster

helm upgrade --install apl $HOME/workspace/linode/apl-core/chart/apl -f values.yaml

Required values:

# values.yaml
cluster:
  name: test
  provider: linode
kms:
  sops:
    age:
      privateKey: <>
      publicKey: <>
    provider: age
otomi:
  version: APL-1629
  useORCS: false
  git:
    repoUrl: <>
    username: <>
    password: <>
    email: <>
    branch: main
installation:
  mode: recovery

Note 1: the version and useORCS are only needed for testing recovery from the feature branch.
Note 2: the values repo indicated in the git.repoUrl must have the same git and sops settings as those from the values.yaml file.

Logs to observe

2026-02-24T09:43:30.624Z otomi:operator:installer:info Current installation status: pending
2026-02-24T09:43:30.624Z otomi:operator:main:info Recovery mode enabled, checking external git and kms prerequisites
2026-02-24T09:43:30.680Z otomi:cmd:bootstrap:recoverFromGit:info Attempting to clone git repository from:  <your repo>
Cloning into '/home/app/stack/env'...
2026-02-24T09:43:31.453Z otomi:common:crypt:decrypt:info Starting decryption
2026-02-24T09:43:33.408Z otomi:common:crypt:decrypt:info Decryption is done
2026-02-24T09:43:33.408Z otomi:operator:main:info Recovery installation completed, switching installation mode to standard

Config map to observe

k get cm -n apl-operator apl-installation-status -oyaml

🧹 Checklist

  • Code is readable, maintainable, and robust.
  • Unit tests added/updated

@j-zimnowoda j-zimnowoda changed the title Apl 1629 feat: add revcovery mode Feb 24, 2026
@j-zimnowoda j-zimnowoda marked this pull request as ready for review February 24, 2026 12:32
Copy link
Contributor

@CasLubbers CasLubbers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still need to test it. Only some questions

Copy link
Contributor

@CasLubbers CasLubbers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recovery worked, comments are not blocking

Copy link
Collaborator

@ferruhcihan ferruhcihan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested, LGTM 👍🏻

@ferruhcihan ferruhcihan merged commit 503b3fb into main Feb 27, 2026
13 checks passed
@ferruhcihan ferruhcihan deleted the APL-1629 branch February 27, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants