-
Notifications
You must be signed in to change notification settings - Fork 178
docs: add extension auto-update CronJob documentation #3194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
cba4c88
ab2eb83
bc352df
1acef11
a0984e6
97f31a0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,6 @@ | ||
| :_content-type: PROCEDURE | ||
| :description: Enable the Operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands | ||
| :keywords: administration guide, openvsx, registry, extensions, managed, operator | ||
| :description: Enable the Operator-managed Open VSX registry to deploy a dedicated Open VSX server and PostgreSQL database as {prod} operands, and configure periodic extension auto-update | ||
| :keywords: administration guide, openvsx, registry, extensions, managed, operator, auto-update, cronjob | ||
| :navtitle: Enable the managed Open VSX registry | ||
|
|
||
| [id="enabling-the-managed-open-vsx-registry"] | ||
|
|
@@ -20,13 +20,16 @@ When enabled, the {prod-short} Operator creates the following resources: | |
| * A PostgreSQL database `Deployment` with a `PersistentVolumeClaim` for data. | ||
| * A one-shot `Job` to provision the database with the required user and access token. | ||
| * A `ConfigMap` for listing extensions to publish to the registry. | ||
| * Optional: A `CronJob` for periodic auto-update of published extensions from the upstream registry. | ||
|
|
||
| When disabled, the Operator removes all managed Open VSX resources. | ||
|
|
||
| .Prerequisites | ||
|
|
||
| * An active `{orch-cli}` session with administrative permissions to the destination {orch-name} cluster. See {orch-cli-link}. | ||
|
|
||
| * Outbound HTTPS access from the cluster to `open-vsx.org` is available. This is required for the extension auto-update `CronJob` to fetch newer extension versions from the upstream registry. | ||
|
|
||
| .Procedure | ||
|
|
||
| . Enable the managed Open VSX registry by patching the `CheCluster` custom resource: | ||
|
|
@@ -107,6 +110,77 @@ where `__<size>__` is the required storage size. For example: `5Gi`. | |
| + | ||
| The Operator automatically runs a publishing `Job` when the `ConfigMap` content changes. | ||
|
|
||
| . Optional: Enable periodic auto-update of published extensions. When enabled, a `CronJob` periodically checks the upstream `open-vsx.org` registry for newer versions of extensions published in the managed registry and re-publishes them automatically. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Minor: this one step covers enabling auto-update, the default schedule, a full field reference table, and a second customization example. Consider splitting into two steps ("enable" vs. "customize schedule/filters") for scannability — one action per step.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fixed |
||
| + | ||
| [source,shell,subs="+quotes,+attributes,+macros"] | ||
| ---- | ||
| {orch-cli} patch checluster {prod-checluster} \ | ||
| --namespace {prod-namespace} \ | ||
| --type merge \ | ||
| --patch '{ | ||
| "spec": { | ||
| "components": { | ||
| "openVSXRegistry": { | ||
| "extensionAutoUpdate": { | ||
| "enable": true | ||
| } | ||
| } | ||
| } | ||
| } | ||
| }' | ||
| ---- | ||
| + | ||
| By default, the auto-update job runs weekly on Sunday at midnight (schedule: `0 0 * * 0`). | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| The cluster must have outbound HTTPS access to `open-vsx.org` for the auto-update job to fetch newer extension versions. | ||
| ==== | ||
|
|
||
| . Optional: Customize the auto-update schedule and filters. The following fields are available under `spec.components.openVSXRegistry.extensionAutoUpdate`: | ||
| + | ||
| [cols="1,1,2", options="header"] | ||
| |=== | ||
| | Field | Default | Description | ||
|
|
||
| | `enable` | ||
| | `false` | ||
| | Enables the extension auto-update `CronJob`. | ||
|
|
||
| | `schedule` | ||
| | `0 0 * * 0` | ||
| | Cron schedule expression for the update job. | ||
|
|
||
| | `vsCodeEngineVersion` | ||
| | _not set_ | ||
| | When set, only extensions compatible with this Visual Studio Code engine version are updated. When omitted, the latest non-pre-release version of each extension is used regardless of engine compatibility. | ||
|
|
||
| | `excludedExtensions` | ||
| | _empty_ | ||
| | List of extension IDs to skip during auto-update, in `namespace.name` format. For example: `redhat.java`, `redhat.vscode-xml`. | ||
| |=== | ||
| + | ||
| [source,shell,subs="+quotes,+attributes,+macros"] | ||
| ---- | ||
| {orch-cli} patch checluster {prod-checluster} \ | ||
| --namespace {prod-namespace} \ | ||
| --type merge \ | ||
| --patch '{ | ||
| "spec": { | ||
| "components": { | ||
| "openVSXRegistry": { | ||
| "extensionAutoUpdate": { | ||
| "enable": true, | ||
| "schedule": "__<cron_expression>__", | ||
| "vsCodeEngineVersion": "__<version>__", | ||
| "excludedExtensions": ["__<namespace.name>__"] | ||
| } | ||
| } | ||
| } | ||
| } | ||
| }' | ||
| ---- | ||
|
|
||
| .Verification | ||
|
|
||
| * Verify that the Open VSX server and database pods are running: | ||
|
|
@@ -128,6 +202,13 @@ The Operator automatically runs a publishing `Job` when the `ConfigMap` content | |
|
|
||
| * Open a workspace and verify that extensions from the managed registry are available in the *Extensions* view. | ||
|
|
||
| * If extension auto-update is enabled, verify that the `CronJob` exists: | ||
| + | ||
| [source,shell,subs="+quotes,+attributes,+macros"] | ||
| ---- | ||
| {orch-cli} get cronjob --namespace {prod-namespace} -l app.kubernetes.io/component=openvsx-server-extensions-update | ||
| ---- | ||
|
|
||
| [id="configuring-custom-credentials-for-the-managed-open-vsx-registry"] | ||
| == Configure custom credentials for the managed Open VSX registry | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: eclipse-che/che-docs
Length of output: 8819
Scope outbound HTTPS to the optional auto-update CronJob.
The first sentence presents outbound HTTPS as an unconditional prerequisite. State the condition explicitly so users who disable auto-update do not infer that they need this access.
Suggested fix
📝 Committable suggestion
🤖 Prompt for AI Agents