imglife eol
Synopsis
Section titled “Synopsis”imglife eol update [flags]Fetches EOL data from endoflife.date for every product referenced in sync.entries[].lifecycle.product and writes the result to eol_data_file.
| Flag | Default | Description |
|---|---|---|
--dry-run | false | Fetch and display data without writing |
--data-file string | eol-data.yaml | Path to the output file (overrides lifecycle.eol_data_file) |
Examples
Section titled “Examples”# Refresh EOL dataimglife eol update
# Dry-run: fetch and display without writingimglife eol update --dry-run
# Write to a custom pathimglife eol update --data-file /tmp/eol-cache.yamlWhen to run
Section titled “When to run”Run imglife eol update periodically (e.g. weekly) to keep EOL dates current. In CI, add it as a scheduled job:
# GitLab CI scheduled jobeol-update: stage: eol image: registry.gitlab.com/imglife-project/imglife:latest script: - imglife eol update - | if git diff --quiet eol-data.yaml; then echo "EOL data unchanged" else git add eol-data.yaml git commit -m "chore(lifecycle): update EOL data" git push fi rules: - if: $CI_PIPELINE_SOURCE == "schedule"Configuration
Section titled “Configuration”The set of products to fetch is derived from sync.entries[].lifecycle.product in your imglife.yaml. Only products with a lifecycle: block are fetched.
sync: entries: - source: docker.io/library/alpine lifecycle: product: alpine # ← will be fetched - source: docker.io/library/golang lifecycle: product: go # ← will be fetched - source: docker.io/library/nginx # no lifecycle: block — not fetchedStorage target
Section titled “Storage target”By default, the data is written to a local file (git target). For environments where CI cannot push to git, switch to pkgregistry:
lifecycle: eol_target: pkgregistryThe file is then stored in the Package Registry and read from there by imglife status and imglife check.
Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 | Data fetched and written successfully |
1 | Fetch or write error |