Changelog
- c8d3a3ef43930ede0e970b515d3bc8d87dc56886: Add IAM auth to audit logging (#7453) (@rmweir)
- 62b020a30852ec2dfac996daf23df1d9839401fb: Add vcluster.com/pause-deploy annotation for node providers (#7782) (@squ94wk)
- 7ad1fe2e12b5052e57d25a93190df1fad91a1525: Add yarn install to dev-ui recipe (#8614) (@kaihulme)
- 24ea04ab9988b4a428669ced157a5bd74c52584b: Address highly critical bot concern ( <>)
- 6e1f920862f40c377b83c10994e2e7f97129b9bd: App instances (#7632) (@FabianKramm)
- d13cc1493f2b1fdd22968d0a6bab3570308424c6: Automatically set neutron.enabled in metal3 chart (#7895) (@squ94wk)
- 1e4f391750cc89531d04278a6ae383031e948a1e: Block NodeClaim destroy until node is drained (#7837) (@squ94wk)
- f066cf458510d8f4ec99891d457db490d657770e: Bump metal3 chart default version (#7600) (@squ94wk)
- 35f3d008706962a4f62f076e824784b9d5125f25: CTO-151 Metal3 Netris integration (#7569) (@squ94wk)
- 81d50870610b52ac3a7365fa3d965bbb160869cd: CTO-156 vMetal UX improvements (#7511) (@squ94wk)
- 317dacf96f5fb54709a571e4b24d432e402033c7: CTO-201 Graceful drain UI (#7893) (@squ94wk)
- ce46bca38f0f91db7ab144f8b5e42b8c1af86d51: CTO-207 Make metal3 HA the default (#7890) (@squ94wk)
- 2b7fec9546321b8baceba61414112f2ec5b1098e: ENG-12838 redfish explorer (#8491) (@squ94wk)
- fb6e446b7a65607a8b701c774b69d4ea2784d6ab: ENG-13034 fix node bootstrap templates can read the platforms (#8779) (@squ94wk)
- e10114128b792a1b16e6fad18dc63385db6f5e61: ENGCP-1687 - keep peers that reconnected through another replica (#8606) (@matskiv)
- 0d85300807bf76ee17bbf3b88964424916ed9f76: Eng 12939 properties writable (#8816) (@squ94wk)
- 6cea16125f8fcca1324d2f26b0df406b20c3c959: Feat/aviz network provider (#9239) (@squ94wk)
- 7d2c949c3b9a2c6f9f7be371a0d40e1912dc41fa: Fix up some details on breadcrumb & upgrade bar ( <>)
- faee1c04d053540d9d9ce98609838a8c678142cf: Fix: Netris TOCTOU race (#7624) (@squ94wk)
- b8a08ef6026083aad3dd9f627ef659477feefc01: Fix: NodeClaim delete deadlocks on draining (#7933) (@squ94wk)
- 75b90d55eef7c6dc89ba6aa1aa9e89309fb42bfc: Fix: delete dead lock for NodeClaim with non-existent NodeEnvironment (#7608) (@squ94wk)
- 096751758ed7fdd751ccb1eae08b961f805c7975: Fix: ipa-images url & allow overrides (#7930) (@squ94wk)
- 2ea88247d1a2fae6c150ba8e0e6de64b0d2535d2: Handle intermittent node provider errors gracefully (#7718) (@squ94wk)
- 3c6e6afc65e1f176d1f5d36bdecbcc96433f2687: Make Multus DaemonSet resources configurable (#7721) (@squ94wk)
- 42713e319fa0337fd2ad703d090ca0e72ab1969e: Remove unnecessary border color prop ( <>)
- 9459dcbc9ee20622164e54799305245e283672a5: Revert "chore(debug): log live spaceinstance state around finalizer and namespace create (drop before merge)" (@roehrijn)
- ad79e2acf9f1290c484f0255ade6023c30dc442b: Revert "chore(deps): update docker-golang" (#8204) (@FabianKramm)
- ebed1652c81bbad9b4f90e0aa4ebaadf5245c7f1: Support KubeVirt binding plugins through properties (#7778) (@squ94wk)
- 4fc98a296d8b0e38a1c6ac10bf2e255c7e6f40cd: Tidy up cluster table links column ( <>)
- b43212f2efbbdc3b1f946dc584e8d3a39b70da17: Update nodes team to apps (@cbron)
- d8f4a9d3cab38d9753cb48cbe2045600b9059e84: Updates chart logo to match vcluster, we dont use loft branding anymore (#6892) (@cbron)
- 1c381956a24b45e65c72cc7f33aa31d3ad5336e6: Updates codeowners (#8132) (@cbron)
- e8eb675e320e85176ba357c2ac660742632694e1: Upgrade metal3 provider deploy chart (#8192) (@squ94wk)
- 666c6940d2bbd44f6c5c9b07fa0ad20545eaa4b2: add e2e test coverage for node profiles (#7653) (@neogopher)
- 8ad6680d2dd225e035aba1da20c4e9c6b363c689: adds: e2e test for auto snapshot support for standalone (#7955) (@jjaferson)
- 0d92e6f75e07fd31b7fe552cba3445492848b873: adds: support for s3 encryption (#7629) (@jjaferson)
- c8a59442a156194001502382419d65ef1411d001: build(deps): drop redundant k8s.io/client-go fork replace (@lizardruss)
- 59ed9d1256e03424e29f00c174a4e56ac4a7aa86: chore(api): Remove feature to migrate virtual cluster instances between projects (#9158) (@cbron)
- 8f3b148363dde32e5710ea65545a2d6b44fbae98: chore(api): regenerate apis for the osimage finalize subresource (@r0bnet)
- dc8d5224f9d3259344b57acc228b9b146fcfbb75: chore(api): regenerate apis for the osimage status (@r0bnet)
- 462f136c1f962a099ebe989f82c20037495313ee: chore(api): regenerate apis for the osimage upload paging fields (@r0bnet)
- ac4dc160320e3f5d6b32cd735252658a659e5572: chore(api): regenerate for the store-neutral upload target wording (@r0bnet)
- 4b8fb2bfacb4f533eddb15448cef1837ebdd07ff: chore(api): regenerate go apis for the osimage upload subresource (@r0bnet)
- d6ff3515984268a23516ebf625d4c0422f990c14: chore(api): regenerate swagger and typescript client for osimages/upload (@r0bnet)
- 83150252e5548d38a0334c904fd04ed323e4a6e4: chore(chart): bump loft chart audit sidecar image to alpine 3.24 (@kaihulme)
- fe553e87d04ad3eba459992600183377a2a69aab: chore(ci): bump prerelease-checks vci default and upgrade k8s versions to 1.35.10 and 1.36.6 (#9019) (@kaihulme)
- e3ea3520053a1d330c6b338e9041be1408814211: chore(ci): configure renovate action digest pinning (#8786) (@Piotr1215)
- c4b561d2254be8b67bf05203bc0283973594a26d: chore(ci): expose the gcp e2e project variable (#8924) (@Piotr1215)
- 670dd6da72660499889730903da560ffdb08df36: chore(ci): pass branch cleanup slack webhook (#8346) (@Piotr1215)
- ed167563c81f4055d911706da07c9031fd2cf361: chore(codegen): regenerate stale swagger and agent openapi (@r0bnet)
- ed2ae94c3a8b14cfa7d634e468e561b9c49e5aad: chore(codegen): regenerate stale swagger spec (#8184) (@r0bnet)
- 7ac9a23f83c3c0733cfca941e712f3c662b0b6a1: chore(codeowners): drop the redundant nodeclaim/controller.go entry (#8325) (@rlmcpherson)
- 90a0a14989b038dcd75203c3e4896e841e0a9023: chore(codeowners): drop the remaining per-file auto nodes entries (#8326) (@rlmcpherson)
- 705f6cd78bf525166c7f9546a0d001a26e97438a: chore(codeowners): move the nodes controllers to eng-control-plane (#8323) (@rlmcpherson)
- 6259a7b36943282a5e859ec51b30b0c755fa2170: chore(constants): set default version to 0.37.0 (@r0bnet)
- e7cfbb17b56b2a2a574acdf12214b573228064f9: chore(cve-fix): bump helm and prometheus to patch CVEs (#7788) (@neogopher)
- c8b4e564dceac8be022da9c815d3a740fb058285: chore(cve-fixes): bump vulnerable deps in otel, opentofu, kube, opencost, prometheus, and kine (#7512) (@neogopher)
- 659d454723239704eb82d23eb36fa9b02a345bf6: chore(debug): log live spaceinstance state around finalizer and namespace create (drop before merge) (@roehrijn)
- cf013d4846f3669c79d6ad40b1c5b4a1676623dd: chore(deps): bump Go to 1.26.10 and update Alpine to include eMudhra CA compromise fixes (#8782) (@kaihulme)
- e47205d86fd3915492ff82c26b1dc7444835f41c: chore(deps): bump admin-apis for the tenant limit (@johannesfrey)
- bbc6eab153f76d7d0c4473375c5af50cb6bbfb8b: chore(deps): bump docker/login-action from 3 to 4 (#6867) (@dependabot[bot])
- 38bd2d5fbb956269eedef85b7eb14604bfeeb246: chore(deps): bump e2e-framework to fix podexec combinedoutput segfault (@seanschneeweiss)
- 98b5e964e9e62c609eccd251c291e5ba40a56fb8: chore(deps): bump embedded kubernetes to v1.36.6 for emudhra ca compromise (@kaihulme)
- 7dcea6b66e27b50629f94ffbc4a486d307cb9af9: chore(deps): bump kine to v0.16.5.vcluster.1 (#8923) (@kaihulme)
- e4c71d6e1ddcd3f766db34b6e82d5671f314e02e: chore(deps): bump opentofu to 1.12.11 (@kaihulme)
- e024df02d0e5adb93fb361834713c76b7a3e84e9: chore(deps): bump prometheus chart to 29.40.0 (#9060) (@kaihulme)
- ccff1d5a6eee99e980e598a9770438d49be517f4: chore(deps): move etcd module set back to v3.6.14 (#7706) (@johannesfrey)
- a97c9494e01a2004faece6845ad99fbdc26300ca: chore(deps): pin the kine image by digest (#8959) (@Piotr1215)
- 2b504f6265f0d408585231b371a6f71d7de614de: chore(deps): update certified vcluster template versions (@vcauesantos)
- 3013ca8f3456ad37c98bf54546a186f51b5632d4: chore(deps): update dependency air-verse/air to v1.67.4 (@renovate[bot])
- 58211bcfa706cf373de22e09077adc84f7e03b06: chore(deps): update dependency golangci/golangci-lint to v2.7.2 (#8073) (@renovate[bot])
- 224813841b9f2ecb9e5a287eb3e5dffeb1ace17e: chore(deps): update dependency helm/helm to v3.21.4 (#8074) (@renovate[bot])
- 1bad801c40edb0a3bf102d57c6bcc03c099d629c: chore(deps): update dependency helm/helm to v3.22.1 (#8216) (@renovate[bot])
- 8b412472cb4541c4082735e0e0430caa3de0cba4: chore(deps): update dependency loft-sh/devspace to v6.3.21 (#8075) (@renovate[bot])
- d82b49894135bcf0309eedc290488a5685459be9: chore(deps): update docker-golang (@renovate[bot])
- 2cb818002d057c0381a0847f6fb3183a5e27a4a0: chore(deps): update docker-golang (#8080) (@renovate[bot])
- df68cf73bed0b90d83e186485cdb89f4a7966e29: chore(deps): update docker.io/postgres docker tag to v17.10 (#8160) (@renovate[bot])
- 5fd8f88407b18926cbdc634b5994b1bead72a957: chore(deps): update google.golang.org/genproto digest to d0f1323 (#8119) (@renovate[bot])
- 7778f36b735dcb8348e951c1c6bff21f5dd60922: chore(deps): update google.golang.org/genproto digest to f61a6ca (#8171) (@renovate[bot])
- 79437539be9d48d553e3c1d91b15d8394203e161: chore(deps): update helm release loft to v4.12.4-rc.1 (#8163) (@renovate[bot])
- 1416f6b5f02a11978fe287e170dc0f0cf2aa51eb: chore(deps): update helm release vcluster to v0.37.1 (@renovate[bot])
- e6567281bc3a1253af540d63a8c4d76c7d071e09: chore(deps): update module github.com/google/cel-go to v0.29.0 [security] (@renovate[bot])
- 13667825d3adec43415ed9962b2aadc3f501600a: chore(deps): update module github.com/klauspost/compress to v1.18.7 [security] (#8792) (@renovate[bot])
- caba0df73c9ab69cb8b8cbdcee967c8781082712: chore(deps): update terraform aws to v5.100.0 (#8166) (@renovate[bot])
- c63412f1cf1e8e923a1d7dcbfad9ca40de079a0d: chore(deps): update terraform tls to v4.0.6 (#8111) (@renovate[bot])
- 757bc38707040aab841435e9e185d682e001515e: chore(deps): upgrade aws-sdk-go-v2 and smithy-go (@roehrijn)
- ce800f9fbf83f70d84e1ccfab099e19c4f453c6f: chore(e2e): re-pin e2e-framework to main (@roehrijn)
- f01d9d0515592666bee8d24aed41929f41338a77: chore(e2e): run ginkgo with output-interceptor-mode none (#8476) (@roehrijn)
- 1ff72371db839dd2cfde577666b720f905ff1ead: chore(go.mod): bump admin-apis (@seanschneeweiss)
- a8a9a2bdbe2e1932b31fa9302a23b9ef58bec248: chore(observability): bump gateway images to 0.2.0 (#8926) (@seanschneeweiss)
- eecd33db290b62b27312e0ebb0d94cd31ad911d0: chore(observability): bump gateway images to 0.2.1 (@seanschneeweiss)
- 653ad020ac995ba7b78cc7e233dbe30a14ffa0c5: chore(observability): create datasources for enabled clusters only (#7717) (@seanschneeweiss)
- 221c9ba44bc54c96586d3f6adca81ff3a9c5acde: chore(observability): remove unused node-exporter, kube-state-metrics (#7532) (@seanschneeweiss)
- da5e2ea4be714b97fbfbd92be25af2fe79c41791: chore(observability): request, limits for collector, grafana, prometheus (#7617) (@seanschneeweiss)
- 395054fa78860a70b10e51ac9b6c57b2df70112b: chore(renovate): sync backport base branches to active releases (#7560) (@loft-bot)
- 5eaf16f996a6a1fa08db9801a4b92d9e9e9f553b: chore(renovate): sync backport base branches to active releases (#7881) (@loft-bot)
- b46d69ec44b98fbe9d8bca36f953fdaf9ea995e8: chore(renovate): sync backport base branches to active releases (#8270) (@loft-bot)
- d039382935f4760a4dccc30f32b1b4a527fba473: chore(renovate): sync backport base branches to active releases (#9083) (@loft-bot)
- 7cf5f1e2282903e44f6831d6deaf6c26e88fe44b: chore(security): exclude vendor/ from secret scanning (#7961) (@Piotr1215)
- 1a94950241bc51f28e7f422cbe19aeb9fedcede5: chore(stacks): bump certified stacks to v1.1.0 (@janekbaraniewski)
- 0f2d256a7707e7f82b25482d0530e35b25b5edd0: chore(ui): add focused unit and e2e coverage (@andyluak)
- 0f6539d4d8eecedd943e8c9fe61e794a3894a9f1: chore(ui): enforce test boundaries and remove redundant tests (@andyluak)
- 22bd1dffce4a859c14771c122a856b4e7bf8dbb3: chore(ui): regenerate the client for the csi values doc (@rlmcpherson)
- a3c191fa671fd7bc8ce9db8ab2de22c664086c1f: chore(ui): regenerate the client for the stacked storage fields (@rlmcpherson)
- 5e498dcd7014f4ede6f942e408e9d433d9707715: chore(ui): regenerate the client for the storage kinds (@rlmcpherson)
- de82d07fedce6fa63b8932406ba8ec5a4e8c6641: chore(ui): scope vcluster hooks to suites (@andyluak)
- 6853c483f77db2655d14f49a4f2155b590d38df4: chore: Add UI prerequisites to README.md (@PRTTMPRPHT)
- 599fd5affb23eb8531d81f5573790a1b0a993f07: chore: Remove experimental feature gating for multi tenancy (@PRTTMPRPHT)
- 78522dee2586250f84d3b36a95629159b8558062: chore: Remove obsolete cast in UserTenancy query (@PRTTMPRPHT)
- b7896596f39c5757b2c436d7e079ee1e29a8db9f: chore: Remove some unused files (@PRTTMPRPHT)
- 96f29a27e61a5cad99bd5ac5ef02c2ee2683c56d: chore: Seal the experimental features for prod localhost sessions (@PRTTMPRPHT)
- f293a4db787b0d4c862181e8009f4bf0d6b72cde: chore: Upgrade to TypeScript 7 (@PRTTMPRPHT)
- afdebd2b05f1206f6049d0f8cac7df10eb01831a: chore: Upgrade to vite 7 (@PRTTMPRPHT)
- 06dd26d59341878434ebc1c1feb8c106fa23b9b4: chore: Upgrade vitest (@PRTTMPRPHT)
- 4273d341f2c2f0b7b4130a2b73ca65dc4fce66e9: chore: bump certified Run:ai stack vcluster chart version to 0.37.0 (Claude Sonnet 5 noreply@anthropic.com)
- 1bb3141f491b61de61b939b22e62e18dd2d2f106: chore: bump default vcluster version to 0.36.1 (Claude Sonnet 5 noreply@anthropic.com)
- 738c7bf46d7988132326b2e2f08f26242ebfabda: chore: bump vcluster version (#8305) (@jjaferson)
- 6c33bad09c7ff4c2e12aa6d56dd3e6023e82b14c: chore: bump vcluster version to 0.38.0-alpha.3 (#8706) (@r0bnet)
- b174f58b506d4c94932b364bc41f7c3aa0e1d094: chore: bump vcluster version to 0.38.0-alpha.4 (@roehrijn)
- 2163c7d50077099a70c9ea49e43832dbdcded18d: chore: bump vcluster version to 0.38.0-rc.1 (@claude)
- 9aa8d0e27fa0ddef972ffc49daa92422c3636268: chore: bump vcluster version to 0.38.0-rc.2 (@claude)
- d883732ae56fa79af613b6147c5f3b9401d8f905: chore: fix review comments (@r0bnet)
- 91994885c4a82b91fab49f090344bc95f1fc79ee: chore: replace tech-leads with staff-engs in codeowners (#7786) (@janekbaraniewski)
- a015ade8e20c974dcfe891c8f7a7860bb51982c9: chore: update DefaultVClusterVersion to 0.37.0-alpha.1 (#7762) (@deniseschannon)
- 449bb2b6370cefc80f28e242812bf04344d936be: chore: update certified stacks to v2.0.0 (@zerbitx)
- 10bd633a8125570c9ffc5378a26a2cb764fa9327: chore: use "cluster" in default template descriptions (@andyluak)
- fe4e1e9ffd0c56052aee661e71e15a0850d66616: ci(backport): bump backport pin and wire linear-token (#7376) (@Piotr1215)
- c63a705179bc215f8e08564a49b98661b8e62c92: ci(backport): move the shared backport workflow pin to 737c3f6 (#9185) (@vcauesantos)
- 1fa8b44e21acc6b1547ff951db5637e603ea7fb8: ci(backport): schedule link sweep (#8123) (@Piotr1215)
- 8bcc971736a660b84ddd42185ccca076be55737f: ci(backport): turn on the import fixer for backports (#9186) (@vcauesantos)
- d9033e921a9e2b83cee3cfcf5fbcafad2c946b7b: ci(code-freeze): authenticate freeze/unfreeze with org admin token (#7564) (@Piotr1215)
- 88d47329e126e539a521496546b65cd7dc057540: ci(conflict-check): follow the conflict-check/v1 tag instead of a pinned sha (#8939) (@vcauesantos)
- 970104060264e67982aaf644c33971c3fd10c3b7: ci(cve-scan): move the daily scan to the reusable workflow (#8957) (@vcauesantos)
- ab295d5674c14671b61539e4918117e26dc2d233: ci(cve-scan): upload pre-release scan results to the release tag (#8978) (@vcauesantos)
- 7977189bef5f7c04d6afee3ef49a894c7e41155d: ci(e2e): annotate the docker/login-action pin with its version (@roehrijn)
- 4209c9c1a5797a9be593c57cc2972c20500352f9: ci(e2e): certify pr ginkgo suite on release tags (#7290) (@sowmyav27)
- 1ba7a28dc2b36a860904664142e61e24e7798647: ci(e2e): give /test-e2e checks their own group with the ci app (#8576) (@vcauesantos)
- b266aaed1129ca0c17462c90192d2dc31f5d699b: ci(e2e): install playwright outside the ui test timeout (#8962) (@johannesfrey)
- 41ead56be91ad7945fd78ed4609b41636f3ac3c4: ci(e2e): let /test-e2e run hyperscaler suites, title command runs, refresh stale text (#8519) (@vcauesantos)
- dc2bda068dbd07158d8492db209dd21b9e07441a: ci(e2e): let a dispatched run use the license server like the nightly (#9277) (@anvesh-loft)
- fd8b3b3329a6d495fedf97693f1c26e03c65b099: ci(e2e): let the AWS session outlive the 120m ginkgo timeout (#8407) (@sowmyav27)
- 90d09f222c8c3ba1d39c3fcc442f0340262963f6: ci(e2e): reply to each /test-e2e command with its runs (#9282) (@vcauesantos)
- 0b0bed585a56fec7da1cbb5e45bca36ae8ba4a80: ci(e2e): show the dispatch error instead of checking a contract file (#8518) (@vcauesantos)
- 07fa6087cde2b0c432a3244dc1d5f18f5a8bed76: ci(flows): clean up aws after a cancel, stamp the branch tag, upload reports, dropdown inputs (#9133) (@adriankabala)
- cfd8c14cf6640c3e9d75c5688d7fdee78409a7ae: ci(flows): sweep only the fixture's regions the account has enabled (#9243) (@adriankabala)
- 087b78502faaee7f9678a159010075990cd80daf: ci(release): harden the linear sync workflow (#8678) (@sydorovdmytro)
- 5b59d278bf9b3630f9fd73ba6e8dbd828e550c5d: ci(release): let goreleaser generate the changelog (#8677) (@sydorovdmytro)
- 20e9ce3e8a9e2a4495dc768a5e3c3d9e4b53ce4e: ci(release): move line tags after every release, keep latest manual (#8686) (@sydorovdmytro)
- 3e9a37a2558ff30831b42003cd9ad9f2fe381647: ci(release): notify repositories only from the release builder (#8422) (@sydorovdmytro)
- 766920fb52b1dae747d68063d9e29b646cea1ff3: ci(release): run linear sync from a reusable workflow (#8668) (@sydorovdmytro)
- da71a29bb62b343e900e81f983d319372d6af748: ci(release): take the source branch from cut-release instead of guessing it (#8465) (@sydorovdmytro)
- ed9bd9e607d3fd94c17cec8c9f35f572ae5894cc: ci(unit-tests): cut the unit test job from 33 to 10 minutes (#8499) (@roehrijn)
- 325490a5a7d79a3d9d9c84bbeed48f2d00c36f9d: ci: accept repository_dispatch for platform pre-release checks (#7789) (@anvesh-loft)
- 68f13e16d660b6f111a8556fc4ae37dbc00ba47c: ci: add the flake autopilot workflow (#8980) (@anvesh-loft)
- 8b845f2d72b49dda2060b668001f306079d7412f: ci: authenticate private go modules with a credential helper (#8801) (@Piotr1215)
- 26370a0d66f0855ec45c00112ecadb963593faa9: ci: bound resolved platform base below the upgrade target (#7571) (@anvesh-loft)
- 4fd03403d19ab89ce7c6accd66440bd63b45dd45: ci: bump actionlint reusable workflow pin (#7899) (@sydorovdmytro)
- ad28a183580de700a9189deb908980fa1ea36b2e: ci: bump e2e upgrade base and auto-track it (#7419) (@adriankabala)
- 34f77cc02315e6123c7b077ece2cee01af4f1b72: ci: convert release pipeline to dispatcher + tag-dispatched validators (#7829) (@sydorovdmytro)
- c2db078a59c1959f4b5bb60700309e44c508735c: ci: fix tilde expansion breaking base resolver for pre-release targets (#7583) (@anvesh-loft)
- 706e55f40d249656db63a3727f64c6c45ff6d86a: ci: grant checks and statuses read to the auto-approve caller (#7675) (@sydorovdmytro)
- 564e1d8a45e682b8a528ba40618917f3a9b722dd: ci: grant pull-requests: write to trigger_e2e_ginkgo caller (#7572) (@sowmyav27)
- 9cf0078a879b2f5af653daddb8677781ba3d80ae: ci: install helm-unittest v1.2.1 for helm 4 (#9141) (@seanschneeweiss)
- aa9b2f3b2c052ef827fdbc15e20d7fdd380ce74e: ci: mirror container cve scans into platform workflows (#8256) (@vcauesantos)
- ff78b1cd0bea0a23b40004068bcea5aefc7b6331: ci: point free-disk-space at its new owner lumbroso-commons (#9159) (@Piotr1215)
- 0147ea6cb56d7dbb19cfe0db7466c4893757dffd: ci: post one status report per machine and vm flows run (#8717) (@adriankabala)
- 075d2c2c45e7bec190767894d47c2f7565caad51: ci: record host metrics in the e2e, unit test and lint jobs (#9085) (@roehrijn)
- b6acf1de6548389b3a35b6d8add2c06b32b687b4: ci: remove dev-vcluster slack notifications (#7745) (@sydorovdmytro)
- d11a92bdf3c5961e725b49b5899881524f64ace8: ci: remove repository_dispatch trigger from license-staging workflow (#7602) (@Piotr1215)
- 6ce6beb1df64dd04f0f0436a3f50e19796a04167: ci: rerun only failed e2e specs in the PR and nightly suites (#7775) (@adriankabala)
- 914d2fc20e1e9015f8dbdbb8e922bb78d320a31d: ci: route cve scan alerts to #ci-security-scans (#8380) (@vcauesantos)
- 26eb4d1a7cde506cffdff77e404d9207836b2883: ci: run Auto Nodes e2e on Azure and GCP with the NetworkEnvironment contract (#8766) (@jjaferson)
- f7e8f290f0ba768fd7c5713cd11f12a59730d0b4: ci: run the metal3 machine flow suites twice a week on the platform built from main (#8533) (@adriankabala)
- 991c8fed14c35b631974089a4700c9c2ce3828b3: ci: run the reserved machines checks from the release pipeline (#8505) (@adriankabala)
- df3f7e528214309908c03dba9477488887a94e56: ci: stop cve scans posting findings to slack (#9059) (@vcauesantos)
- 5003e2365127b0ae54cc24a543060589aeb291cd: ci: use per-base pr branch for go-licenses report (#7389) (@Piotr1215)
- 60d48dabce22cbaf55ba6afe190df6e94719a892: docs(connectors): deprecate the list-only DatabaseConnector resource (#8269) (@nprokopic)
- a2011ffc74189175d3f5557914816b9f9ef0d753: docs(e2e): fix stale DeleteVPC comments after siteworker registers DeleteVPCV2 (@roehrijn)
- a05fc6c90f89dfb568e35835f4c32631451f486a: docs(e2e): run the machine and vm flows on changes to the flows, their fixtures and the machine code (#8843) (@adriankabala)
- e62decb4257cb5bd86d68b4ff73c40340522bdda: docs(e2e): say how to write a keyed label in a test-e2e filter (#8451) (@r0bnet)
- adb678cbdae662da5623ce63827aed1a640e5b57: docs(e2e): trim verbose doc comments in diagnostics capture code (@roehrijn)
- 9ac536b66a38e9fadc7f2f4f6c00e6fdb4738b28: docs(e2e): use a real label in the /test-e2e template example (#8513) (@vcauesantos)
- d82d03ce7a58187e921ec505a91420788fddcfa3: docs(genericapiserver): drop a false claim about the collection delete's client (#8158) (@lizardruss)
- 9aa2709b901532640af875ea93dde341410e7aa3: docs(github): document /vcluster-review in the pr template (#8070) (@Piotr1215)
- 570632af7171f2ac01ed6945f95cfd7c7da0fa9a: docs(release): say a re-run replaces the summary in place (#8689) (@Piotr1215)
- 31946648d3f550a41726ea7c5942e96625d75ccd: docs(release): say the ai summary compares stable with stable (#8809) (@Piotr1215)
- 8afd470fa543a1718042f05aa791d03e3a6f3fee: docs(storage): a tenant reads no storage profile (@rlmcpherson)
- c5c72cec6007f75a544ccf6ab52546af694cfc75: docs(storage): add the held account and kept attach to the api contract (@rlmcpherson)
- 33c04330e15c99493a2e219d4d6f13357ff6d36d: docs(storage): add the import rule and held grow to the api contract (@rlmcpherson)
- a2bf7a7f56cb947e8f791e7cd7ae54b62973fb59: docs(storage): an adopted volume reads as provisioned to a tenant (@rlmcpherson)
- 06c04f0e3fd056da1379990536c2b51f89d00c3b: docs(storage): an agent gets the tenant view (@rlmcpherson)
- 3087dd07035cb2444cff7f0f98d878bfef607a4d: docs(storage): api contract reference (@rlmcpherson)
- dc6211bc845ec9787f88ee3883c1988f4d229d01: docs(storage): credit connectorstatus with publishing connected (@rlmcpherson)
- 0bbabc547f1f2d509e7c47c0e3b109391fba5e6c: docs(storage): follow round-nine and bugbot fixes in the api contract (@rlmcpherson)
- cd0334c143e3426521394e766fba57c5c74ddb6d: docs(storage): follow the actor-judged create refusal in the api contract (@rlmcpherson)
- 6e0931b2f24d329a034d685f6262d81c23b121b1: docs(storage): follow the attach holds and object cooldown in the api (@rlmcpherson)
- 7c21d518d2461c9d0f5bc3c3b0c5832d207d96d7: docs(storage): follow the bucket adoption and delete rules in the api (@rlmcpherson)
- 1f198961926c3d2907889211862cf621729355e4: docs(storage): follow the bucket-list s3 policy in the api contract (@rlmcpherson)
- 019dde225ff42683b6b9f204c744bc502b441853: docs(storage): follow the import refusal and copied outage rules (@rlmcpherson)
- f167fddef8cee3bd0c5f78c56a2507fceca5122d: docs(storage): follow the import, volume wait and variables fixes (@rlmcpherson)
- dd9fe524a55f0fd6da2c413b8a3db604a9d59ee6: docs(storage): follow the mount option, kms and project create fixes (@rlmcpherson)
- 2231309bc0d0f453235860c8d6302c47fabb047f: docs(storage): follow the object-only s3 policy in the api contract (@rlmcpherson)
- 007fca6073babd58b1511b638bf3a7955e5edca9: docs(storage): follow the review fixes in the api contract (@rlmcpherson)
- a6040952055a74bd7bc4875356600b0f6c9baf39: docs(storage): follow the round-eight review fixes in the api contract (@rlmcpherson)
- 238567d3d89f58988d308faf244f6595167d9998: docs(storage): follow the round-five review fixes in the api contract (@rlmcpherson)
- 380a2cbd2eb3180b5b2b8ab5f1b95b1671a20bcc: docs(storage): follow the round-four review fixes in the api contract (@rlmcpherson)
- 9c004c3d103fe3b70e7669f539dfca72988eb9f0: docs(storage): follow the round-seven review fixes in the api contract (@rlmcpherson)
- 5d6dd36d409f82203eca041ce5a99b63e84f13f0: docs(storage): follow the round-six review fixes in the api contract (@rlmcpherson)
- 3f9d616e38f3fe041eef4e6d92274c0f8d22368b: docs(storage): follow the round-three review fixes in the api contract (@rlmcpherson)
- 3964477d884dd5a260c1b04ace49ae18fb001fa7: docs(storage): follow the round-two review fixes in the api contract (@rlmcpherson)
- aa0757776feb8759c690ed6131dc7cfcff566aa6: docs(storage): follow the s3 revoke in the kept bucket record (@rlmcpherson)
- cdde8c46944aff7cfd98ef8a542050ce7c24ba69: docs(storage): follow the s3 sibling and mint rules in the api (@rlmcpherson)
- 59ee168ee45374fec30f36851be1a15ba6476424: docs(storage): follow the synced outage gate and delete check in the api (@rlmcpherson)
- 16e9f66f21bd912abea4ae09861d65e7df69a3ae: docs(storage): follow the withdrawn grant and shared policy in the api (@rlmcpherson)
- a30dc1d8c4e3de92a1397ddc4b737409efe108e8: docs(storage): give a filesystem-level example for weka mount options (@rlmcpherson)
- 743b1c0b47ecb8a6840b4cf28b2a4719a9f2006c: docs(storage): keep error statuses out of unreachableerror (@rlmcpherson)
- d6d39231815abaedbd025008f43c2ca6a9e40854: docs(storage): keep the platform mount step in the template example (@rlmcpherson)
- 64a223a2843daf42ef964cb0505cb4f9708e9c5f: docs(storage): list the storageaccounts package in the readme (@rlmcpherson)
- 5e9fb5367591b3afa8c861ec313058d52f21d4da: docs(storage): match the readme to the mount condition and import (@rlmcpherson)
- ef032150dc4029ff196324526df88538f68fa6d5: docs(storage): name byName among the connector grants in the api (@rlmcpherson)
- 04170d8431eb8ab1d663bd8cf9c29589c110e97a: docs(storage): name every provider that takes client options on a claim (@rlmcpherson)
- eff4bb721104bb08ba0ac9b8c24d321101b3e625: docs(storage): object access in the api reference (@rlmcpherson)
- f9d5b360229d185cf771a4fa470c07f48a341ea2: docs(storage): point client-mode options at the node type only (@rlmcpherson)
- b0bff451de9c21d2eb355c70dfd79c1ae93e91d9: docs(storage): say a plugin may hold back create-only keys itself (@rlmcpherson)
- 0b85398c4324b8b635b5016f1d1792a0f06e2358: docs(storage): say a profile that drops s3 revokes the bucket (@rlmcpherson)
- ddfc570c8162710e6c16a32ea0a4da2a319e415d: docs(storage): say a stray vast quota is not named on tenant delete (@rlmcpherson)
- d86ecdf706e4aa262957baa01202c78af2a0ab33: docs(storage): say callers the platform cannot place get the tenant view (@rlmcpherson)
- fa5b3d4b832d53bee4f1ceb63ff3d15edd9908ab: docs(storage): say csi values cannot turn filesystem expansion on (@rlmcpherson)
- f135173ed66755926ab35895c3ebb6a87d1695a4: docs(storage): say plainly what the storage account reports about the kms (@rlmcpherson)
- 913a815971394d1383758799900b720141a05285: docs(storage): say spec.import may change until status records (@rlmcpherson)
- a7b4610e87b816cc828648418e0c95b93615b786: docs(storage): say that vast views trust the network (@rlmcpherson)
- 5379d804f3718bedbb79a71d9fa0b17073a88879: docs(storage): say the bucket name carries the connector prefix (@rlmcpherson)
- 746a070effad5e70ca2691bf642670d69745461f: docs(storage): say the credentials secret outlives a retained tenant (@rlmcpherson)
- b6c6a3f84280ca43e907112d28db606ea7cebce0: docs(storage): say the revealed s3 key is the tenant's, not the storage's (@rlmcpherson)
- 81a2d23c1899d34fb31b91423dff070d35be275e: docs(storage): say the vast trash check gates deletes too (@rlmcpherson)
- c7f21242a1af44380f5715e9ba75764cc47d9238: docs(storage): say what a false synced condition names (@rlmcpherson)
- bfcb320a8577c52c4174393fdb11485b06065ccb: docs(storage): say what a node claim shows for a withdrawn grant (@rlmcpherson)
- 12923d79a581fca564f3b2a5526b56c95de7fc15: docs(storage): say what a withdrawn grant does to attachments and mounts (@rlmcpherson)
- 9f226900e747eff6aef88d8bccdabcac02c381c0: docs(storage): say what ends the connector cooldown (@rlmcpherson)
- 1212bf7a0a65d99c5eabd85bd87dcd9e679b0e20: docs(storage): say when a grant change reaches a storage (@rlmcpherson)
- 47dd9b465cac101f4eb6c98d0fc0e0995e9ac698: docs(storage): say when the storage attached condition stays false (@rlmcpherson)
- fbc10d65ed7350dcf4902f1a95d93f0310a8ea4d: docs(storage): say where client-mode options live and how host prep orders (@rlmcpherson)
- 55f09b74825e9d9cadcc6e093ec54f7ea9ddb1db: docs(storage): say which attach reasons name the connector and why (@rlmcpherson)
- a6f5d57e6797db58e763126e4f15852a6a62b87a: docs(storage): say which connector settings a cluster status shows a tenant (@rlmcpherson)
- cc34dd824bdfa0c3b373e6666f12b8ec43533aba: docs(storage): say why a failed storage account keeps synced unknown (@rlmcpherson)
- db3f682271e443de69f2859e4e4b61f2f5061dbb: docs(storage): say why the mount report drops a bad mount step value (@rlmcpherson)
- cc489ba0b1540daaf85e929ca7159a10c05e7329: docs(storage): say why the resolver skips grants without storage (@rlmcpherson)
- 1d7a24cae2da941467552cdeeaebe8fa178a71db: docs(storage): set the storage mounts on the node claim in the example (@rlmcpherson)
- 5307cd55e7bcebccc56ff2bf3876d22bfae1ca4e: docs(storage): two-hyphen storage account and credentials secret names (@rlmcpherson)
- c51cdc5be23fa539c7e81fca789898b6fd8015d7: docs(storage): ui development notes in the readme (@rlmcpherson)
- 1ffe30d8217bce3f60f30f5b24be0b0068846c4c: docs(storage): use a documentation address in the connector example (@rlmcpherson)
- 099138aedba4592ca5f9546ab316a159ef8d6f04: docs(storage): verify the vms certificate in the vast example (@rlmcpherson)
- dfd5adbde84b47463c71d60817185c3d451ac80e: docs(tenancy): add the tenancy-client skill (#8427) (@lizardruss)
- bb94349b5d44495734fa73fca18e78cdcc7b4ca2: docs(tenancy): place the credentials row with its kind (@rlmcpherson)
- ca8bfac14277c8e4e1fb7d48f45361e336adf962: docs(tenant): correct why the user-limit check is create-only (@johannesfrey)
- d9777982e7a34149aeed1b73218092aa083d3c1a: engplat-1060 PR 8594 8597 follow ups (#9022) (@flomedja)
- 31c899d32c66f736c5af6ebdab12cc8aeceaa7da: engplat-1060 stack pr review follow up comments fix (#9015) (@flomedja)
- d7c48043a8277a377f0c44a378f500f1a0748b31: feat(accessauth): a wildcard in an access rule means the resource's own scope (#8899) (@nprokopic)
- e5fb684636928fcbc8c01bba0336ecdfe5cf9e22: feat(api): give osimage an upload status (@r0bnet)
- 81702e3d7337ccdcfe8bf61370229626c63e6d13: feat(api): observability integration, connector, endpoint secret (#7633) (@seanschneeweiss)
- 9989f1d9a171703568ad563ce575d0ab82e9140f: feat(apiserver): let a kind refuse a write before the stored object is read (@rlmcpherson)
- cee75b600548497ab5d2529e5c52c934316dd11f: feat(apiserver): reject observability config the platform cannot serve (#7966) (@johannesfrey)
- 772f7f5560178cb1e199e29447a0db2577061972: feat(apiserver): serve the observability connector credential endpoint (#7964) (@johannesfrey)
- ee3d77db4b7c641290a8230f20ff35d21c5bd9f5: feat(argocd): let users set labels on registered clusters (#8302) (@flomedja)
- cdaf9bc4ca805b021158ced13395791c79137e9d: feat(audit): expose recorded tenant in listed events (@zerbitx)
- 4f9a240f6975c782d26c0d068b01b71d0f5b3600: feat(audit): record login and access key events (#8082) (@neogopher)
- 4fd5848e2c535acfd41ac8927d1cc428996c674f: feat(autoscaling): block deleting provision-for-vms instances with running VMs (#8312) (@cbalan)
- 618cf0758de055d750d1fca62711659b10b76eeb: feat(autoscaling): cap vms per node type on provision-for-vms machines (@cbalan)
- d3d5f449fdf65b3334f7e1cc59581e4ab6529543: feat(autoscaling): enable nico phone home by default (@roehrijn)
- 886ede1c38c0367ca03887f9c2b7f272bbd730f5: feat(autoscaling): give each tenant its own namespace for kubevirt VMs (#8540) (@cbalan)
- 26895ea2c4c75f318a16f69134247de4cf18be7a: feat(autoscaling): join provision-for-vms machines to the kubevirt cluster (#8272) (@cbalan)
- c41900d8553081bf1d44383be6476a8679483a91: feat(autoscaling): let operators merge claim cloud-init, reference remote network environments (#9234) (@FabianKramm)
- 31b24568cbbd2f9708c6db4b39cb2c66f117f722: feat(autoscaling): move accepted node types and caps into the claim spec (#8440) (@cbalan)
- 7648c552bd73afb9c4982ce8a00272bc8d61a19d: feat(autoscaling): place kubevirt VMs by the machine allocation policy (#8503) (@cbalan)
- fcffc24b52aeefef85dbd9407cbd73901a9a20e1: feat(autoscaling): reserve machines and hand parked ones over in NICo and metal3 selection (#9118) (@cbalan)
- 1b8b6c6bb80038e5561282e20c063a9a33defecf: feat(backup): include platform identity secrets and VCI serviceUID; keep the UI backup/restore path unchanged (#8710) (@dwelc)
- de594d360e869a89e9881b9343d43f0f3639a63c: feat(ci): accept --repeat and --runs in /test-e2e (#8718) (@r0bnet)
- d27997f4087aa8575a00b5b4f2876629af80d177: feat(ci): auto-merge renovate branch sync prs (#7791) (@Piotr1215)
- e57fd71b9b81e8c01b5fcbc233f930ae0b0d9c1f: feat(ci): select e2e labels when creating prs (#7704) (@adriankabala)
- e155147de6ff8a91744fc5008060a47458027865: feat(connectors): add the Connector management API type (#8262) (@nprokopic)
- 21af3b9de1bb316e5d66376d876bad9cd66d6163: feat(connectors): add the argocd connector type (#8264) (@nprokopic)
- 58fc76b69f8934691a3cc2649cb9bca13d3756f3: feat(connectors): add the netbox connector type (#8268) (@nprokopic)
- 88777115a549cb2c122fce996d9340f705071a44: feat(connectors): add the observability connector type (#8265) (@nprokopic)
- c5e40f54e976e42c7021c7f48a6de78344e9662a: feat(connectors): add the os-image-store connector type (@janekbaraniewski)
- 478304bbd8c90a9336838361ce653d4053b8e109: feat(connectors): implement the Connector REST verbs for the shared-database type (#8263) (@nprokopic)
- 1971de3e854813b2d6243135683e7891f67d1c9c: feat(connectors): refuse connectors a tenant may not use at write time (#8498) (@johannesfrey)
- c42cb373f55582c9ea7168249f7f5f7af130130e: feat(defaults)!: stop shipping the bundled apps (@flomedja)
- 3382ec07450c97bdf2ab45d10c1a3dd089a13b04: feat(dev): seed a local pod-backed node provider (@janekbaraniewski)
- ad34b948086e1d4f7be0c0e345790bf0d68df7b3: feat(e2e): add the /test-e2e comment command (#8064) (@vcauesantos)
- d33ca9850e128d7281b5bf9b53266bf957486661: feat(e2e): require every ginkgo spec to carry a pr or nightly run-tier label (#8294) (@roehrijn)
- 12b1c8c7edb4a234a88b25d4893c1f79df85a4f5: feat(kube-ovn): kube-ovn CCM UI (#7827) (@squ94wk)
- 2575508142b412e5f1de74c3e4fd51a3f3415214: feat(license): count tenants against a tenant limit (@johannesfrey)
- 81a6aba287281f3e87077f491adc126c9c309287: feat(logging): enable file logging for platform (#7781) (@neogopher)
- 8908bdde0f769b64d7ca52f47c21ce7095a14e9e: feat(machines): add the pre-ingestion validation tier and let only validated machines be assigned or pinned (#9115) (@cbalan)
- 76af3bdf27d2cdce899ef8bf2196eb9658a84b14: feat(machines): join unvalidated machines to the validation cluster (#9119) (@cbalan)
- f04e8d4a01e9597d623d397e7e8502a535883509: feat(metal3): add machines.selector and deprecate bareMetalHosts.selector (#8638) (@roehrijn)
- 4e1b529f8782c9694efcb06f73c2fb3f99e67d46: feat(metal3): skip tls verification for os image downloads by default (#8553) (@r0bnet)
- 937d9cee8d364242d747dcefd8ee70e2fe5bdd10: feat(metal3): sync BareMetalHost labels to machines and select on them (#8640) (@roehrijn)
- 4d190f6c5b0be90235ae1ef3880c68bd3bc4bb73: feat(metering): count non-NVIDIA accelerators in GPU usage (#7252) (@nprokopic)
- f4291401256ee547257f6cda5fccc4642e5635a7: feat(networkenvironment): offer and accept an environment only for its own node provider (#8322) (@rlmcpherson)
- 3ff67e36eba852cfeb22da48c6b2016bf3c1a8bc: feat(nico): grant a tenant account targeted instance creation (@mfranczy)
- 42ec18a0450683faa87fcd86ee451f8d375b8ce0: feat(nico): support flat networking for hosts without DPUs (@janekbaraniewski)
- ada39268f301e726b5dac1fe80a03e91ce5547ca: feat(nico): support platform tenant workloads (@janekbaraniewski)
- e345a2a35b0454af271c811916f604578d026858: feat(nodes): serve NodeProviders and NodeTypes through an allowlist (#8363) (@jjaferson)
- 1b6afdef310c96c80fb9628765e9ff000b35b182: feat(observability): read cluster collector credentials from the metrics-writer secret (#7987) (@johannesfrey)
- c3bc43d059c8da11058106f0c742d3c3bce47d4f: feat(observability): report unresolvable connectors on the instance (#7967) (@johannesfrey)
- 4f91caceae2a11eee9b6d7471d705c92b64e164f: feat(observability): resolve an instance's connector into a write gateway (#7963) (@johannesfrey)
- 4ff9d6271b8910ee68b2766b7f2b15eff38d8091: feat(observability): scrape tenant control plane backing store metrics (#7989) (@johannesfrey)
- db5edd81e5f28bb0b35eb0758bc1ece5b817f9d3: feat(observability): tenant logs and generic telemetry destinations (#8223) (@ronaldzhanje)
- 9c271031f569259d087ad6f96475033e22c7aa69: feat(osimage): add connectorRef, format and upload subresource types (@r0bnet)
- 75a3728dc171ea53e9563fba14d8604231f347b4: feat(osimage): add image store with pre-signed multipart uploads (@r0bnet)
- 5952cd7406a7769a5d038f1f542118b6d3a4d509: feat(osimage): add paging fields to the upload subresource types (@r0bnet)
- f6fc72a573f9f5a110c9ff8233e65266e3a9f584: feat(osimage): adopt the os-image-store connector (#8431) (@r0bnet)
- 2db0521bfba1c4d818f3c697f780474f5cc9c057: feat(osimage): boot node providers from an uploaded image (#8398) (@r0bnet)
- 4b09b15d8ee53758c238302b688640b2197d6ad9: feat(osimage): gate the store-backed path behind machine-management (#8371) (@r0bnet)
- 1d706defead2388e4343ebb663d1fb877f2847db: feat(osimage): page upload targets and report the next batch (@r0bnet)
- c9b6e1aa55cf741af863f376635160f376838a81: feat(osimage): reconcile the upload lifecycle (@r0bnet)
- c9274d1e2f1a69177fef655743fc306985ab6722: feat(osimage): register the upload subresource and audit it as sensitive (@r0bnet)
- 0fa0c70607ddd2bf2f38a71478f792d31b83a633: feat(osimage): serve osimages/finalize and assemble the object (@r0bnet)
- d72829aaf541329c965a1ecd7a9bbcd8297fdb05: feat(osimage): serve osimages/upload with pre-signed part targets (@r0bnet)
- 465846919531a4ed4cfb70c4565bd3a63bfc8dfb: feat(osimage): test the image store when its connector is saved (#8667) (@r0bnet)
- ab088d09a005435c004cd00d7d43a4a662d835be: feat(osimage): unauthenticated blob endpoint and delete cleanup (#8295) (@r0bnet)
- 134fe0262320963b59104fa4dd5bd38078ba8133: feat(pkg/accesskeys): create metrics-writer access key (#7634) (@seanschneeweiss)
- edecb067ab6ab3754ceee0ae24a7bbd8a47915ee: feat(project): a wildcard member of a tenant's project binds the tenant's membership group (#9198) (@nprokopic)
- 57f28d12394d2c97f1f6a90d070033172c3e163e: feat(release): post an ai summary of each release in its banner thread (#8657) (@Piotr1215)
- baace16bfc422d44ffdbe259dda5a17797da2902: feat(snapshot): drive standalone snapshots from the platform (#7715) (@mfranczy)
- 6d659c7d8f93dbaa32b8483bd625fa7605465742: feat(stack): add management API and validation for StackInstance and StackTemplate (#7716) (@flomedja)
- bd6bcfbdbfbe3c90d924c8bea244f6e6a83822b1: feat(stack): add storage api types for StackInstance and StackTemplate (#7713) (@flomedja)
- eb48f0f2221127c4e3cc11af40e151aa6bc89cb1: feat(stack): add task outputs for stack instances (#7727) (@flomedja)
- 750f1d0f3cf799ffd04c521b7c49215c73ca38bb: feat(stack): add the App task type for stack instances (#7783) (@flomedja)
- 0fa9f6cc8d7a7dabdd1a80739d0a65a6257442f7: feat(stack): add the stack controller for ArgoCD tasks (#7723) (@flomedja)
- 354368288959227432293169b33b96b9726a405c: feat(stack): deploy stacks from a virtual cluster's vcluster.yaml (#7869) (@flomedja)
- 8e4e58166298970e13f0d68e43d7b55de9472066: feat(stacks): Allow jsonPaths to be conditionally rendered. (#7975) (@zerbitx)
- 436285c7077e9f65bb452bb7568ebc24ce31017a: feat(stacks): embed run:ai manifests (#7917) (@zerbitx)
- 72ac19a386d569fe781553f54119bdf888756db8: feat(stacks): let certified stacks ship ArgoCD templates (#8389) (@flomedja)
- 64d4fb7ce9d4e29657c669430b68ef6f95d637d3: feat(storage): attach tenant storage statically with a mount-only identity (@rlmcpherson)
- 02699a7d3c19a1732d1de5610c761ea597bb6bf5: feat(storage): attach tenant storage to clusters through the csi driver (@rlmcpherson)
- dfc006420b151bd274014653d8f7a6cb60373aff: feat(storage): break the vendor tenant out as storageaccount (@rlmcpherson)
- 6858bea2a7ef2a3eae7de4eb30da0e70db48e9b6: feat(storage): count failed object steps by step (@rlmcpherson)
- f86d8c50d1d5925d1294744d108efa4a2e9ce19b: feat(storage): delete a vast storage's directory with it (@rlmcpherson)
- 97cc060c9a2d1318e266c1697eb98189675e068c: feat(storage): description on storage profiles (@rlmcpherson)
- 74a3a14a7a10f240b96ab4a27735952f1d5fe008: feat(storage): encrypted storages and kms status on weka (@rlmcpherson)
- 7020c77ead1d580f845e0d5b43c37e556295fd68: feat(storage): expose resolved mounts as cloud-init template variables (@rlmcpherson)
- 36a92e5e3c04b8ec89ddf27c63b375a46be53248: feat(storage): fake weka and vast systems as a dev binary (@rlmcpherson)
- 7898f076d7e4ec9e4e572a500ab84f6d8e5f06a8: feat(storage): hide vendor details from tenant reads of tenant storage (@rlmcpherson)
- 06749017672f8007d4ead58b58ae79851091d2e0: feat(storage): object access on weka next to file access (@rlmcpherson)
- 497b2605390ed80dda929caa211b14a70102d683: feat(storage): publish whether a storage connector connects (@rlmcpherson)
- bbd7ad5f07d8d8e469e3ef10ab5c233dd7bdc025: feat(storage): report a failed machine mount on the node claim (@rlmcpherson)
- 0101e0711b6eddfc1e450a85702bd6683daedd18: feat(storage): request encryption at rest on vast (@rlmcpherson)
- 0960250c583afd0086f28c92bb61fea18ccb1df2: feat(storage): require the vast trash folder on the connector (@rlmcpherson)
- 9c1f39be1799f72daca1fab83a1f0be8870881c0: feat(storage): s3 credentials in the machine mount step (@rlmcpherson)
- 5ca50e71c4e35137c1a3eb3f24d994f72858c867: feat(storage): take weka client-mode mount options from the node type (@rlmcpherson)
- 9e00e18c690ba64f511d5180945a6c8e1eabef4a: feat(storage): tell an unreachable storage system from a refusal (@rlmcpherson)
- 9788e64303f8dfc7345ac50679ee6d7bfe9dd12a: feat(storage): tenant storage kinds, weka provider and controller (@rlmcpherson)
- 10b2d39e496f717ce7216f89c2a461a04b790d20: feat(storage): vast provider plugin with an in-memory vast for tests (@rlmcpherson)
- 6e4f0183132f2b04d22ebd01e01db0556d84e058: feat(tenancy): a disabled capability withholds the kind outright (#8337) (@lizardruss)
- c889e4965d9e249ecd17030ed398d759c6e7bba0: feat(tenancy): drop the platform reservation and the platform-consumer identity (#8609) (@lizardruss)
- 9646fd0b842d737dc327b260b787e589f33787fa: feat(tenancy): give every kind the authorizer reads a considered rule (#8457) (@lizardruss)
- c13befdf44fc1ed5a2128c66414b43f6de089a4e: feat(tenancy): give the platform a tenant to consume as, and scope the providers (#8241) (@lizardruss)
- eef318091961978205fb4216d5b64cd9f90dca94: feat(tenancy): grant connectors and control plane clusters by name (#8839) (@neogopher)
- 9f782fd2396b56c8e950ad8f26a1ef6eb79b875f: feat(tenancy): grant os images to a tenant by name (#8830) (@r0bnet)
- c66aacd559d50143a500f267446ea0aba365093f: feat(tenancy): keep impersonation inside the impersonator's tenant (#9012) (@seanschneeweiss)
- abcc2c444c45f9fbe76f02c192725c1697e269cd: feat(tenancy): let tenant admins impersonate users of their own tenant (#9044) (@seanschneeweiss)
- a205b33d6143c75b235284475cb8e8ff74f4f4d7: feat(tenancy): make importing externally deployed clusters configurable per tenant (#8902) (@johannesfrey)
- d7bdaf048a96c77b5b0a09788defed57f6c4ab01: feat(tenancy): refuse a tenant the template waiver and the restricted probe (#8825) (@lizardruss)
- 8e526ae4ac06bbdd4bf26761764f729c4f940140: feat(tenancy): scope every management write and subresource call to its owner before a REST runs (#8754) (@lizardruss)
- bd37d57098494ba3b2d28b9b7daefd5d70ad8332: feat(tenancy): share one instance with every tenant (#8338) (@lizardruss)
- f6d8760fd8c7e2c9788200cf480a221749d6992f: feat(tenancy): share role catalogs with every tenant (#8934) (@johannesfrey)
- e6829b7259c72282ff0f77e47e86e97044973e10: feat(tenant security): remove the inline vm-template claim property and its … (#9153) (@squ94wk)
- 17555d7cd24e06270b11a408fed4bb287c382dc6: feat(tenant): add tenants/config subresource for per-tenant configuration (#7681) (@lizardruss)
- ed651909d7bc66ac134eca9cd3c254320a6a3ec7: feat(tenant): add the tenant management resource (#7671) (@lizardruss)
- bc515967329d867f5506d3bab9e932415810bad6: feat(tenant): bootstrap admin user on tenant creation (#7876) (@seanschneeweiss)
- c56e3c957937568bc5599633b22880baa9753a7d: feat(tenant): bootstrap project on tenant creation (#7910) (@seanschneeweiss)
- 435792e54de9c7662d8fb016f42157186d03bbc2: feat(tenant): enforce the license tenant limit on creation (@johannesfrey)
- f4f50794b94b3da7798713bbff758daac98b496b: feat(tenant): enforce the license user limit on tenant creation (@johannesfrey)
- d5f6096a5f40a95fb6eea69103571fc13353b9d1: feat(tenant): pre-auth host resolution and host-uniqueness admission (#7770) (@lizardruss)
- 79b817e9e6d73cd5cfd03b6bb5f86dedae648502: feat(tenant): put a tenant admin's privilege on a per-tenant team (#8077) (@seanschneeweiss)
- c29f19722915623b26d495d1047a43b31c928c61: feat(tenant): report tenant membership on the self response (#7833) (@lizardruss)
- 928ac2f97634c134490eda27d7518a89730fd1dd: feat(tenant): require a tenant's prefix on the cluster-scoped names it owns (#8002) (@johannesfrey)
- 8902e102fe7a175b79661d3bd1d64ae84d43b4d1: feat(tenant): resolve group membership within a tenant (#8219) (@seanschneeweiss)
- 448c3883df91dc0c4a538cceb6e8e8a0a96be5f8: feat(tenant): resolve tenant from the authenticated identity (#7832) (@lizardruss)
- 06b9dbab065bb01ed6187a8cb70c10214821abb9: feat(tenant): scope tenant reads by capability (#7941) (@lizardruss)
- 2bbd637ba922062cb5ee993ae105b3475a3128d2: feat(tenant): serve per-tenant UI settings to authenticated tenant users (#7880) (@nprokopic)
- e079bdb6e6efabaabfcc4a77f2928aaa45aebd10: feat(tenant): serve sharedsecrets through the scoped client (#8068) (@lizardruss)
- f15326080b2dee60e1223daad8fbc7b520e94a57: feat(tenant): share connectors with a tenant by label (#8428) (@johannesfrey)
- 7df99324fd5426abc5e6d678d2f3db91f7e77ab0: feat(ui) - auto nodes information and next version gating (@andyluak)
- ebf7fde50db5755c4239e2a1716149064320e296: feat(ui) - experimental features (@andyluak)
- c11e6d8dc4eaacefcfc03aab84a26226494856af: feat(ui) - fix broken e2e tests (@andyluak)
- 1ba3b07db3f7b95ee374af14aea8b54ff51bef05: feat(ui) - fix e2e test (@andyluak)
- d014bc38c3bf042d1428916540e3ee71deb7320c: feat(ui) - fix e2e tests (@andyluak)
- 45558823297ad364388084f2d3007f3a0eb92bd5: feat(ui) - fix stacks navigation (@andyluak)
- c7feaf73679527cbf791b222af72b1c327c33aaf: feat(ui) - graph fixes (@andyluak)
- acd34a37720242f0b8c25eef10a6eb22f40f4c69: feat(ui) - improve app templates deletion refereces to stacks (@andyluak)
- 1e1b2783c7f5af5388d094957502fd611a3d25f5: feat(ui) - initial (@andyluak)
- cf6ed6d1db0a10dcc5d2b9d9acac8e09253254d7: feat(ui) - keep 403 on the access-denied screen (@andyluak)
- abddf98ae3cc546f06bba5b93b13075a93ac9060: feat(ui) - loft bot review (@andyluak)
- 8f72c4d5f49152bda28271606795dbcec501c451: feat(ui) - network env section (@andyluak)
- 04f261964ce941adb00ddfea08fd9fbd601b590e: feat(ui) - node assigment component (@andyluak)
- a9c30dcf3b3db0329e4a28abdd5b57d93c49e2d5: feat(ui) - node profile table actions (@andyluak)
- 5aa6db6ef1d7655163a585372e31b5e38c4c9bcd: feat(ui) - os images required (@andyluak)
- 4f59a19ddc6995d1cabc9f223137fd50b01e6dc4: feat(ui) - pr review (@andyluak)
- 99056465a985327c214b24d4742193b95da46608: feat(ui) - pr review (@andyluak)
- 2c4baca0a512e59ce4213e2e2f0270677b2e4771: feat(ui) - pr review (@andyluak)
- 3eba8319d1b817ca22c7c1b000761c6041c88683: feat(ui) - pr review (@andyluak)
- 054ba17c155af1bf7402e0c75b8869a61417d53f: feat(ui) - pr review (@andyluak)
- 69f8ecd8523fc7816435c782a75473c9c91d9ee6: feat(ui) - pr review (@andyluak)
- 75616f249bf3c2a9d1916c93565fd1cc41b03b85: feat(ui) - pr review (@andyluak)
- d27d6ff3cca569b6a59218c848e8a53d69b133db: feat(ui) - pr review (@andyluak)
- f6a8cb5a636270eb45b3c2b769566edbab78a3b8: feat(ui) - pr review (@andyluak)
- 7d2a2a4e99a05f2c0bbaaea4faeebfc99ef56ddb: feat(ui) - pr review (@andyluak)
- deef505985d81fda8db31970d40bfa3ecc03042d: feat(ui) - pr review (@andyluak)
- ff84a4c6dcfaf15b4f3d04eb4bf4df9bedfc40b3: feat(ui) - pr review (@andyluak)
- c82c1c1b6bfff615c70228868bdc4ae90ed6cc76: feat(ui) - pr review (@andyluak)
- 976dae5d5187548255f14e37f18da0026500d932: feat(ui) - pr review (@andyluak)
- f6367351ed92e5f4f7cbeb54c0861fe93e2a1c50: feat(ui) - pr review (@andyluak)
- 0158bb55db029680435b8818af96406b2a0f8cec: feat(ui) - pr review (@andyluak)
- fb7f8bb34cbcf7b8774b00e19c0939522b7d19dd: feat(ui) - pr review (@andyluak)
- d70031170b190db0f4a41bcb4bbb22781bdb44d2: feat(ui) - pr review (@andyluak)
- 21b115f61401563be6f1204df6d3672d94447d93: feat(ui) - pr review (@andyluak)
- 60532d7c098907e67fd23a226d9fde23f1dd2de0: feat(ui) - pr review (@andyluak)
- 9b41609ba990afbd55fe00d9ab7cd5f0846c33f7: feat(ui) - pr review (@andyluak)
- 31e0b87a1090a50b16de5977fa785eebd5ba7e65: feat(ui) - pr review (@andyluak)
- 1bb7bdc2d458e43c1190a05e3470fdc8fcd989dc: feat(ui) - pr review (@andyluak)
- 4ba577937c3ffdf9dc2254d0a1b2bee2db89545b: feat(ui) - pr review (@andyluak)
- 6b74244cc294d922816defa6d401c893a71cc34a: feat(ui) - provision action and create instance (@andyluak)
- 06a6add9cde0d7e36348f19a9c2b7842c396f1db: feat(ui) - remove broken test (@andyluak)
- 06903da43bff47777ce483cd1553e68f12cadabd: feat(ui) - rename tenant clusters to cluster (@andyluak)
- 5ef9e4583edb475a8183dc459235415d79b27590: feat(ui) - replace node provider and network env with constants (@andyluak)
- bb9896793ac56157e6a50db88e7dd09f7772209a: feat(ui) - sidebar redesign (@andyluak)
- f93d62b44b776f2fd8a49c82ef8a605ab202eed8: feat(ui) - stacks ui e2e tests (@andyluak)
- 1786481405f6a8fb53d8d4b7033f8aedd8243b04: feat(ui) - tenancy graph qa changes (@andyluak)
- 4adf16c9dc84ae006ab90f9df2aa6c9d580ca222: feat(ui) - tenant graph view (@andyluak)
- 5a68bba8ec7e5a0314cb35e306d02b7118192883: feat(ui) - ui changes (@andyluak)
- 51a6a3774c8e3d7df9973b0bc51d32c61092364e: feat(ui) - unsaved changes dialog (@andyluak)
- c8121368f739b2279f869d5b312203cb6a6e46d7: feat(ui) - use constants for control plane custers (@andyluak)
- 670a530c3df38c9f9be7a4df23134e0500ce9c8f: feat(ui) refine stack P0 tests (@andyluak)
- 795d43a8bf15aff939951d1d1e06f16a2a229c86: feat(ui): UI: An unknown field under destination is reported as a destin (@andyluak)
- eb8d9a186f116c4971dc6b0eacb55201fa9094d5: feat(ui): UI: Tenant cluster Stacks tab has no pagination and sorts alph (@andyluak)
- bf18bcbda77d171f0cd832d5d1846ee99287497c: feat(ui): add NICo node provider UI (@janekbaraniewski)
- 7caab706669c1af0f666d9db8420c6c189167cfc: feat(ui): add NICo tenant opt-in and onboarding status to tenants (@andyluak)
- 20e0b40f6901934bb57aede298b93d0acf46d55a: feat(ui): add OS Storage connectors for image upload buckets (@andyluak)
- 5c56553083bf4434b30aab8a52fcfab604b3d112: feat(ui): add a YAML Definition view to the OS image store connector form (@andyluak)
- 1d83612fd1b6e41a2c7c28a63c55e8c1320aa3e2: feat(ui): add a reveal toggle to connector secret fields (@andyluak)
- a0cc3737c4de3151374e277da2b8c1a6d793c248: feat(ui): add a single node type switch to NICo and metal3 node types (@andyluak)
- a7f4442df5634c574fa0116e760f840584cd9065: feat(ui): add an observability connector section to the tenant cluster form (@andyluak)
- 84bd4509b37a2ce21eb2140e5515cc29ea69ebb9: feat(ui): add certified badge to os images (@andyluak)
- ae6a32d71a16f4f05bd7a9f22dae76269a93e28e: feat(ui): add labels section to OS image form (@andyluak)
- b4e3fb7a9ad4fdd66c29e9b9ae4852c9fdf9855f: feat(ui): add log search filtering, match highlights and result counter (@andyluak)
- a6d9a8d903486cd5892b5d02457d6982cc31ce54: feat(ui): add network environment selector (@andyluak)
- 582e4bcaac90624263b394a14a6acf37ff506d6f: feat(ui): add project quota unit pickers (@andyluak)
- 906464666fc7cb01964516d9bed1cc79cf413fa4: feat(ui): ask to keep or delete an OS image when its upload does not finish (@andyluak)
- 53bc6eed82c1202315c1a6e8add30e3c3f30bfb5: feat(ui): check the bucket CORS rule for OS Image Store connectors (@andyluak)
- 6d02ef7b1d84f1daa602f67dcbbae2a9ae579dec: feat(ui): configure and respect the tenant external cluster import setting (#8903) (@johannesfrey)
- 0ae8560bb1907bf56e778454a66a479587ca594b: feat(ui): configure automatic snapshots for standalone tenant clusters (#7737) (@mfranczy)
- 269721a7b0469626b9717753403659ffebe07ee7: feat(ui): duplicate stack templates (@andyluak)
- 61ebc33b81bb514b6e8193324bb9e8e72b23701a: feat(ui): edit nico nodetypes with instance type and machine selector (@roehrijn)
- a193fd0e9786a4053607f400cd2caad93fa8c18c: feat(ui): filter machines for batch assignment (#8172) (@andyluak)
- 8fd67a87fc86161f83147d9e848acfb665470757: feat(ui): gate space navigation on operator tenancy (@zerbitx)
- 976c2330c07451f9ade14a309b184be965fd2b46: feat(ui): group node provider types into bare metal and other providers (@andyluak)
- 7942d4034dc865b949a15d641acee9a95c2b1f4a: feat(ui): group project pickers by tenant (@andyluak)
- 40f85e8a9c02d5e6884d9352ebd5ffc25c0e87e9: feat(ui): group provisioning projects by tenant (@andyluak)
- 7e0fd3f15fbda7fd783da85d0becb5c6a9b79e97: feat(ui): group users by tenant in the Users table (@andyluak)
- 793dfc2cf2c274207e061d06fbd30f391a044520: feat(ui): hide space provisioning on space and template pages (@zerbitx)
- ebd66ce4b0ec68eeefb69d4657d0b6da8e09aad1: feat(ui): hide space settings in tenant project forms (@zerbitx)
- 7176755148d563a7e5bf58958c0d1e6a16ee51fd: feat(ui): impersonate a tenant from the Tenants page (@andyluak)
- 8216539fac7b3dfd9d46db74e31e6ba089574c7a: feat(ui): improve VPN table sorting, action label, and key creation (@andyluak)
- 5ac01bdc37263103464d8f82043715ed8b9b6c78: feat(ui): improve nodes section in tenant cluster creation (@andyluak)
- 4c981355b3f214908c5ee738d29d1ee2abf9ddf5: feat(ui): keep OS image file upload selectable without an image store (@andyluak)
- 2e87e0881202ff1f5b4ee23962a9569b66c3e040: feat(ui): move Network Attachments into Networking as a diagnostics tab (@andyluak)
- 7c43cfa11b76bed56a43ac291bf6c382421815d4: feat(ui): move tenants to platform navigation (@andyluak)
- 51291dd15b24920c49fc6d511a90a688845cb952: feat(ui): pr review (@andyluak)
- 81749173d014ff7a49f9305ff786128b3527b492: feat(ui): pr review (@andyluak)
- 512426eca2566919644fcd5ee7a731af3b184902: feat(ui): recognize Run:ai custom links by label and add its icon (@andyluak)
- 630fa583849ef2180645b1961b68e99db51f66fe: feat(ui): reshape the project instances table (@andyluak)
- 0d572c5715a400d104004984bda2480f47a7945c: feat(ui): show machine power status inline with the machine name (@andyluak)
- aebb0044cbb721a94197f8e41161f45456c9394d: feat(ui): show tenant names in user and team pickers (@andyluak)
- f760c528c8b8f92b58c060caa381a7c06dcefb05: feat(ui): show the Metal3 machine pool as radios and chips (@andyluak)
- e9d12f82d51f331e30d3899356db824170fbea5c: feat(ui): show the compute resource each instance actually uses (@andyluak)
- a5a400a87b51882e9491bd48e0e71aeea7f8c1ff: feat(ui): show the cube icon for instances in the sidebar (@andyluak)
- b80d4ce1291edb85bf0367f11159c8b528f4ae67: feat(ui): show the tenant that uses a machine in the Used by column (@andyluak)
- 120e3212bd42de9c93b5eba7472144131d55d3cd: feat(ui): stacks (@andyluak)
- 009640e693467ea3e73c8af2a023a7dae1da2a84: feat(ui): storage connectors, profiles, storage and cluster attach (alpha reference) (@rlmcpherson)
- 8ac325f2b52a8e181e87f7b528c8be9c74ec82f4: feat(ui): upload OS images to an image store or add them from a URL (@andyluak)
- 8ceb91dcfc090267dc1b4ce34c76b1d20e3aa782: feat(ui): warn when node profiles require a vCluster upgrade (@andyluak)
- 57c7e95fc7a46948edd29293eff5206213ebf91b: feat(vpn): show the serving platform pod in vpn diagnostics (#8620) (@matskiv)
- 672804cb0d5841f4bf9c499dd97168c38d721cae: feat: Add CIDR column and refactor network environments (@PRTTMPRPHT)
- 634a8eb7d48618ccada20e4fa7dc720ba3adb78f: feat: Add KubeVirt docs link (@PRTTMPRPHT)
- 7da6e6f8477e86aaa6e5bfbb98bee78f49f9d47e: feat: Add additional filters to bare metal hosts (@PRTTMPRPHT)
- ba243165287c3964a43e4e171046ec77638b4e21: feat: Add alert in template marketplace for operators viewing tenant projects (@PRTTMPRPHT)
- d99d3b04daca24d8fe1ca7804064140f4b510274: feat: Add basic views and interactions for multi tenancy (@PRTTMPRPHT)
- 8599ea820d237b0e763c53f2fbd5253ca94c15ee: feat: Add batch assignment of machines (@PRTTMPRPHT)
- d53e0ff4de88db056370be0020286ecaec2282ed: feat: Add capacity type selection to KubeVirt node types in the node provider form (@PRTTMPRPHT)
- 0b1aa6fdee0bd987838668a13c954640d3ba4bd3: feat: Add column for object access to tenant table (@PRTTMPRPHT)
- 86f0492de2298df883230d1366a637ad7c32e57b: feat: Add e2e tests for "provision for VMs" flow (@PRTTMPRPHT)
- af514896df6fbc8fae431835bc349e8fe4ba92af: feat: Add flow to provision machines for virtual machines (@PRTTMPRPHT)
- f78bebb3ca167d385e7f8445b34051dd0a559a78: feat: Add invite dialog for tenant admin (@PRTTMPRPHT)
- 3fff7ea0d96766d2e6ed6a4b0c4e25ffecc1cfdf: feat: Add loading spinner to pod logs when the pod is still starting (@PRTTMPRPHT)
- 45caeeb7518850283066d9ca87c54627baf6b52b: feat: Add machine overview visualization components (@PRTTMPRPHT)
- 6f45ae0be418bf89a9a872969402a710392321db: feat: Add missing docs link and selection empty state (@PRTTMPRPHT)
- 33957654b9b1db5bcfca989a9e2548651ac31216: feat: Add missing field for NICo OS images (@PRTTMPRPHT)
- 28414855f4a6839ff7f716f056f928db4787d80a: feat: Add missing parts of the provision for VMs flow (@PRTTMPRPHT)
- a4b4b39a3cf868c3c853e6709b8deab0586ade3f: feat: Add multi progress and legend primitives (@PRTTMPRPHT)
- 3dda7ae30221af8900cebae0cb79af366b82bf01: feat: Add new VM control plane pages (@PRTTMPRPHT)
- d2f8300ffd1534e8e83dad21a53ccfa942b61251: feat: Add new bare metal machines page (@PRTTMPRPHT)
- 63b7c4c700f55c1ceec1281569a6b858c0f26a98: feat: Add node pools UI (@PRTTMPRPHT)
- dba3036b9b9765b9d51830899739eaa4cd78ea60: feat: Add object access section to tenant form (@PRTTMPRPHT)
- d00610f38981ad8b8a9715751b64d953340ee632: feat: Add proper operator detection and skipImpersonation flag (@PRTTMPRPHT)
- e6bdeb686d2ab09ace19e21f717547011f627b1f: feat: Add screen-reader label to enabled switch in tenant form (@PRTTMPRPHT)
- 321adde4899372f66fc043c6d89b7a5f7244727f: feat: Add switch to mark OS image as certified and fix positioning of badge (@PRTTMPRPHT)
- 6f27693761bcae23fc8d0658ed0c4700d9c7bc17: feat: Add tenancy support to machines page (@PRTTMPRPHT)
- 2819388b1ff9ce81a4609d2ea973aa12e25d8e86: feat: Add tenant name prefixing to global entities (@PRTTMPRPHT)
- 36634cd54250091ddd0f02b64ec12bc9b757ef35: feat: Add validation to object access section in tenant form (@PRTTMPRPHT)
- ae01620b2e41251d9ce8994107d00301a7d9fa7e: feat: Add warning when selecting all control plane clusters in tenant form (@PRTTMPRPHT)
- 701e913b2875b088c8c342b130ab1602cf560387: feat: Address review comments and fix e2e tests (@PRTTMPRPHT)
- 4a968ace32fff029d1cb6d90742f28fd6e092014: feat: Align machine allocation policy controls (@PRTTMPRPHT)
- 5a60ab063f7d2c874f91a63d7f498b3797204168: feat: Align navigation items between control plane cluster details and cluster namespace details (@PRTTMPRPHT)
- 4f822e35dbc463a3a0c5088f86cb53d9cee89392: feat: Bind instance types section to new node claim spec (@PRTTMPRPHT)
- 247bfe1bfe8f258c08e69b7e30b951aa836a1177: feat: Block provisioning for VMs when there is no reserved node type (@PRTTMPRPHT)
- 444a96e3debf5c37ecd72a574bc0d48376ee98f0: feat: Change all "CRD" labels to read "CR" (@PRTTMPRPHT)
- 23bef0e97f76bed944d0fe43b23377ecfb3b0e4c: feat: Change background color of impersonation banner (@PRTTMPRPHT)
- bf9d93f57d3c031f0f3fd55fdbee9d27032972f8: feat: Change database connectors to use new connectors API (@PRTTMPRPHT)
- 0ae13e322b6f8d5f3cb054ca61bea74dd3cef919: feat: Change description of tenant assignment selection in OS images (@PRTTMPRPHT)
- a07d43b52158ca96045badab9b3ed74edd79c2b3: feat: Change empty state for virtual cluster table (@PRTTMPRPHT)
- 02893b48f33039976c832a47d4daecde583e7e90: feat: Change how machines are matched to KubeVirt node providers (@PRTTMPRPHT)
- 5611887059eee3f46d7a0b455d32104dc4b0f4fb: feat: Change naming of platform assignment from "platform tenant" to "platform owned" (@PRTTMPRPHT)
- 532ec66ce47197f72da6da9d83bc8035ad1c6add: feat: Change nav bar gating for machines so everyone who can list machines can see it (@PRTTMPRPHT)
- 7692686bacb6e3a7624942d6ebe5819111aeccc4: feat: Change navigation to group some pages and free space in the sidebar (@PRTTMPRPHT)
- fad4c5c51a0270be773af6d9081e0af341e6b4fa: feat: Change title of instance types section during provision for VMs (@PRTTMPRPHT)
- 0f2148ac8c290b9c7bdc7a1a1d5bb1305d789352: feat: Disable node pool type switch when editing node pools (@PRTTMPRPHT)
- d6eee23f3a57b86bf3f9e885c49f88926c593f38: feat: Filter SSH keys in launch instance form by project tenant (@PRTTMPRPHT)
- ee632607fc85cabdbaf6e2df02aeba8f5dd023d6: feat: Fix impersonation banner position, text and style (@PRTTMPRPHT)
- 6f1704f7e6384c54783c8a9cc3b618580955199e: feat: Fix playwright version (@PRTTMPRPHT)
- e3c0d28390efe641a07430b549d1e3ebdbda8256: feat: Hide advanced section in project settings for tenants (@PRTTMPRPHT)
- ef8a956b16ab3387230cf92fb82d2a534402f62a: feat: Hide machine spec during provision for VMs flow (@PRTTMPRPHT)
- 0163ebf68b61450beb5658813ed91f990ae3ff34: feat: Hide provision for VMs for platform admins (@PRTTMPRPHT)
- 2622192b13efe9de388795270d1bf0feee55b125: feat: Hide provisioning for VMs behind experimental feature gate for now (@PRTTMPRPHT)
- 05e592878a0b5c44fe80632ad75bd37158281181: feat: Implement new design of compute section (@PRTTMPRPHT)
- ddf87c05939bfab54bfd360d07a6240cb0756960: feat: Implement some defaults that should lessen API request pressure (@PRTTMPRPHT)
- cc083e87bc34a14182231da31088d5f2a515dde2: feat: Improve clarity of project menu (@PRTTMPRPHT)
- 5756b0419aa45247f09729a96b663f7a8df403f2: feat: Improve display of tenants in project selection (@PRTTMPRPHT)
- b1a0d02907ca6ba0481807a846daeabfe1fad6f8: feat: Improve empty states for machines and tenants views (@PRTTMPRPHT)
- 1f5af720f93812cf2ae9bb837d71847b4512d475: feat: Make SSH keys enabled by default in tenant form (@PRTTMPRPHT)
- a7a692ff36eff78418f0467e8ec16a16eedf22a1: feat: Make invite user dialog use tenant hostname (@PRTTMPRPHT)
- 89b33ddce4958db36453d36bbaa965845be2fac4: feat: Make observability connectors form use the new connectors API (@PRTTMPRPHT)
- 5fcb1033b1e03fbdc64d76ff9fe2c49c1a6a7b98: feat: Migrate ArgoCD connector form to new connectors API (@PRTTMPRPHT)
- 63a10d9a77899ec2ee67d930d4d7752cc0d83797: feat: Move KubeVirt debug views under VM control plane details (@PRTTMPRPHT)
- a453ef5759a67988fd5d1dd9b549294592fb3e69: feat: Move cron tooltip into description for snapshots (@PRTTMPRPHT)
- 5e79326e82d46a61c53fd93b78881eb202fb0f64: feat: NICo (#7939) (@janekbaraniewski)
- 8ebf1f98ffb353f4dda3e076db37451dec04b475: feat: Reenable advanced machine settings for provision for VMs flow (@PRTTMPRPHT)
- 411791948ef54f8aa6ab1a5a50c09d32b699a051: feat: Refactor backing store detection logic (@PRTTMPRPHT)
- 6c5cc894f8be5f091909cd560595a05c483786b0: feat: Rename device capabilities to machine capabilities (#7928) (@PRTTMPRPHT)
- 53c36ec85625016977a53f8402e651940e1c37ed: feat: Revamp compute selection in instances form (@PRTTMPRPHT)
- 57ac8705511c55c1932ac74e0a40cc73a3c618c1: feat: Revamp object access section (@PRTTMPRPHT)
- d8f09b3662c7a0b07eba975398e3ca4caef271f6: feat: add app instances (#7448) (@FabianKramm)
- aa70535d5c3c8c85b04bfdd03d535db841f05694: feat: add insecure connection warning (#8366) (@FabianKramm)
- 9a3489230aa7056e901f0f3df8b2f79bc471a95d: feat: add ironic view under Metal3 (#8510) (@FabianKramm)
- e4e2a7174666d778942489f5263b222454f52553: feat: add machine types (#7873) (@mfranczy)
- c5ebe5b3161b858fa97b4c9a81d944b293583af3: feat: add namespace strategy (#7643) (@FabianKramm)
- 66295efd7f71a34c706537864c055571333d2656: feat: add netbox metal3 integration (#8170) (@FabianKramm)
- 21147e07f4411533d7c6c71c463f82e4f066a365: feat: add node pools (#8938) (@FabianKramm)
- b101faf24c81f0522d33693bfc4bf6ca276bdb93: feat: admin user recovery (#8177) (@neogopher)
- 3127bff46251d92cb638817c4f22c7078ddf6138: feat: auto snapshots for standalone - credentials endpoint (#7712) (@mfranczy)
- fabfc3e0dcd9fb5f3d2ee597e3e00e9f8fba357c: feat: better metal3 node display and overview (#8566) (@FabianKramm)
- d952d889ac1b6a689dfd02c1d419c3b6f25288b0: feat: import the NVIDIA Dynamo certified stack (#8368) (@FabianKramm)
- 5574a8e34539ca0e6680a4683eeb959810c4a9d2: feat: machine ref for nic (#7993) (@mfranczy)
- 6eefcbba3fe5c8a984494afd7fb2392654c9e889: feat: machine reference (#7931) (@mfranczy)
- 4e29786e29e1fd2b5b582fccc04916c655bd7286: feat: machines sync (#7892) (@mfranczy)
- 57405c3d394748105f9fe9215741c2d54914b86c: feat: nico machines lister (#7969) (@mfranczy)
- 9b9b04794c1d607fd942ce973531b3864a607d27: feat: node type shared / assigned (#8395) (@FabianKramm)
- 7dd74e77690cc04b0c9cba9de6562b3f628785a3: feat: tenant node provider (#8208) (@FabianKramm)
- f07517d2b2bb6db1c6780b9cd36f3f2b7cd1d98c: feat: vcluster device operator + kubevirt refactor (#7582) (@FabianKramm)
- 8d6e8427190c2bb022628da93b67e369026a3d67: fix(accessauth): a tenant binds only users and teams it can see (#9001) (@nprokopic)
- ed1e907316e2505dcabeaf0733344392af737194: fix(accessauth): refuse empty-verb matches, wrap authorizer errors, pin the matching contract (#8898) (@nprokopic)
- 775ded40a0f4345f49726cab220a7a5c56777040: fix(accesskeys): trust owner reference on transient cache miss (ENGPLAT-709) (@roehrijn)
- 47d56cedb4094595f626757674b6dfe88ba27541: fix(agent): delete namespaces left behind by a vanished space instance (@roehrijn)
- 626625a128c41d69bfd371d7ed8bd8d543289b76: fix(agent): delete only a namespace the instance owns (#9126) (@lizardruss)
- a9c6d4cf4dc2f363661232909700aae3b3df2d47: fix(agent): reload renewed webhook certificates without restart (#7874) (@johannesfrey)
- c1ba280922b737c337a334c0305333ddff21d344: fix(agent): report the cause when vcluster proxying fails (#7697) (@Piotr1215)
- a16aefd1844ef2f912665865778cda7eb1da9f38: fix(api): allow schemeless host in get kubeconfig request (#7484) (@r0bnet)
- a319e8bbc2bc6b0143c4dafb01bd2a1269bd6712: fix(api): preserve a Secret's Type and Immutable across ProjectSecret writes (#6845) (@neogopher)
- 4f1873d21d6d8897c16130fd1400b33fee947aa2: fix(api): refuse deploys onto a control plane cluster from a tenant's world (@janekbaraniewski)
- 80c4292adaf10e7881b8443635f68cbd94fad15d: fix(apigateway): scope the impersonation cache to the instance (#9134) (@seanschneeweiss)
- 8ef3f05198b80abff11542be3766b8475e1245d5: fix(apiserver): name a missing instance on a status subresource by its management resource (@rlmcpherson)
- 3dee52d7265522f3a7f5284d47388a19ca7c82a5: fix(apiserver): only an agent may write a VirtualClusterInstance or SpaceInstance status (#9096) (@mfranczy)
- e9e4bcb631859d0d41dd8b4dfb65a01ae1b47753: fix(apiserver): redact a tenant's watch departures (#8815) (@rlmcpherson)
- dc7692bc4b834e9ecfea12305d8aaa50c5bf3e79: fix(apiserver): scope the project subresources to the project's tenant (#8027) (@lizardruss)
- 11033c9e51e201ea4c1782dd800a8dcf8511cc62: fix(apiserver): stop applying caller access-key scope to reviewed sar subjects (#7728) (@johannesfrey)
- 4c70dc44e2b95b0901ad86b171d1507fd3adfde5: fix(apiserver): stop updates from restoring fields the request cleared (#8464) (@johannesfrey)
- d852741583672a234fb2ab2d8b531c473fe35b0d: fix(app-instance): Unblock the AppInstance controller from removing finalizers if it errors with the log secret (@zerbitx)
- 8b3498d8255c6da7da31fccde39df858d3aed552: fix(appinstance): reserve releases and retain deployed namespaces (@zerbitx)
- a5be7fa3a87ab286a0ebc1c75755ba870bb07745: fix(apps): wait for an app's jobs before reporting success (#7996) (@flomedja)
- 7e937343409177696f4953aa15c2192ae30f2d3b: fix(argocd): Persist argoCD connection to avoid creating new connection at each request (#7523) (@flomedja)
- e0d49f9786cabb8a2e19a3bf363492c159d60e9d: fix(argocd): avoid name collisions when multiples platforms share an ArgoCD backend and have identically (#7152) (@flomedja)
- 5c5d76f8f74d35ab7e15d34756f7b6b39fdb465f: fix(argocd): enable DCGM XID and NVLink error metrics (#7552) (@seanschneeweiss)
- 4c72e27250524691c858f9d0c36056010b75a26b: fix(argocd): fix nvsentinel default image version (#7499) (@flomedja)
- 691e391e06f8d90ef697a89ca329240dd4a3018b: fix(argocd): read the instance's tenant from ctx and harden the tenant stack e2e (@janekbaraniewski)
- 2f3c48c73e6c943bf5510bc43a249dadf9bcee5f: fix(argocd): wait for the tenant cluster before registering it with Argo CD (#8403) (@flomedja)
- 00617de07b18b30bf0dcb58fe8952ff6930b25fd: fix(argocdapplication): make spec.owner immutable once set (@janekbaraniewski)
- 85f960df857bae1dbbcc962a0e38e9f5f6d0d259: fix(audit): redact datastore endpoint credentials from audit logs (#7999) (@neogopher)
- 94cd420db9cc98c8cad08a8772b8df1988bcd080: fix(audit): stamp tenant before sink fan-out (@zerbitx)
- e61b191cc7b9fab4479c8c88f9c258ec8d8b312c: fix(audit): verify agent cluster before tenant attribution (@zerbitx)
- 84ceb9f078059c5b604aa158118ba6a43620574c: fix(auth): refuse and neutralize reserved user subjects (#9209) (@johannesfrey)
- da8e1a80d07ee1b7bac6886019347786cd3bc8e2: fix(auth): restrict network peer diagnostics to platform admins (#8488) (@janekbaraniewski)
- 86c62eaa89e2573e04df9edc628fdf2a0000596b: fix(auth): scope object permissions to the subject tenant (@zerbitx)
- 622cc1c57c0ba2b56645fc3152f47116ecdb840c: fix(authorizer): answer the tenant boundary as the subject (#8458) (@lizardruss)
- 3a4578b28f07cb05b8121e6aaaf188ebf68aaa29: fix(authorizer): grant agent cluster access through a cluster access only (#8697) (@lizardruss)
- 929d10aaf5c3d2a7694ebf80c036695617f64657: fix(autonodes): replace nodeclaims that have not joined when the autonodes config changes (#8835) (@roehrijn)
- 50c8f0c011a888374ced67a586f4358e556b5e18: fix(autoscaling): bump device operator to 0.2.2 and dhcp server to 0.18.0 (Claude Opus 5.5 noreply@anthropic.com)
- 27b6732d83ecfb1cce83809137e3ec422a215bc9: fix(autoscaling): drop the metal3 host from a claim whose update failed (#8387) (@cbalan)
- 01e0fc744e6f170e04c86de7ec77c5cc368be227: fix(autoscaling): keep instance and nodeEnvironment vars for v0.1 terraform templates (@roehrijn)
- 27489df096e484345ec53ee81132d0d8caa40c94: fix(autoscaling): keep the operator's DHCP annotations on a released metal3 host (#8596) (@cbalan)
- a135cc7ce5c642faae0962b0dfaad377a4e91674: fix(autoscaling): list node claims only for reserved KubeVirt node types (#8442) (@cbalan)
- 51cef53214ded140aceee163dbf1856467c360f1: fix(autoscaling): name a NICo node's VPN peer after its claim (#8410) (@cbalan)
- 33e18b6fd2777897d5a1d1d5c11d8b84de7f8105: fix(autoscaling): reconcile allowOverride on adopted nico operating systems (#8221) (@roehrijn)
- 34558c44a3f1d90e7c978f0cebcf9706fd1c23dc: fix(autoscaling): wait for multus before deploying the dhcp proxy (@roehrijn)
- a8980909784e8a8d0a92bdd8be687dc5f85859a3: fix(backport): reference existing LINEAR_TOKEN secret so sub-issue linking runs (#7491) (@Piotr1215)
- 20fba1443e0471fb8bd3bcdebba374a18d0d0564: fix(backup): refuse a tenant rather than serving it the whole platform (#8328) (@lizardruss)
- a491a5ac4623a59823b0b29a52cc48c840d67320: fix(chart): map head chart sentinel version to the head image tag (#7195) (@johannesfrey)
- 2441e7a2f25f10c08b3fb26b7148592a95a8b3b1: fix(ci): allow ansi job logs in flake autopilot (#9272) (@Piotr1215)
- 35effe2ddcfc05d7cbb02106ef635b0a582fe307: fix(ci): authenticate docker hub pulls in the e2e workflows (@roehrijn)
- 7afe923f8caa89b43d0b74880ea4b22800046d67: fix(ci): check out the kine verifier at the trusted workflow revision (#9140) (@Piotr1215)
- ae0f7c9eb5e123f6797337311e07bbdfc1f6052f: fix(ci): derive the head platform version from the last release tag (#8763) (@adriankabala)
- 2c5aa35ea9a6714079390c82ae5c1b21b8e0675e: fix(ci): keep the e2e aws session name within the sts constraints (@roehrijn)
- 175e6e60a40cb7bfa0e8ee10addce404f50642d6: fix(ci): preserve first-push check visibility (#8063) (@vcauesantos)
- c7393cc0952f40d07f842a6b5f5f2c27972f88c4: fix(ci): resolve platform base by semver, not publish date (#7461) (@sowmyav27)
- 2a9b5bef946a21402dc3b59919d4b72b503c3443: fix(ci): skip the mirror release step on sync push runs (#8833) (@Piotr1215)
- ca3221804b6331c327936f1c7891409a023d7cf4: fix(ci): stamp a semver version into head platform builds (#8760) (@adriankabala)
- 203c41a122e50087a5f663509b76de6612adf586: fix(ci): stop devspace plugin sync from blocking releases (#8655) (@sydorovdmytro)
- 624b7a40bc2763db148cd1777f7ed04c7a63cec3: fix(ci): use qa app tokens for flake fixer github access (#9262) (@Piotr1215)
- 8f7e7f88451414690023e19468d8abc7ae45762a: fix(ci): use the current branch cleanup contract (#8343) (@Piotr1215)
- 1952905473092847f9ac873cbe51fcf027fb00a0: fix(connectors): address OS-image review feedback (@janekbaraniewski)
- ceb40e669a309cc9aa3cb37f1080176584a69261: fix(connectors): bound a node provider's netbox connector reference to the owner's grants (#8785) (@johannesfrey)
- 694cb6c5010be253dda37a080c147130230c64b4: fix(connectors): bound observability connector references to the tenant's connector grants (#8758) (@johannesfrey)
- 05d821909c6813b25e2bda052bfd889f07315757: fix(connectors): correct OS-image validation test (@janekbaraniewski)
- 514b8f8ebded3470f88767ad7ac2e92127b76b5e: fix(connectors): harden OS image store compatibility and validation (@janekbaraniewski)
- 6b08b11a6ad77c3e6dd03e5eedeb56affa99fce9: fix(connectors): keep credentials out of default audit logs (#8267) (@nprokopic)
- 9f7dc46f43a568f8385406ace0a543f63cbafb83: fix(connectors): let non-admins list connectors with a redacted view (#8486) (@johannesfrey)
- dd0330b55e7d538d263feb0b077bf111487ba501: fix(connectors): re-check a tenant's connector references at reconcile time (#8581) (@johannesfrey)
- baac802f3fb8be8b6a864c2e232c699a74b59d53: fix(databaseconnectors): hand a database Secret only to the sole holder of its service UID (#9089) (@mfranczy)
- 61d34fc3d928dacc060d7d52ade46fc3ec1a2ace: fix(deps): migrate go-jose to v4.1.6 (ENGAPPS-1153) (#9111) (@neogopher)
- 68c6c2631c198629ed0f20f5e2389303b255c05d: fix(deps): security updates for main (#9079) (@vcluster-security-bot[bot])
- 51bb6a09d8446975f30a162d5c5479b099f222b6: fix(deps): sync golang.org/x/sync to v0.22.0 across go.work modules (@vcauesantos)
- 78f1d8010e31c93dff7563a6df762b303f59dd87: fix(deps): update dependency dompurify to v3.4.12 [security] (#7409) (@renovate[bot])
- ef5ef5dfad8617980e8313c1ab82a749fb654ecf: fix(deps): update dependency js-cookie to v3.0.7 [security] (#7397) (@renovate[bot])
- 6d71ea18cf23c6b6ca7a090a7847d1973c899766: fix(deps): update github.com/netrisai/netriswebapi digest to 7b335ae (#7799) (@renovate[bot])
- 87211bae1ca9b4b0c281f932cee6d35588a079b4: fix(deps): update golang.org/x/exp digest to e88cd73 (#8072) (@renovate[bot])
- e3d52262f00c2457e7d374afdac1778013de660f: fix(deps): update module oras.land/oras-go/v2 to v2.6.2 [security] (@renovate[bot])
- 8de63477fe8535a6462185e9b78145c13f6d6b62: fix(deps): update npm security updates [security] (#7842) (@renovate[bot])
- 28fb8404f683004a04029e4898abeaab9c55df7e: fix(docker): bump opencost chart to 2.5.32 (opencost 1.121.3) (@vcluster-security-bot[bot])
- 3955a5d5cc6311ffd730da5f70628b26d5197b9b: fix(docker): bump opentofu to 1.13.2 (@vcluster-security-bot[bot])
- d64987ecc28b3761fea971d3d0c8ee905005cbea: fix(e2e): allow commands on fork pull requests (#8432) (@vcauesantos)
- 05d19441ecc9674f74d0572391686c9061f736aa: fix(e2e): attach cloud-init log only when node readiness times out (#8480) (@roehrijn)
- eef2176dbccb44f79dda7b16e5acc5938edfaedc: fix(e2e): create the AWS NetworkEnvironment after its credentials; raise nightly ginkgo timeout to 150m (#8712) (@sowmyav27)
- d963028748de68afa1d417f8b653eab3dc865aa1: fix(e2e): detect a missing nico checkout as lease staleness too (@roehrijn)
- 0933f0d018876fe03a9259a91ec34eb8fff4eba7: fix(e2e): fail fast in prepareImages when a takeover already lost the lease (@roehrijn)
- b74076c35e3b5c7cb0e2958908b3d1a7e90405f6: fix(e2e): fall back to direct module fetches in the nico image builds (@roehrijn)
- 40d3cf003d3001153439758824be0dd3587a4915: fix(e2e): fix helm client ingress-nginx cleanup flake (ENGQA-1487) (#7658) (@sowmyav27)
- 2d078709edf8101eaf2a52cbf80a6f6759ac9e5d: fix(e2e): give each nico e2e spec a unique tenant org (@roehrijn)
- c6fceac3a6e64b9509ccb2b04770f202d8758c59: fix(e2e): give sleep mode ingress wakeup a longer budget and read the body once (@roehrijn)
- 48ff65423caa2943416f65e67cb3b0a433773467: fix(e2e): give the control-plane lane a site-worker, skip the baseline VCI where unused (@roehrijn)
- 4ddb6c462b275389c047b87b6cbcbf77b1d8e8a6: fix(e2e): guarantee durable on-failure diagnostics for standalone and auto-nodes specs (@roehrijn)
- 0359b057aff99d9c4a49d2e4566922b828f0802e: fix(e2e): harden the nico image-prepare lease against staleness and silent errors (@roehrijn)
- 035195aadd553cce407a053c8691d96561270d66: fix(e2e): issue fleet observability metrics-writer keys through the scoped client (#9087) (@johannesfrey)
- e560a639948e313b2e3b46773406150429845968: fix(e2e): keep spec context unchanged in space provisioning matrix (@zerbitx)
- ba508eda75bcccd23d6f337114b0ded47960510d: fix(e2e): limit bundled template check to presence (#7464) (@seanschneeweiss)
- 105c4e7047dbed54ca44291b49052096f2437906: fix(e2e): merge postgres resource requests instead of replacing the default (@roehrijn)
- 476c94fd03db15f2d9a4f9b831ae9d5dc6daf48c: fix(e2e): name space provisioning matrix user with the tenant prefix (@roehrijn)
- 7aa3f5501c2f04b89fec8b2a23a07407278f729c: fix(e2e): re-add a local lock around the nico checkout's critical section (@roehrijn)
- 7d106f1b9fd90a51003650edb1e8f3cd0a8d6fc7: fix(e2e): read the NetworkEnvironment readiness from the host cluster (#8245) (@anvesh-loft)
- 2b8215f27f234853129446346c605ad50c9651f7: fix(e2e): reap nico instances the bridge first sees terminating (@roehrijn)
- 6ada039e83d88cd27d799c56e1ac1773942b8081: fix(e2e): recover any panic in the nico instance bridge's DB ops (@roehrijn)
- 78d610589139eb722621dcd5ad774a27a54f4f1d: fix(e2e): restore postgresqlDefaultVersion after #8766 (@sowmyav27)
- 605acabc58490935be39bcc073555041e366af9a: fix(e2e): retry lease acquisition when a waiter's holder dies silently (@roehrijn)
- f3d29a0c1cc0f038a1f49cca419b0dac9bcc1cc4: fix(e2e): reuse the persistent kind-platform cluster for e2e runs (#8136) (@seanschneeweiss)
- 04f804f53d7e8ffde99d25fc624e9aaf2d673ce9: fix(e2e): route klog and controller-runtime logs to ginkgowriter (@roehrijn)
- 74818beb4e423b397014a02268aba21181f18c1c: fix(e2e): run kc-free log fallback tiers when standalone kube client is nil (@roehrijn)
- aad9e410a61ac0cecb07ec19859431f69f4344da: fix(e2e): skip the metal3 license token when the platform image uses the fake license (#8625) (@roehrijn)
- e26a52485e34e448b7297cc0c98fd0441c9aaf76: fix(e2e): stop aborting VCI wait on transient Failed; retry VCI patch on conflict (#8211) (@sowmyav27)
- 3f60298b2237de5961a301c08b636df4f6d91f43: fix(e2e): stop asserting a specific provider name in the org-reservation rejection (#8196) (@roehrijn)
- 336a8741199b248a1de3bc47c4ece86fd09a4942: fix(e2e): stop flaking Least Privilege Mode VCI readiness waits (@roehrijn)
- 65a7558096890a35b9f65c07162f18631131ee61: fix(e2e): stop leaking EKS IAM roles created by the cluster provider (#7886) (@adriankabala)
- 10a1334a7b5cc21c11889a4b6eb82517c8ec15a2: fix(e2e): stop printing the dex client secret to stdout (@roehrijn)
- 7ddb035e2d45d6adab49e01f763bff9ac9a23899: fix(e2e): surface degraded fallback in FirstWorking enumerator (@roehrijn)
- b40fdddd84adc17940ea988c11640d15074410cc: fix(e2e): unblock metal3 fixture hosts on the 20261028 ubuntu image and upload failure dumps (#8986) (@roehrijn)
- 13d08c261bbea0517a953d09d05a8be47746c5c9: fix(e2e): use explicit name for central-hostpath-mapper appinstance (#7544) (@adriankabala)
- 299f2c110f2e190c5a6e2221d24d0c1736f29553: fix(e2e): wait for private node systemd boot before joining (#8860) (@sowmyav27)
- 7171f905a9de1363b43ca77ed94dbe1172473793: fix(e2e): write s3 object delete warnings to ginkgowriter (@roehrijn)
- 8c0d60c63ceebcb08e3ce673519eb1853a62b725: fix(editor): stop flagging valid Helm-templated values as YAML errors (@andyluak)
- 422d4f21bfffab45724102840502b0f35c132d41: fix(hack): make go api regeneration work from a clean checkout (#7936) (@seanschneeweiss)
- 0cb474a5bc99f1cb64843f2514f04b7f3852e45e: fix(hack): make swagger generation fail loudly instead of corrupting the spec (#8091) (@r0bnet)
- 009659f8b02682b53171a752a574bc2ff07f4224: fix(handler): key access caches on the whole identity (#8700) (@lizardruss)
- 18b270cea6556ae71a1aede9c098d8cc05153da3: fix(license): enforce limits in the offline license cache (#8096) (@johannesfrey)
- af8495f02126291af7346b3175e9c8d2813c5f55: fix(license): refuse to start when LICENSE_TOKEN is set but empty (#9273) (@matskiv)
- e4acf2b161abbf79c92b730f357f02312ea44f2a: fix(loftrouter): bound reconnect rate so an unhealthy instance can't storm a router (#7556) (@Piotr1215)
- 3104a5beaf43ce950eec334c7e2c6987673936ce: fix(logging): log patch bodies and helm values only at debug level (@andyluak)
- 00e9654bee3091fe394e0d06d290a1120c16f635: fix(machine): refuse assigning a machine to a tenant not allowed its node type (#8960) (@roehrijn)
- 0eb75053f073d179d0ad3621e19bd71ef12afe28: fix(machine): refuse tenant reassignment of a claimed machine (#8400) (@jjaferson)
- a5767239d7dccdd74e4711592feff5f4c49bb5c5: fix(metal3): bump metal3 chart to 0.7.3 for the emudhra ca distrust (@msriid)
- 5b423fb140a70a6e5a3e1144e7b9ef24a6c8ddb7: fix(metal3): only reset a bare metal host the platform assigned to the claim (#8807) (@mfranczy)
- 37bb83540328a2f93e683c3ca8d135569a4e9ca1: fix(metal3): report the provisioned ip in machine status (#8525) (@roehrijn)
- 86a487cf0876e86728edba5470dcae1d9dd8904d: fix(metal3): stop matching host cpu and memory against the node type (#9055) (@c2ndev)
- 9bb481c717d7e72bbdc903ac29895cd53fa8c95c: fix(metrics): de-duplicate identical series when merging metric sources (#7457) (@Piotr1215)
- 66b5a2bbe698e4661871718e7d518ce7a3a5b73a: fix(networkenvironment): allow editing the display name after assignment (#8321) (@rlmcpherson)
- f3258f5d665067a59380f02a7751a11a19dcdee8: fix(networkenvironment): count every bound node claim in the deletion in-use check (#8301) (@rlmcpherson)
- 7d8aeeabffd12910f47d471eff82a953d5ad9d58: fix(networkenvironment): name the node claims that block deletion (#8333) (@rlmcpherson)
- 4ca2a4689dd666ea4e40d8b774fbc0d470ced0f4: fix(networkenvironment): refuse a missing node provider and release on delete (#8804) (@roehrijn)
- fa42229429e38a8ff719078d13485c090991fc03: fix(networkenvironment): refuse a tenant's create (#8350) (@rlmcpherson)
- 856194ff089538c460df8943c13f4141b109499e: fix(networkenvironment): refuse writes to the managed netris annotations (#9174) (@roehrijn)
- 5d0f80ba7f933f6920c26675f36abccf65aeff01: fix(nico): act on a NodeClaim's instance only in its tenant's org (#8842) (@mfranczy)
- 5956247deb17d7a5d70dbd2009cf91f9a917488a: fix(nico): address follow-up review findings from tenant quota change (#8459) (@roehrijn)
- c9e437eac934e03064d208b2c8733cdebb1ec8a6: fix(nico): classify retryable errors by inclusion (@roehrijn)
- 38d64651920f3880627328d129da18754ea49f46: fix(nico): delete a vpc's subnets before deleting the vpc (@roehrijn)
- fc8fd9a9e1da68b77486b30afdc7561eca435d01: fix(nico): delete materialized os-image catalog entries on osimage deletion (#8220) (@roehrijn)
- 599b5edfbf0bf164f53a04c766e3a995b42cb425: fix(nico): derive the tenant node provider from assigned network environments (@roehrijn)
- ff9581c46e5be316feed238448c1902fb4a47a8d: fix(nico): keep node-type claims off machines assigned to other tenants (#8392) (@roehrijn)
- 479371dd9ef7ebbff3ef5d4513b6051190c3a80f: fix(nico): make network environment tenant assignment immutable (#8100) (@janekbaraniewski)
- 056d35045f103cbc2289cea3285fa4d99986fd47: fix(nico): mirror a machine nico is still cleaning up as deprovisioning (#8788) (@roehrijn)
- 53f32e67bded5a468d4012d8dd2c078228fd720e: fix(nico): onboard tenants into nico automatically, using the tenant name as org (@roehrijn)
- 72e4709fff07e398510357807476b3ae4a56fe58: fix(nico): only an instance makes a machine Provisioned (#7995) (@mfranczy)
- b3a5a97411271f89ad4ef63a326e5abdc98f1146: fix(nico): read the capability from the account, not from a list entry (@mfranczy)
- 377d1d9b4f2bdafd6d0f8c6b3fbcfc205f23aad9: fix(nico): refuse tenant claims naming an unreadable network environment (@roehrijn)
- 8aebb74cec191846760d3c6d7bb0b41d074d58f4: fix(nico): reject node claims whose os image nico cannot boot (#8988) (@r0bnet)
- 440cc977d56d0b7e58f5c721fa4bca105d207e2d: fix(nico): reject tenant and provider org collisions (@janekbaraniewski)
- 6e010d94fd8ce9a53afed381aa67a46a15899195: fix(nico): report machine power state from host bmc health alerts (#8539) (@roehrijn)
- 9db4ed4d69110f002c06c184e7ad475c947c9470: fix(nico): scope the nicotenant reconcile through the tenancy client (#8470) (@roehrijn)
- eca0454ad23b73686cc0c444286ff25b490501f9: fix(nico): stop tenant quotas from reserving nico machines (#8443) (@roehrijn)
- 6f01b350734058687d8cee460ffea6b588e9843f: fix(nico): the capability grant must not gate onboarding (@mfranczy)
- 13fafe2dee85f22fc5b948ca2056153e8473e152: fix(nico): wake a tenant when the scope label of a revoked by-name grant is swept (@roehrijn)
- da3adcfa2d20160604b61fb8283130e425d3c407: fix(nodeclaim): enforce tenant node type quota on the platform (#8404) (@roehrijn)
- fcf3e98fac72e012fb5de0ba12007af737bb5e44: fix(nodeclaim): fail a claim that gets no machine after a provisioning wait timeout (#8565) (@roehrijn)
- 7808b32022ad0ee8da548f53718fc7c4214099a8: fix(nodeclaim): fail metal3 claims whose machine is gone (#8778) (@r0bnet)
- d427ec9bdc2932ba76599e346ebf820d68775cd7: fix(nodeclaim): hold concurrent node claims to the tenant node type quota (#8558) (@roehrijn)
- 1c90d66830ebd37ba89e3225bb083b3ceb2bb727: fix(nodeclaim): keep provisioning failures visible after the first reconcile (#8984) (@roehrijn)
- c4d655abf387c8afa94c9a16d6aeafb8d466e25e: fix(nodeclaim): let a claim an earlier build parked on a terminating environment recover (#8381) (@rlmcpherson)
- 33eac624ec96880ed31ba396788bd86d30f47745: fix(nodeclaim): refuse a typeRef outside the tenant's node type allow list (#8878) (@cbalan)
- 045b23627aeeb9a1368bfc902d17533b339eacf7: fix(nodeclaim): refuse every vcluster.com annotation a client did not set on purpose (#9103) (@mfranczy)
- 1f0ded99053ecfd10445546427bb3273a53ab239: fix(nodeclaim): refuse hiding or deleting a node type while node claims use it (#9042) (@roehrijn)
- 80db3b0d0bc9d3073dbdab8ccf3564cfae9a6bb4: fix(nodeclaim): refuse pinning a machine no allowed node type covers (@c2ndev)
- 3972aadd1c58aa3c6b002d5bdbc2bf2099ea2026: fix(nodeclaim): remove the secret-based user-data and network-data template properties (#9154) (@squ94wk)
- 4e7830cdabe42955c6449e8fcf6e5f95a4c49fa2: fix(nodeclaim): report ProvisioningError for failed provisioning attempts (#8783) (@roehrijn)
- b83d763ac5ebea8e67e06cc4b0c9c834c3a44d6c: fix(nodeclaim): report the quota error when the over-quota node type has no free machines (#9020) (@r0bnet)
- 61e57ee51b8ce1cc864f520a9db3d910b90d4a05: fix(nodeclaim): say a tenant may lack node types when its provider reads as not found (#9034) (@msriid)
- f263eeafa049ac0bd88332e7728ec017003d2b25: fix(nodeclaim): say what a claim waiting for a network environment is missing (#8382) (@rlmcpherson)
- 672ab99bd02f87020b60cd63ad00044502866560: fix(nodeclaim): say whom to ask when no network environment is set (#9009) (@msriid)
- 10d3620b6776497606b550f8babe06098ad39e0a: fix(nodeclaim): scope MachineConfigTemplate reads to the claim's tenant (#9183) (@squ94wk)
- 42a9cc67c00a501408d30e2e8100b1735c01dcc0: fix(nodeclaim): show the new IP of a VM that was stopped and started (#8466) (@cbalan)
- 97232f1722b2e47b5f9f7890aeedf0f83406e78a: fix(nodepool): let a cluster report its node pool status (#9224) (@mfranczy)
- 275a9afe3b6f506440646416df13edd6823ac093: fix(nodeprovider): serve field validation failures as 422 Invalid (#8956) (@msriid)
- 0b6c53b5979f5b4c566758868fb76bfbdc98f384: fix(nodeprovider): take every node claim down with the provider, before its environments (#8575) (@rlmcpherson)
- af9a73523931fdc8904fb21de298507ffb031947: fix(nodetype): keep a relabeled claimed machine in its node type's capacity (#9023) (@roehrijn)
- 722aaf46c61ab139714f1b87ed48d70416019be2: fix(observability): consistent filtering for GPU dashboard (#7478) (@seanschneeweiss)
- 76a3b3d9804f387d2355576d5ab86994a5d6336d: fix(observability): disable prometheus config-reload sidecar incompatible with mtls (#7489) (@johannesfrey)
- e1c807e46644378a1e08fe0f271ed4cfcae486a7: fix(observability): dont nest platform in grafana iframe (#7577) (@seanschneeweiss)
- 4ad8f633738033fd8f38b0fc282fadbc4cd8a277: fix(observability): exclude control plane cluster from fleet tenant panels (#7533) (@johannesfrey)
- 06b1449877630109e3f0f547fb93f2bd1e90265d: fix(observability): fall back to 0 for empty quarantined nodes stat (#7476) (@seanschneeweiss)
- d9864b91b6ed361fe25b1b74c22e94d98d412e16: fix(observability): give metrics-writer access keys their instance's owner (#9050) (@johannesfrey)
- 0d2099821a3e4330cd8dd3da37d8d4ef8e23d6f9: fix(observability): make FIA listen address scrapable by OTEL (#7498) (@seanschneeweiss)
- 326be2ba1ea7eb62a0855d4222bceeaf89acbba8: fix(observability): normalize trailing slash in grafana platformHost (#7524) (@johannesfrey)
- 70e2ae3d5257b6527f10891c62b9032ca4633193: fix(observability): otlp endpoint param required, improve description (#7526) (@seanschneeweiss)
- 854c6629dff2f51215835542372c33a106278128: fix(observability): parameterize the fleet app deploy namespace (#7456) (@johannesfrey)
- f76b07eff43737a0ef162682127480986e549881: fix(observability): show not configured instead of not found for missing connector (#7481) (@seanschneeweiss)
- 20f25924693a455048bdbb24b01303edb08c62c6: fix(observability): stop setting empty MANAGEMENT_SERVER_NAME on gateway (#7493) (@johannesfrey)
- f37a048b589809d1fc61b4af5f51add5be12c011: fix(observability): synthesize grafana sso email fallback for emailless admin (#7480) (@johannesfrey)
- ba958579ef9f1e20f9422a1dc86a6d386c070dad: fix(osimage): answer 404 for blob paths instead of falling through to the ui (@r0bnet)
- 4396f8ba8c077c9b5a879df4eb716775eebda21a: fix(osimage): answer head on the blob endpoint so ironic accepts it (#8509) (@r0bnet)
- 2d9d440a19a3d09d7edea23593180422c332a325: fix(osimage): answer image store setup errors with 400 and a fix hint (#8649) (@r0bnet)
- 558f8425114decaea1e537ac222b0564ee37285d: fix(osimage): check spec.access before handing out upload targets (@r0bnet)
- 19f1df6e0cf496c24728ed9bd1967511a37001cc: fix(osimage): clear the initiate record when an image settles ready (@r0bnet)
- 9a632c7e2d0152498921821f1fa8f577d0c18f89: fix(osimage): clear the session record when an object is rejected (@r0bnet)
- 0919fbd43aba8f8781071595969043dfc29348fd: fix(osimage): complete the bucket-with-slash store hint (#8800) (@r0bnet)
- bea8c308f8393a9d692d5a084d3f6eae4f4dc486: fix(osimage): do not expire an upload that completed at its deadline (@r0bnet)
- 3174087e46aa6a8e831fa54074df6b2acf0a9eed: fix(osimage): fail a part listing whose marker never advances (@r0bnet)
- 9ab2e45cd58310cacc17d23c77e6c60721743540: fix(osimage): guard every way an upload session can vanish (@r0bnet)
- 3d5ed4f5044007bdc58d7699b830b469829a944c: fix(osimage): keep declared-size on ready and clear stale bytes on failure (@r0bnet)
- 6fd3b207008fd908a6f02224507ff18349fc7991: fix(osimage): keep store errors off an image the controller already decided (@r0bnet)
- c8efe56117efa4368a2b663bc5a82542d248ca40: fix(osimage): keep the upload session annotations server-owned (@r0bnet)
- 2bb26f888f9cf402adb19504774b2e7fcacad897: fix(osimage): let a failed image be uploaded again (@r0bnet)
- be75e4ff08455bd006a5f9dc4c9c80eb52d36bed: fix(osimage): let the controller own status alone and write it once (#8557) (@r0bnet)
- e1591b7763997add4f6b694e954031cef02ca4a0: fix(osimage): let the object decide whether an upload completed (@r0bnet)
- 561e082355ce5e6a5a8230dd5b9d07ad2966f832: fix(osimage): move the conditions assertion out of the api module (@r0bnet)
- 32149c427e6ae071561f04c538e0d9de88da61d5: fix(osimage): re-derive the whole expiry decision, not one field of it (@r0bnet)
- ee47810c6dca9ee91b71259cb7591f5373a7c998: fix(osimage): recover a finalize whose completion was never recorded (@r0bnet)
- 7bdd9dbcd264dffcbfa003ac285f5a5c3c3a9c7c: fix(osimage): refuse an unowned upload before opening a session (@r0bnet)
- 79458e45b14ed00a04095081b646a6c04a06d40a: fix(osimage): refuse dry-run on the upload subresource (@r0bnet)
- 1167291e9ff1301e88893fac1759b0c79695e038: fix(osimage): report store errors from upload and finalize on the image and connector (@r0bnet)
- 18c58ef5b315cee34d285bb0627f87fed4a515e2: fix(osimage): retry an unanswered store test and wait for the store in e2e (#8715) (@r0bnet)
- bdb133ccefeeec6e482d036a9dabfcc1373abbf3: fix(osimage): retry the connector status write on a conflict (@r0bnet)
- e8b3fa8cb826cbba894a757ea3d0b87a50b8251a: fix(osimage): serve the blob endpoint at a path ending in the image uid (@r0bnet)
- 156bf996edc002c07da1c38798dfed5bcdcc4f50: fix(osimage): spell the upload annotation last-initiated-at (@r0bnet)
- b23f8402666c52ed11b980317848e5e10bae0da5: fix(permissions): keep platform projects in tenant users' memberships (@zerbitx)
- 5c7b4085ab7ada662a9020166b37da34a693e356: fix(project): refuse a tenant changing its project's namespace pattern (@zerbitx)
- 9194825edc24d69cdde207394923952260a74adc: fix(projectsecret): sync shared secrets only into project secrets in existing project namespaces (#9010) (@seanschneeweiss)
- f8cb801572af70c7ab87b3f5761e98d9f0c566b1: fix(quota): count only on-demand placements against the tenant node type quota (#8780) (@roehrijn)
- f0245bcab9d836a21c806ead82511e7d1b2481d6: fix(quota): prune deleted clusters from per-user quota usage (#8693) (@kaihulme)
- 574a4ca4cafcfe9fa3d79405d9ae8be79597ce89: fix(release): allow e2e checks permission (#8212) (@vcauesantos)
- 02fe648058e4fbbb3776074c80d7540abc218800: fix(renovate): group vitest and @vitest/browser updates (#7666) (@vcauesantos)
- ba5e4caf20b184c91d7d314c7c136285420a5674: fix(renovate): group vulnerabilities and automate patch updates (#7821) (@vcauesantos)
- 2befa3ecff9a9bb42927dc57fea93018f09387ec: fix(renovate): match release branches of any major (#8490) (@sydorovdmytro)
- 9f5b4dc955232b88ee06423a6813d2941094418d: fix(security): check chart secrets when saving an App or StackTemplate (#8537) (@flomedja)
- 16f7aa14abcddae7c7248f4a47555f4451b9e4ce: fix(sharedsecrets): copy a shared secret only where the namespace's tenant may read it (#8841) (@seanschneeweiss)
- 1f597b320013cc0032a19cafa4f00b5e31839c34: fix(sleepmode): let onboarded tenant clusters auto-sleep despite argocd polling (#7539) (@flomedja)
- 04437e5cb00e881f583726feeac13bc188a72342: fix(sleepmode): set wake service port for Istio virtual service (@zerbitx)
- 38414ae01e336f265bf7b33983193af5a238e253: fix(snapshot): keep snapshots in progress through transient errors (#8622) (@matskiv)
- 1722de0e6ba27019caaa7a8c57a2ef02b3da4323: fix(spaceinstance): only space import may set the is-imported annotation (#9113) (@seanschneeweiss)
- 93f1b1c2a40cbae7291ca4176ea99d7624daf878: fix(sshkey): generate ssh key names and resolve keys as the claim's tenant (#8805) (@roehrijn)
- ac504e1ee3970978f876369169ea32178aaed050: fix(sshkeys): let non-admin users manage their own ssh keys (@roehrijn)
- 62d2207c483243075d2ce1d807b2fb37b0cc4171: fix(stack): add get verb to stacktemplates in admin core roles (#7998) (@flomedja)
- 4e2e373204dc9ff7b5bf29ef950e3dc78753c25b: fix(stack): add stacktemplates to management and core roles (#7968) (@flomedja)
- bb8a34e717849ac7b33b3d0fcbd771b6362c34ed: fix(stack): reject inline app release name changes (@zerbitx)
- 34eb645811ff227b4e869963cff1d6d67c0a9568: fix(stack): reject jsonPaths without braces (#7980) (@zerbitx)
- f414263a353342c0cf0d403c8225c0a486e6f722: fix(stack): report inline app release namespace conflicts (@zerbitx)
- f70d1cd040bf65110dcd5fca45dff49941b589b3: fix(stack): use platform.vcluster.com/stack-retry for ui (#7973) (@flomedja)
- 3b4e71cde8a4dabf6233d44fee12ab494ead53ce: fix(stacks): bump certified defaults generation for v1.1.0 (@janekbaraniewski)
- f10f725889e10e12b757b261c80f49f06c361ce3: fix(stacks): bundle every certified stack from loft-sh/vcluster-stacks (@janekbaraniewski)
- cc6f717a99d44558fd77a14a0eed14a3ccac0026: fix(stacks): fix stack validation issues and centralize validation functions (#7934) (@flomedja)
- 8cd61c2d8062da47bdac2ea22b7b503670bb1f22: fix(stacks): only accept Retain or Prune as a stack's prune policy (#7960) (@flomedja)
- 6c1f321db4241c66490a45c0878f28e5e4f178d2: fix(stacks): pin the new nvke mgmt tenant templates to the default vcluster version (@janekbaraniewski)
- 0d990fbf6f0ae20863b5fc2dfe3063fd90de7199: fix(stacks): read task outputs with the stack owner's rights (@flomedja)
- e1f6a08dcdd05724bfd5e758733aa1d25253610f: fix(stacks): run the certified stack ingress check with the Platform image (#8055) (@flomedja)
- 7f54c8082e79be3590c63d06c23c0ba6d22da09d: fix(stacks): say why a stack waits when its outputs name is taken (#8285) (@flomedja)
- ef3a07024148bb1c7b7bde276a5b5e0d16ca1866: fix(stacks): stop the stack name from making helm release names too long (#8018) (@flomedja)
- 3c51212baea98c9e246783cc4f7678186635b57b: fix(stacks): validate StackTemplate references (@zerbitx)
- ca5277d17069a8652adac1c5a5a348c6ce70db09: fix(storage): adopt a bucket only on the storage's own filesystem (@rlmcpherson)
- fd375eaecc81c27efbe33adf42bd7eee9791f02d: fix(storage): ask an operator claim's grant as its project's tenant (@rlmcpherson)
- f992ddb31431588b0cda5868974a90245a4db584: fix(storage): attach clusters with the tenant csi identity (@rlmcpherson)
- fae7f99480f330050213cbcf8406a2cb6ed762b5: fix(storage): attach only storages whose volume is ready (@rlmcpherson)
- ca128225790baee628464b88ae4bdf77dca45d52: fix(storage): attach the bucket policy to a recreated s3 user (@rlmcpherson)
- a7a91306a9d4bcdd2f99383d6553b59b68ab17de: fix(storage): bound the vast vip pool lock wait and hold (@rlmcpherson)
- 301fd43a7b9733eeb67aff121a8d4214e2cd1e3d: fix(storage): bound the wait for a tenant's object lock (@rlmcpherson)
- fa04a5b4f13e061082be34db49d327c1c3236cf0: fix(storage): build the connector cooldown once and require it (@rlmcpherson)
- d8afc85f4f5cf86a08bf87c899c6f4e552b3288e: fix(storage): build the weka transport from the platform default (@rlmcpherson)
- 0f2c6ade76130f4206cf7b378086265722dbf99a: fix(storage): carry the vast nfs options in the mount step (@rlmcpherson)
- b0f7ab6897af50f20e8d5b716ed4f8fc9607fd6f: fix(storage): check for an existing storage account past the cache (@rlmcpherson)
- edc260f110703573f9a3ca56ddd8e3a707442cbb: fix(storage): check the vast trash folder only where something is created (@rlmcpherson)
- bc7500c23f987216f9321182005a08a7d2eaced7: fix(storage): clean up a vendor tenant deleted before a pass succeeded (@rlmcpherson)
- 62da3c7fe8ef604638b4ae18c4b158b94b71d2ca: fix(storage): clear a withdrawn grant's refusal from a storage refused for its kms (@rlmcpherson)
- 9412fdc116599f272abde8d8b7b96b104d53c699: fix(storage): compose the tenant s3 policy from the weka bucket list (@rlmcpherson)
- 0d6291340d5d7b991b56ab569ce07d0cdb001c42: fix(storage): cool a connector down only for connector-level failures (@rlmcpherson)
- 208b0503c92b7223b7c4447a91beb599a2d6d3ee: fix(storage): cool the object side down apart from the file side (@rlmcpherson)
- 84c5374a3ede2c8e17288160b4e27a6999e6e29c: fix(storage): count attached storage toward the one storage system (@rlmcpherson)
- 3ee477d884891ffcfbdd62928b97926ab0fdd411: fix(storage): count the storage being reconciled in the reservation it waits for (@rlmcpherson)
- 4a059f91d9eb9a92340ce568a6192856a9f57a45: fix(storage): decide a held storage from status.storage (@rlmcpherson)
- 5e1c012288f6cf0dd3d20e7f78b556766ecb9ea8: fix(storage): decide a held storage from the platform's own record (@rlmcpherson)
- 39255768e7bd37b333cd330b3a000099bf434a8a: fix(storage): delete a tenant's generated vast encryption group with it (@rlmcpherson)
- 03e6afec851bc5953c1c97aca341a2e452c3e42d: fix(storage): delete a vast tenant from a pending record by name (@rlmcpherson)
- 18c2b6ee16314192ec62213f209ccf283a53ff22: fix(storage): delete the credentials secret when the connector is gone (@rlmcpherson)
- c5fec64e49a2777b1332c0dd665bad0cb852408e: fix(storage): describe the profile description for the admins who read it (@rlmcpherson)
- 4497b7cd0ecbfef0576e5063a678228b571b3c82: fix(storage): do not bind a storage to a terminating account (@rlmcpherson)
- 5a064d496152d6cdeec6fb28a15e27e38c75fa66: fix(storage): do not fail a call over when its answer was cut short (@rlmcpherson)
- 6766eb849df614aa180c83cf764accf5dca7a166: fix(storage): do not publish connected from a cooldown refusal (@rlmcpherson)
- 0c481a145bfa51950ff61341bd348e36870c83bc: fix(storage): do not retry a connector check on a malformed status (@rlmcpherson)
- e376c5deb8d19ec6ed015a1dbd11d895ac1158e4: fix(storage): drop a withdrawn grant's refusal once the grant is back (@rlmcpherson)
- 8baa4ba42a6cf1a27d359ac0679fab2098979270: fix(storage): drop the kms refusal once the kms is there (@rlmcpherson)
- e4526d6cac4ee54fc891cc6b74ba32bbb2de118b: fix(storage): drop the kms-not-ready refusal once the key is ready (@rlmcpherson)
- 701d3de6df64afee5c7ad6c223e0e5bcc5471431: fix(storage): end a vendor outage once the vendor answers (@rlmcpherson)
- 0c00918e6a8e72f59a45b22e4a3e5d611e30a8e7: fix(storage): end an outage when the vendor answers a delete (@rlmcpherson)
- 0181f775009e06e42058718a236db1dde9a303a2: fix(storage): fail a storage whose storage account has not heard from its vendor (@rlmcpherson)
- ff5cea1a70e69255ca776fce33a49cf845f47156: fix(storage): find accounts and storages under either tenant label (@rlmcpherson)
- 43590420c171885b6d29dd2b050fbb9ea7472aee: fix(storage): find the object session through a wrapping session (@rlmcpherson)
- f07e159384f5f37cf730071180c55cda43a9d590: fix(storage): finish a storage account delete whose vendor tenant is already gone (@rlmcpherson)
- ce05f3f05450944ac22402888e86bed8bb1cde56: fix(storage): finish a vast tenant delete whose tenant is already gone (@rlmcpherson)
- 5ac1ca56ee1324dba4d98b3bc4fd4cfa28c9348f: fix(storage): floor the weka ssd quota like the total quota (@rlmcpherson)
- 61eaaee375ab45be4213685151b250da81449391: fix(storage): floor the weka tenant quota and keep refused changes visible (@rlmcpherson)
- fcb9bbe19d930e2c3235ca6726a6c4ce8de658d7: fix(storage): follow every page of a vms list (@rlmcpherson)
- 88c8af5a46597cc9aca9571e1b96f44c4b0a56cb: fix(storage): follow the adoption and delete-blocked reasons in redact (@rlmcpherson)
- 5cf796b5f49414718037f00e42cd95cf7cc697ed: fix(storage): follow the adoption rule in the vast encryption test (@rlmcpherson)
- 7a3dc6165507070bed993aa757b5a3fbe4956a9f: fix(storage): follow the bound account rule in the retain delete test (@rlmcpherson)
- 6192f94aa5229f278b6f0ec7c9196fd297fc110c: fix(storage): follow the bucket revoke rename in the cooldown guard (@rlmcpherson)
- 8f2c5e9a2e52d17bce469e70491131e3020a05ca: fix(storage): follow the connector grant in the external platform test (@rlmcpherson)
- 041db6d44b63b660c74a63073b88e6032c225191: fix(storage): follow the connector grant in the invalid name test (@rlmcpherson)
- ce5eaa7fb3e26f0b223fcbd3c3ad6179594cdf1c: fix(storage): follow the credentials request in the cooldown guard (@rlmcpherson)
- 576346f5e00dbe1cf6c88d905cebbe09606880ee: fix(storage): follow the detach gate in the problem log test (@rlmcpherson)
- 4a72188239e37a59cf499b197e8d62be041024f5: fix(storage): follow the fault injector in the fresh vast view test (@rlmcpherson)
- 9667334f33ed210f1f47522d85d91f5e7332e4ea: fix(storage): follow the fault injector in the pending delete test (@rlmcpherson)
- 81b3f6c3074600078aae7ec67455d005ef84a559: fix(storage): follow the fault injector in the vast encryption tests (@rlmcpherson)
- 727d69a32810294c28eb8a2557180eb30866f1f8: fix(storage): follow the grant check in the reconcile mount test (@rlmcpherson)
- ffcf7a0f7f8863e85d330b1de37c03585626ee4c: fix(storage): follow the grant recheck in the client options tests (@rlmcpherson)
- 0f880f61468d8b136d475356b486cec426d1fb63: fix(storage): follow the held storage part in the attach status (@rlmcpherson)
- efbbbe02be87966a6dadc8b60ec020cc19e0aa36: fix(storage): follow the logged-once attach problems in the grant re-check (@rlmcpherson)
- 58613f26c8c2fac8ae52759da4e501e67bfa10d4: fix(storage): follow the neutral plugin error in the mount test (@rlmcpherson)
- 2c25eed82099067b23b5c7b59648f0a2d93fa625: fix(storage): follow the outage handling in the early delete test (@rlmcpherson)
- d0782ca5a5165974a78713adf44875bef2784374: fix(storage): follow the outage handling in the minted admin test (@rlmcpherson)
- 3058ad74d1dde1c1749e5a3c2af312dc2f59571b: fix(storage): follow the plugin mount step in the client options test (@rlmcpherson)
- 5b35229eea30e411e687d30943c3e6fce39e6436: fix(storage): follow the plugin mount step in the vast provider (@rlmcpherson)
- 42ad9c08b985f6abc0a4c4167c1bf7173f31445d: fix(storage): follow the ready volume rule in the join tests (@rlmcpherson)
- fc93a3060b0e50827dc4feccf6a94dda2a0e3ab5: fix(storage): follow the ready volume rule in the vast mount test (@rlmcpherson)
- ad0c1b9fabeb0d8599a7a8ae139ffe430dd11ac4: fix(storage): follow the recorded tenant in the minted admin test (@rlmcpherson)
- 3fa2c585059bdc8db8bbec4e7d4d09b6b288f162: fix(storage): follow the recorded tenant in the pending delete test (@rlmcpherson)
- 4f6c544afa3580a41795807499f9fd4b031c7f3a: fix(storage): follow the rendered size check for held storages (@rlmcpherson)
- 54e116a67689d6baec716e01eae07f116b0c1619: fix(storage): follow the required persist and url rule for s3 (@rlmcpherson)
- 900dacd872f04795013f866ebb6d62ecd922344f: fix(storage): follow the shared connector reason in the reasons test (@rlmcpherson)
- 26bc67e91d18b5682f9d0cb918b47c04b05aa434: fix(storage): follow the shared controller test helpers in vast tests (@rlmcpherson)
- a25258967e23720a53dab34fd402a31af564c1ee: fix(storage): follow the shared grant helper in the attach test (@rlmcpherson)
- 736af13c3068f5a86df8342edb66f10b427cd154: fix(storage): follow the shared grant helper in the kms refusal test (@rlmcpherson)
- fea1028f0253284882a8690a49d5d4c9a412ba95: fix(storage): follow the shared outage reason in the reasons test (@rlmcpherson)
- 56e4d31e41d09a700050e2e5226f20c8342405bb: fix(storage): follow the shared password generator in s3 on weka (@rlmcpherson)
- 31cf5a06ed744968e28d6bba15de0f61329ea861: fix(storage): follow the shared test helpers in the connected tests (@rlmcpherson)
- 08472ed35ab60cb644f4343752a3c7ea48787c35: fix(storage): follow the storage account rules package in credentials (@rlmcpherson)
- 47f7fc5aa72bf9e4744f1a5d778881db6deb2a09: fix(storage): follow the storage-named weka filesystem in s3 on weka (@rlmcpherson)
- a99e61efa90df1b54665074b691f90247084b44f: fix(storage): follow the storage-named weka filesystem in the csi identity test (@rlmcpherson)
- f521187b7624143b3d573c6b097b4d6f7bada3d7: fix(storage): follow the storage-named weka filesystem in the encryption tests (@rlmcpherson)
- 4a1cd67be8c6e8c7aee5678149279c28f1deee29: fix(storage): follow the storage-named weka filesystem in the mount grant test (@rlmcpherson)
- a70478cb97e822c0c44cc2031634ea69f192d177: fix(storage): follow the storage-named weka filesystem in the mount tests (@rlmcpherson)
- 852ab5ff47753f83527048ef7282fd4eed7dfbbb: fix(storage): follow the storage-named weka filesystem in the template variables tests (@rlmcpherson)
- 43898c7f7513b52b1edcb998a820ab1df1635e26: fix(storage): follow the tenant-first credentials name in problem detail (@rlmcpherson)
- 75bb9723d1dce91eff1e0a387a6d16a218bbd94f: fix(storage): follow the tenant-first credentials names in attach (@rlmcpherson)
- cbbf839e9cf54ca934aa6b1f12da8535419a3702: fix(storage): follow the tenant-first credentials names in join tests (@rlmcpherson)
- 7043f9f7d7d939bd74e4dd3ddb8aacd35b1130cd: fix(storage): follow the tenant-first credentials names in s3 tests (@rlmcpherson)
- cdd58bb15dfcb60663f69fe62e87c9bbca62cc30: fix(storage): follow the tenant-first credentials names in vast tests (@rlmcpherson)
- 5ab4e0b521ca2ab2ad77d2b5df01378f5ba7bcc3: fix(storage): follow the tenant-first fixture in the problem detail test (@rlmcpherson)
- caeabc1803c1400de69bf9726f5e74585e6f5a23: fix(storage): follow the tenant-scoped mount resolver in the mount tests (@rlmcpherson)
- ae004fdc2fe9008c4bb42731a5871968d183d744: fix(storage): follow the tenant-scoped mount resolver in the object mount tests (@rlmcpherson)
- efe382581642303e3055043f278f90b0a151ac30: fix(storage): follow the tenant-scoped mount resolver in the render error test (@rlmcpherson)
- a8eb82b068f881fc81729afa13908e7cc6a3cd61: fix(storage): follow the tenant-scoped mount resolver in the vast tests (@rlmcpherson)
- 88cd8ceec25fe1f31f3a306d39344796e65896d6: fix(storage): follow the volume wait and grant check in the tests (@rlmcpherson)
- 87e5f43ee9a4ae0849e19134bc96bc23abf2b671: fix(storage): follow the volume wait in the cooldown and outage tests (@rlmcpherson)
- 5770b5049b92bdd36ec028ddc8b5d2c161648de3: fix(storage): follow the volume wait in the csi identity test (@rlmcpherson)
- 14cfbaef479de23fc4f6c742d59217522f012d1d: fix(storage): follow the volume wait in the encryption tests (@rlmcpherson)
- ba50640b45da42957a4b3989cc14144dd74e9994: fix(storage): follow the volume wait in the s3 on weka tests (@rlmcpherson)
- c14ce4b532ea9ea12b0ea7f7d6fc97ad7bf13653: fix(storage): follow the volume wait in the shared bucket policy test (@rlmcpherson)
- eb618b60897227310489fb69ca557e8f20183718: fix(storage): follow the volume wait in the tenant reasons (@rlmcpherson)
- f665d4b08035abf94145aeebfc0e6680a9748782: fix(storage): give a storage account's copied outage its own reason (@rlmcpherson)
- bd02f2c504eed1e75c17c48e16d98972c22b26da: fix(storage): give every vast storage its own policy and quota name (@rlmcpherson)
- 5744c3d78336d565e35b8d7dd5cf6cbdd83589a2: fix(storage): grant a tenant's buckets from an uncached sibling list (@rlmcpherson)
- e8af91ebe89e29274f42de872334959a8ae7f647: fix(storage): grant a tenant's buckets through one s3 policy per user (@rlmcpherson)
- 4b830032e7fc5c5db398c8b8ba34c31ad7a0e4ac: fix(storage): grant only buckets of siblings with object access (@rlmcpherson)
- a1ee8344031ef8c919ba03d001b6c3e8466fe96d: fix(storage): guard the object side of a storage session (@rlmcpherson)
- 2290e424ce876713d74e67e8f2952cc48bb17aea: fix(storage): hold a storage account update to one vendor section (@rlmcpherson)
- c3c07f97d356d47f21ae9833dcbcc2f3c2734ec9: fix(storage): hold a tenant storage to its profile's vendor section (@rlmcpherson)
- ada31c2699d728d787656ae221c777921171b3a4: fix(storage): hold an attached storage on another storage system (@rlmcpherson)
- d091569803886a19ebc6109690e4fdac77345e7f: fix(storage): hold an attached storage through a connector mismatch (@rlmcpherson)
- 773aa262c42cf1a6be2433275617aa58d0a6c827: fix(storage): hold and record only the storages status.storage lists (@rlmcpherson)
- 78cbbe463a72f23b6dd52e2effc192262c21448b: fix(storage): hold only the platform's own documents for a storage (@rlmcpherson)
- 9a3b47fbf6cc00cfed7cfbbdcb7fcaf050baf02f: fix(storage): hold only the storage part of a blocked render (@rlmcpherson)
- bda21e54e7020dfec1cad03f42126477011801ac: fix(storage): hold the attach for a storage that cannot be resolved (@rlmcpherson)
- ff3a2dffa016cadcd348f52c005899ae659ca4a3: fix(storage): hold the attach of an instance without a tenant (@rlmcpherson)
- e9151b4696a0f368f7f758e56a03225ec6cbf015: fix(storage): hold the render while a whole attach cannot resolve (@rlmcpherson)
- f626459f0f4012d7c274eb8a55ef1ea184f8c671: fix(storage): hold the tenant's object lock across the policy swap (@rlmcpherson)
- 2b71ad3ef04153667ffa8e1bd8b81681e8d16b47: fix(storage): judge a profile delete's users across every tenant (@rlmcpherson)
- 450a679ab16a3a75dd713d225ab0deb15245b557: fix(storage): judge an unrecorded storage provider as the attach does (@rlmcpherson)
- 7e281317911d3103308c8c49a78313718e0f4afa: fix(storage): judge storage writers by the actor, not the ctx tenant (@rlmcpherson)
- 47efa0d5e7027b41f0f4f2d4dcba3c013676b517: fix(storage): judge the attach plan by the render that is kept (@rlmcpherson)
- 07f5cf4ec8658585288306dc677dcd4aec608cd3: fix(storage): keep a bad vast endpoint out of the error text (@rlmcpherson)
- 5d35f2fbe78118fb60822408bf5412b6bd54d08e: fix(storage): keep a bad weka endpoint out of the error text (@rlmcpherson)
- efdd45636d6907e41734590d47d29629fd3ed2a7: fix(storage): keep a copied outage until something answers (@rlmcpherson)
- e013d06dde4e56bbb417e56a69a63284b5c0dfcf: fix(storage): keep a dead connector from holding the controllers' queue (@rlmcpherson)
- 9f46e0ebfae7c29d79cb769dd42740cbcb0a99d9: fix(storage): keep a failed detach visible until the secret is gone (@rlmcpherson)
- 7e72e3262784b9aa30dec42c10af1070630b7a69: fix(storage): keep a failed grant read off tenant-readable conditions (@rlmcpherson)
- ba0e0c5908365956c1fa072417688c5381014eaa: fix(storage): keep a grown storage attached past a refused render (@rlmcpherson)
- 6b8042836b3281cc834ce03a7384d7c619d3e5d3: fix(storage): keep a reboot from hanging on the tenant storage unmount (@rlmcpherson)
- a4971324350737ec6a63770149084fd12e302c33: fix(storage): keep a storage connector's provider immutable (@rlmcpherson)
- 343bb1e3119698faf5f92866e5bb561a3b925fd4: fix(storage): keep a vast group only for a same-named tenant in it (@rlmcpherson)
- f076ee1ca3168385138dbfb8b3790c17e0358d41: fix(storage): keep client-mode keys out of the storage tier (@rlmcpherson)
- 3a2f455247dc0c28f1d88394ade3f6d78eda7c5b: fix(storage): keep client-mode options off the remote platform claim (@rlmcpherson)
- 6a5588cc78a19d3ecc65a66ff9a246ae58606e5a: fix(storage): keep connector and tenant apart in the storage account and credentials names (@rlmcpherson)
- 3f7b721a83f795fac2bf1758f9f077711fe81f67: fix(storage): keep connector names off the storage attached condition (@rlmcpherson)
- 6957f68f2ab740a2dcf9aa5cde73a55bce835a62: fix(storage): keep connector names out of the credentials read errors (@rlmcpherson)
- d3464e15bfa6848de883325460e13f86b75529a9: fix(storage): keep connector names out of the mount errors a tenant reads (@rlmcpherson)
- 4dabeed791daedbf9aeeca3472a2fa35df9aaf61: fix(storage): keep generated vast encryption groups apart from named ones (@rlmcpherson)
- bbe57f475637905f9e1190d5390bdfcc5752834b: fix(storage): keep holding an attached storage on another storage system (@rlmcpherson)
- ac6e65c9c9727dcd23c9e130d3b05606351d6abf: fix(storage): keep mount output off the storagemounted condition (@rlmcpherson)
- eb094b7e27a2a45008dfdd8b06a0b19dc677aaf9: fix(storage): keep object access while the vendor does not answer (@rlmcpherson)
- dce4e50a79ab753566ee974a81608c89f0bfaa9a: fix(storage): keep one copy of each held document per render (@rlmcpherson)
- c494b7c5c89329aecbc20ff1d557c22f4ff935e5: fix(storage): keep stateless client mount options off tenant cluster volumes (@rlmcpherson)
- 01acad88ec3948b57b0fceb85947c522a43e812e: fix(storage): keep tenant storage working once its profile is gone (@rlmcpherson)
- d75d12c63b01b8c87d3d2ea6d84a39d3fb169eb0: fix(storage): keep the attached storage through a render refusal (@rlmcpherson)
- 2035caa1082c3fe34a6b06bff15ddb493637fcfe: fix(storage): keep the connector's name out of the tenant cluster (@rlmcpherson)
- d179a40f49d004336d846515561e4defb03526be: fix(storage): keep the csi secret in place while an attach is held (@rlmcpherson)
- 107576a1dfd48f84e07a8b7da9d1373b3e91315b: fix(storage): keep the driver release out of a deploy conflict message (@rlmcpherson)
- 1bc9aa2dead842b4fd25b437996df9e83f975fc3: fix(storage): keep the driver release out of a deploy conflict message (@rlmcpherson)
- 9c7920b05f3915f13172bd070bf25bbc0597a16d: fix(storage): keep the last phase while a storage system does not answer (@rlmcpherson)
- 83b7bf94f469f7edbc25e13e3216f4fe53d60ed4: fix(storage): keep the live vast encryption state out of the applied record (@rlmcpherson)
- 42c29d4f3e6e6b4b23fdc2af55c32ea9b0b8f34e: fix(storage): keep the machine's mount output off the tenant's node claim (@rlmcpherson)
- 04a5f6abab3ddab9198c557937a2fea44e8d54d9: fix(storage): keep the mount secret out of a claim's cloud-config parse error (@rlmcpherson)
- 645f26d9f9936fa85c41fda1f2ebe775c073eb40: fix(storage): keep the mount secret out of a claim's render error (@rlmcpherson)
- 2c123ba494a42b6b9686bc7676089d3bfc10dcaf: fix(storage): keep the mount secret out of a merge parse error (@rlmcpherson)
- bb47de388795debc5549b60573a030e63f9ef131: fix(storage): keep the s3 env files off the template variables (@rlmcpherson)
- d7b1a6d10db08710b09a08c5a869cf74bc82d354: fix(storage): keep the storage account name rule in its rest package (@rlmcpherson)
- db5637c452f9a17d59c916d1035e505ed4ad7603: fix(storage): keep the storage mount properties on the local platform (@rlmcpherson)
- 8ede6d3863b1e850c1a5726b95cbcb7a452de3bf: fix(storage): keep the tenant cluster dial error off the condition (@rlmcpherson)
- fe5e19666353e78f044b81fa7ae49da8c0809b0d: fix(storage): keep the vendor out of a refused client options value (@rlmcpherson)
- 893f8f785d6c611e7871206307449cec0fdce833: fix(storage): keep the volume wait's start through a failed outage (@rlmcpherson)
- 6dcda7b2ee7178c48c77dac2d523145ec957084a: fix(storage): keep user info out of the retried endpoint error (@rlmcpherson)
- 75ce4c0ce0f13a6ab6aaa5c440a2adef2cc24a12: fix(storage): keep vendor details out of the tenant cluster's storage condition (@rlmcpherson)
- e0dbe7b675902e59a4963151f565e63701eb3019: fix(storage): keep vendor text out of tenant-read mount script errors (@rlmcpherson)
- 0bb2bafd9c710b3f78c1adc088b34fbb87c80ada: fix(storage): keep who created a vast tenant fixed after creation (@rlmcpherson)
- b171d505f9a9e7ffa42da7587232f9aaad9a0868: fix(storage): keep who created a vendor tenant fixed after creation (@rlmcpherson)
- 25555b26896c6a8920c3a72ce8fc0e8d188bc94c: fix(storage): label the credentials secret under the vcluster.com domain (@rlmcpherson)
- 3500df44e63141ff4853a478171d9481bd96ad8a: fix(storage): leave a storage whose grant was withdrawn out of a machine's mounts (@rlmcpherson)
- 17b3a20dd7276e04631cf63cdcbb968d40153e39: fix(storage): leave a template-owned mount step out of the mount report (@rlmcpherson)
- 2a16e1798efaea0ba290511cbe2643eb02292131: fix(storage): leave connector names out of the one-storage-system refusal (@rlmcpherson)
- 01dbca7783c2e5fe0b0e84066601302021c87880: fix(storage): leave the cooldown count alone for a busy connector (@rlmcpherson)
- d3bb42fe3b6acd5c7730e5245922e392ab891521: fix(storage): let a guarded session unwrap to the vendor session (@rlmcpherson)
- 3d156f1a086c076a38c71a270c459ddcc47ed113: fix(storage): let a held storage finish past a terminating reservation (@rlmcpherson)
- b2354767695e4ede5f22d6ea0a85c89c4751ea0b: fix(storage): let an unstarted fake close without a server (@rlmcpherson)
- 12b2e3bc88af7c7a607f287b5205cbb2b8939036: fix(storage): let only granted storages pick a cluster's connector (@rlmcpherson)
- af58dcb8fda99d75ce9c5276ae03dc28665b9a03: fix(storage): let spec.import change while nothing is recorded (@rlmcpherson)
- 96c876a6ec32508e7a364e45130238dba468f738: fix(storage): let the connector check read a scoped storage's tenant (@rlmcpherson)
- 6241a7bd2246c687bc0c1516e3c0a21589b26e9f: fix(storage): let the vendor name the protocol s3 depends on (@rlmcpherson)
- 880e268f65fbdb4058b2aad6c01d7fab0d207265: fix(storage): limit the tenant prefix to characters a script can carry (@rlmcpherson)
- a906cf0656d2f01fc79da9d2adea7d52ef0db4eb: fix(storage): limit the tenant s3 policy to object actions (@rlmcpherson)
- 2f3ed147c654d7951fc00f61a45c3b8a6e0416a6: fix(storage): list the weka-kms choices from their table and test the log (@rlmcpherson)
- 44a2395453fe80fb6810bdd37514178e6d73dcd0: fix(storage): log a storage attach problem once, with its condition (@rlmcpherson)
- 2fd9ebd1ec46a5922109f746e7b86a54c9d9e698: fix(storage): log an object access failure where it is recorded (@rlmcpherson)
- ed5d18e7c88a1d3023737240b4f408a0ef1698eb: fix(storage): log attach problems only where the render is kept (@rlmcpherson)
- 291c51e21a91cf3a695fbc20999ae5bc6b52567e: fix(storage): log the mount identity in against the backend (@rlmcpherson)
- dea67df8f53fe3b8ccce257450b55bf36c01c267: fix(storage): make vast EnsureTenant read only its own documents (@rlmcpherson)
- 18f13a9bf199ff3dc402bc0d4e3c5c325720b0e6: fix(storage): map the invalid storage account name to a tenant reason (@rlmcpherson)
- 74f1e86dcf8c107881febe99ca4ea3920c8e97a3: fix(storage): mark the errors plugins raise from a vendor answer (@rlmcpherson)
- 78a93d96180989039cf8a5d903f6930a32fdf41c: fix(storage): mark the vast encryption group answers (@rlmcpherson)
- 6ed6619e558c918eb52d2cdc461d562b66071ebd: fix(storage): mark the volume adoption refusals as vendor answers (@rlmcpherson)
- 0e948a6aa55bfc0a0ffe8711682871fa32dd1a53: fix(storage): mint one s3 identity per tenant at a time (@rlmcpherson)
- 0991017bc7b32accb18e68aaac082734674af02e: fix(storage): mount from ipv6 backends (@rlmcpherson)
- df50c6511fe12d764212e03520f009b7627b56ca: fix(storage): mount only storages whose volume is ready (@rlmcpherson)
- eb133a6a154f9eaee2907cd4b52a16138cd4dba2: fix(storage): name a weka filesystem after its storage alone (@rlmcpherson)
- 82e7fc459e441e4175d33dba184782bcef65db0f: fix(storage): name an undelivered csi secret next to an earlier problem (@rlmcpherson)
- 7c384e049100e2ccc0d5cf98a2bccd175846d0df: fix(storage): name nothing left out on a restored grant with a report (@rlmcpherson)
- d6a3fb394a71ee1d600be36410c791e6f5c57db7: fix(storage): name only recorded left-out storages on a restored grant (@rlmcpherson)
- bcb2efb7f3515d99e22c9b668a8045abb25efd24: fix(storage): name only storages left out at the join on mount reports (@rlmcpherson)
- bac8bda57fec076b4bd8f20ec1c093005d1404dd: fix(storage): name the kms kind without an article (@rlmcpherson)
- 728d3b39bd5b3db5c36b664d6bdc24f1b9d8da16: fix(storage): never claim a vast tenant or view found existing (@rlmcpherson)
- fc4eeed3aa24f200a7030f47727f046266d76d0f: fix(storage): never claim a vendor tenant or filesystem found existing (@rlmcpherson)
- 50485516e41f8f36ad43e1a5c8e4137c15abb3b9: fix(storage): notice a tenant's connector grant change at once (@rlmcpherson)
- 5c75669af759291e5f5c718b8ad466b1d033c116: fix(storage): persist the volume record before the vast v...