Describe the bug: Two related issues in _sync(). First, Helm 4.2.0 changed sub-chart resolution — helm dependency update downloads .tgz archives into charts/, but Helm 4 requires extracted directories. The previous code passed --dependency-update directly to helm upgrade/helm install, which downloads the archives and immediately tries to render them, causing the upgrade to fail. Second, _create_pipeline_demo_crs() applies Pipeline and PipelineRun CRs that reference s3://default/bert_local.tar without first uploading the tar to MinIO. The Cadence workflow starts and immediately fails on the S3 fetch.
To reproduce: (1) Run ma sandbox sync with Helm 4.2.0+ installed — the upgrade fails with a sub-chart-not-found error even though .tgz files are present in charts/. (2) Run ma sandbox demo pipeline on a fresh sandbox — the Cadence starlark-workflow activity fails immediately with an S3 object-not-found error; the MinIO default bucket is empty.
Expected behavior: ma sandbox sync completes successfully with Helm 4.x. ma sandbox demo pipeline uploads all demo tars to MinIO before applying CRs, so the workflow can fetch them.
Affected file: python/michelangelo/cli/sandbox/sandbox.py
Additional context: Fix for issue 1: add _helm_extract_dependencies() which runs after helm dependency update and extracts every .tgz in charts/ into a directory, then removes the archive; remove --dependency-update from the helm commands. Fix for issue 2: add _upload_demo_tars(demo_dir) which uploads all *.tar files in the demo directory to MinIO (http://localhost:9091, minioadmin/minioadmin) before CRs are applied; call it at the top of _create_pipeline_demo_crs().
Describe the bug: Two related issues in
_sync(). First, Helm 4.2.0 changed sub-chart resolution —helm dependency updatedownloads.tgzarchives intocharts/, but Helm 4 requires extracted directories. The previous code passed--dependency-updatedirectly tohelm upgrade/helm install, which downloads the archives and immediately tries to render them, causing the upgrade to fail. Second,_create_pipeline_demo_crs()applies Pipeline and PipelineRun CRs that references3://default/bert_local.tarwithout first uploading the tar to MinIO. The Cadence workflow starts and immediately fails on the S3 fetch.To reproduce: (1) Run
ma sandbox syncwith Helm 4.2.0+ installed — the upgrade fails with a sub-chart-not-found error even though.tgzfiles are present incharts/. (2) Runma sandbox demo pipelineon a fresh sandbox — the Cadencestarlark-workflowactivity fails immediately with an S3 object-not-found error; the MinIOdefault bucketis empty.Expected behavior:
ma sandbox synccompletes successfully with Helm 4.x.ma sandbox demo pipelineuploads all demo tars to MinIO before applying CRs, so the workflow can fetch them.Affected file:
python/michelangelo/cli/sandbox/sandbox.pyAdditional context: Fix for issue 1: add
_helm_extract_dependencies()which runs afterhelm dependency updateand extracts every.tgzincharts/into a directory, then removes the archive; remove--dependency-updatefrom the helm commands. Fix for issue 2:add _upload_demo_tars(demo_dir)which uploads all*.tarfiles in the demo directory to MinIO (http://localhost:9091, minioadmin/minioadmin) before CRs are applied; call it at the top of_create_pipeline_demo_crs().