Skip to content

feat(executor): make the maintenance interval configurable - #51

Open
gurkangul wants to merge 1 commit into
appwrite:mainfrom
gurkangul:feat/executor-maintenance-interval
Open

gurkangul wants to merge 1 commit into
appwrite:mainfrom
gurkangul:feat/executor-maintenance-interval

Conversation

@gurkangul

Copy link
Copy Markdown

The executor's maintenance pass removes runtimes that have been idle longer than inactiveThreshold, but the chart hard-codes its interval (OPR_EXECUTOR_MAINTENANCE_INTERVAL: "3600"). With many scheduled functions, idle runtimes can therefore hold memory for up to an hour after inactiveThreshold has passed.

This adds compute.executor.maintenanceInterval, defaulting to 3600, so rendered manifests don't change unless it is set. The schema enforces a minimum of 1.

  • Template: templates/executor/deployment.yaml reads the value with the same appwrite.envValue helper as inactiveThreshold.
  • Docs: values comment, README and schema regenerated with make generate; docs/executor.md and a CHANGELOG entry under Unreleased.
  • Tests: the default renders "3600"; setting 60 renders "60".

Checks run locally:

  • ct lint, helm lint --strict on all CI value sets;
  • make unittest (260 passed);
  • make kubeconform, make examples, make check-generated, make check-changes.

The executor's maintenance pass, which removes idle runtimes, ran every
3600 seconds because the chart hard-coded OPR_EXECUTOR_MAINTENANCE_INTERVAL.
Add compute.executor.maintenanceInterval (3600 by default, so the rendered
values don't change) and document it, with the tests and the chart README,
values.schema.json and changelog entry that go with it.
@appwrite

appwrite Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

🟢 Tier S · Ready to merge

The configurable value is wired to the existing executor environment variable, retains the previous default, and is covered by default and custom-value tests.

Adds compute.executor.maintenanceInterval, defaulting to 3600 seconds, and passes it to the executor's maintenance-interval environment variable. Updates the chart documentation, schema, changelog, and executor tests to cover the default and a custom interval.

Verdict New comments Fixed Still open
💬 Commented 0 0 0

Note

@gurkangul does not have write access to this repository, so Hansi does not approve automatically. A maintainer can review and approve.

📂 Walkthrough · 7
File Change
CHANGELOG.md Documents the new configurable maintenance interval.
charts/appwrite/README.md Adds the value to the generated values reference and updates the inactive-runtime description.
charts/appwrite/templates/executor/deployment.yaml Renders the maintenance interval value into the executor environment.
charts/appwrite/tests/executor_test.yaml Tests the default interval and a custom configured interval.
charts/appwrite/values.schema.json Adds the generated integer schema with a minimum of 1.
charts/appwrite/values.yaml Adds the documented value, defaulting to 3600, and its minimum constraint.
docs/executor.md Explains how the configured interval affects idle runtime cleanup.

Reviewed c1b254e · Details · Comment @appwrite review to re-run, or mention @appwrite with a question.

@appwrite appwrite Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Tier S · Looks good to merge. Summary

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.

1 participant