Repository navigation
chore(operator): the hosting operator leaves core for MeshWeaver.Plugins (delete half) - #7119
Conversation
…ins (delete half)
Removes deploy/aks/operator, .github/workflows/hosting-operator.yml and the
operator's entries in manual-keyvault.allow and .gitignore; they live in
MeshWeaver.Plugins deploy/hosting-operator now, with its own
hosting-operator.yml publishing hosting-operator:main.
- memex-local's Linux gate, which rode in hosting-operator.yml, stays here
unchanged as memex-local.yml.
- release-channels: a writer binding may name another repository ("repo");
the hosting-operator:main writer now names MeshWeaver.Plugins, so the
label stays declared and protected. Self-tests for both directions.
- Doc/Architecture/OperatorCredentialsByName moved to Hosting/ in Plugins;
inbound links and path mentions repointed; the carving map records the move.
Pairs-with: Systemorph/MeshWeaver.Plugins#4137
Refs core slimming.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Test Results 27 files ±0 27 suites ±0 52m 16s ⏱️ +17s Results for commit c4e1315. ± Comparison against base commit f531a28. This pull request removes 59 and adds 22 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
One or more issues must be addressed before approval.
No open issues 🎉
What changed in this PR
This is the deletion half of moving the hosting operator from core to MeshWeaver.Plugins, while retaining core’s local-development checks and image-retention protections.
Changes:
- Removes migrated operator assets and separates the retained memex-local workflow.
- Supports cross-repository release-channel writers without dropping protection for
hosting-operator:main. - Updates documentation, paths, and credential-guard ownership.
One validator defect was identified. The external publication and estate-lane prerequisites could not be independently verified because the linked repositories were inaccessible.
| File | Description |
|---|---|
| src/MeshWeaver.Documentation/Data/Architecture/SelfUpdateSchemaWall.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/SecretsWriteOnlyEntry.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/RemovingAKeyFromTheRecord.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/ReleaseEditions.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/PlanningADatabaseMigration.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/PinnedImageRetention.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/DeploymentAKS.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/DeniedIsNotAbsent.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/DebuggingNativeCrashes.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/ContainerRegistryInMemex.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/ChartDriftSemantics.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture/CarvingProjectsOutOfCore.md | Updated as part of this pull request. |
| src/MeshWeaver.Documentation/Data/Architecture.md | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/verify/openssl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/verify/curl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/storage-prune/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/run/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pv-resize/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pv-purge/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pv-purge/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pull-secret/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pg/psql | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pg/pg_restore | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pg/pg_dump | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/pg/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/migrate/helm | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/manifest-apply/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/kv-set/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/kv-rotate/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/inventory/psql | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/interlock/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/interlock/hosting-migrate | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/image-mirror/crane | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/image-mirror/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/helm | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/dump-analyze/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/deploy/hosting-migrate | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/deploy/helm | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/db-reset/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/db-release/helm | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/az-session/pg_dump | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/az-session/curl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/az-session/az | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/artifact-store-bind/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/aks-upgrade/kubectl | Updated as part of this pull request. |
| deploy/aks/operator/test/stubs/aks-upgrade/curl | Updated as part of this pull request. |
| deploy/aks/operator/test/stderr-discarded.allow | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/pod-refused.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/pod-partial.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/deployments-subpath.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/deployments-shadowed.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/deployments-plain.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/storage-prune/deployments-emptydir.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/stuck/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/stuck/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/stuck/pvc.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/pending/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/pending/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/no-expansion/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/no-expansion/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/grows/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/grows/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/grows/pvc.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/filesystem-pending/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/filesystem-pending/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/filesystem-pending/pvc.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/already/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/already/pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-resize/absent/storageclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/pv-purge/pvs.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/migrate/rendered.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/migrate/manifest.yaml | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/stuck/deployment.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/rotated/secret_memex-portal-keyvault.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/differ/secret_memex-portal-keyvault.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/base/secret_memex-portal-secrets.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/base/secret_memex-portal-keyvault.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/base/deployment.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/base/deployment.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/inline-env/base/configmap_memex-portal-config.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/pod-refused.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/pod-partial.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/deployments-noroot.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/deployments-emptydir.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/deployments-data.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/dump-analyze/deployments-claim.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/deploy/status.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/deploy/rendered.yaml | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/deploy/names.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/deploy/live/secretproviderclass.secrets-store.csi.x-k8s.io_memex-kv.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/deploy/live/configmap_memex-portal-config.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/missing/.keep | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/forbidden/status.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/forbidden/live/role.forbidden | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/forbidden/live/deployment.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/forbidden/live/configmap.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/status.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/manifest.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/serviceaccount.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/service.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/secretproviderclass.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/secret.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/persistentvolumeclaim.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/job.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/ingress.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/cronjob.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/live/configmap.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/drift/hooks.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/status.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/serviceaccount.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/service.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/secret.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/scaledobject.notype | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/persistentvolumeclaim.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/job.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/ingress.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/deployment.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/live/configmap.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/audit/clean/hooks.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pvc.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pvc-pending.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pv.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pv-explicit-attrs.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pv-disk.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/owner-pv-custom-secret.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pvc-other.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pvc-bound.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-writable.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-unlabelled.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-stale-secret.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-shared-handle.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-same.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-other.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/artifact-store-bind/existing-pv-delete.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/versions.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/upgrades.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/show.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/show.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/runner.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/pools.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/pools.after.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/pods-memex.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/pdbs.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/nodes.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/metrics.txt | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/manifests/pdb.yaml | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/manifests/cron.yml | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/ingress-memex.json | Updated as part of this pull request. |
| deploy/aks/operator/test/fixtures/aks-upgrade/deployments.json | Updated as part of this pull request. |
| deploy/aks/INSTANCE-LIFECYCLE.md | Updated as part of this pull request. |
| .gitignore | Updated as part of this pull request. |
| .github/workflows/s1-extract-image.yml | Updated as part of this pull request. |
| .github/workflows/homebrew.yml | Updated as part of this pull request. |
| .github/scripts/lock-pinned-digests.py | Updated as part of this pull request. |
| .github/scripts/check-workflow-shell.py | Updated as part of this pull request. |
| .github/release-channels.json | Updated as part of this pull request. |
| .claude/skills/new-deployment/SKILL.md | Updated as part of this pull request. |
Review effort: Balanced
Every conflict resolved so the deletion wins: the chart files main changed (#7143, #7159, #7184, #7170, #7119; all ported to MeshWeaver.Deploy by Deploy#4), the chart-reading guards main moved onto RepoPaths (#7111), and the Memex.Portal.Shared files main moved to MeshWeaver.Plugins (#7125). Also deleted: the build-host chart files main added after this branch was cut (frozen, in Deploy now) and memex-local.yml (#7119), whose Linux gate is Deploy's homebrew.yml linux job. Kept from main: instances.json's re-measured MeshWeaver.Deploy row. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Refs core slimming (the hosting operator leaves core). This is the DELETE half.
Pairs-with: Systemorph/MeshWeaver.Plugins#4137
Pairs-with: Systemorph/Memex#819
The two preconditions, and where each stands
Hosting Operatorlane has PUBLISHED. Done: Plugins#4137 merged; itshosting-operator.ymlrun 40179992917 (push on Pluginsmain) pushedhosting-operator:364d07a-d587633-f2e13f7and movedhosting-operator:mainto the same digest, and its hourly scheduled runs are green since.deploy/aks/operator/binfrom core. Systemorph/Memex#819 does this. Every record pinshosting-operator:main(the estate'scheck-no-pins.pyrefuses a hash), and Exact-path reads run under the caller's identity, so gating applies #819 resolves that moving tag to the scripts' new home, MeshWeaver.Pluginsdeploy/hosting-operator/binatmain, with the chart from MeshWeaver.Deploy and the retention record from core. Immutable<plugins>-<core>[-<deploy>]tags resolve to their halves. This PR merges only after Exact-path reads run under the caller's identity, so gating applies #819 has merged.Old
<core sha7>pins keep working after this lands, because the scripts remain in core's history at those commits.What this removes
deploy/aks/operator/(bin, test, Dockerfile). The same trees are at Pluginsdeploy/hosting-operator:bina6280377,teste16fd9a5, identical tomainhere, including the merged feat(operator): AnalyzeDump reports what holds the heap (gcheapstat, dumpheap -stat) #7100..github/workflows/hosting-operator.yml. Its memex-local steps (parse, shellcheck, behaviour tests, on every PR) are not the operator's, so they stay here unchanged as.github/workflows/memex-local.yml..github/manual-keyvault.allow. They moved to Pluginsdeploy/hosting-operator/manual-keyvault.allow, and the Plugins lane runs this repository'scheck-manual-keyvault.pyover that directory. Here the gate readsclean … 1 allowed path glob..gitignorere-include fordeploy/aks/operator/bin.Doc/Architecture/OperatorCredentialsByName, moved to PluginsHosting/OperatorCredentialsByName. The two inbound links (Architecture.md,SecretsWriteOnlyEntry) point at/Hosting/OperatorCredentialsByName.What changes so
hosting-operator:mainstays protectedrelease-channels.jsondeclaredhosting-operator.yml#publishas the writer ofhosting-operator:main, andrelease-channels.py checkrequires a writer's workflow to exist in this tree. Deleting the workflow would therefore red that check. Dropping the binding would removehosting-operatorfrom the protected patterns the pruners read. So a binding may now name another repository:"repo": "Systemorph/MeshWeaver.Plugins". Such a binding is shape-validated but not opened here. New self-test cases:repois refused;release-channels self-test: passed (0 failure(s)),check .: 11 labels consistent.Everything else
lock-pinned-digests.py: the ARM 13 fixture path and its docstring name the new location. The self-test passes.check-workflow-shell.py,homebrew.ymlands1-extract-image.ymlthat named the old workflow are updated.new-deploymentskill anddeploy/aks/manifests/hosting-operator/README.mdpoint atMeshWeaver.Plugins/deploy/hosting-operator.INSTANCE-LIFECYCLE.mdstep 4 no longer tells anyone todocker buildthe image by hand.deploy/helm,deploy/helm-db,deploy/aks/scriptsanddeploy/aks/manifests/**(bytes). The operator image still bakes the chart from here, and manifests are applied by digest.test/MeshWeaver.Deployment.Contract.Testfixtures are also untouched: they name the image only, and a parallel change owns that project.CarvingProjectsOutOfCorehas a new section on moving a tool whose image carries core bytes.Not moved:
OperatingFromThePortal. It is the agent-facing manual of action kinds, linked from AGENTS.md, and itsAnalyzeDumprow describes the action, not operator internals. The same goes forDebuggingNativeCrashes→ "Reading a production dump". Both now name the scripts' new path.Local gates (re-run on the head merged with
main)main:deploy/aks/operator/test/run-tests.shwas modified onmainby Per-hub Autofac child scopes cost ~55 KB per hub: replace Autofac with the standard container plus a per-hub overlay #7145 (Autofac frame names in a dump-analysis fixture) and is deleted here; the deletion wins.CarvingProjectsOutOfCorekeeps both new sections.MeshWeaver.Documentation.Testbuilds-c Release -warnaserrorwith 0 warnings and 0 errors.DocumentationLinkIntegrityTest+ArchitectureTopicMapTestran 5 tests, 0 failed.release-channels.py --self-testandcheck .,check-manual-keyvault.py --root .,check-workflow-timeouts.py,lock-pinned-digests.py --self-test,check-workflow-shell.py: all clean.No public type or member leaves
src/. Nothing was run against the cluster, and no InstanceAction was filed.🤖 Generated with Claude Code