Skip to content

lifecycle

The lifecycle section controls how imglife fetches and stores EOL data.

lifecycle:
eol_provider: endoflife # endoflife | local
eol_target: git # git | pkgregistry
eol_data_file: eol-data.yaml
FieldTypeRequiredDefaultDescription
eol_providerstringnoendoflifeData source: endoflife (fetch from endoflife.date) or local (read from file only)
eol_targetstringnogitWhere to write the updated cache: git (local file) or pkgregistry
eol_data_filestringnoeol-data.yamlPath to the local EOL cache file

Fetches data from endoflife.date for each product referenced in sync.entries[].lifecycle.product. The results are cached in eol_data_file.

Run imglife eol update to refresh the cache.

Reads EOL data exclusively from eol_data_file. No network requests are made. Useful for:

  • Air-gapped environments
  • Custom runtimes not available on endoflife.date
  • Testing

Writes the updated eol-data.yaml to the local filesystem. In CI, commit the file to your repository after running imglife eol update:

Terminal window
imglife eol update
git add eol-data.yaml
git commit -m "chore: update EOL data"
git push

Uploads the eol-data.yaml file to the configured Package Registry. Useful when the CI runner cannot push to git.

The file follows the endoflife.date API structure:

alpine:
- cycle: "3.21"
eol: "2026-11-01"
latest: "3.21.3"
latestReleaseDate: "2024-11-07"
- cycle: "3.20"
eol: "2026-04-01"
latest: "3.20.6"
latestReleaseDate: "2024-11-07"
golang:
- cycle: "1.22"
eol: "2026-02-01"
latest: "1.22.12"
- cycle: "1.21"
eol: "2025-08-06"
latest: "1.21.13"

The cycle key must match what imglife derives using the extract field in sync.entries[].lifecycle.

The alert threshold for EOL warnings is controlled by an environment variable, not the config file:

Terminal window
export IMGLIFE_ALERT_CRITICAL_DAYS=30 # warn when EOL is within 30 days