canonical / canonical/charm-integration-testing
minio (ckf-1.10/stable) install hook fails with `pod-spec-set` not found under Juju 4.x
- Dominant language
- Python
- Stars
- 6
- Forks
- 1
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 96
Description
**Note: This issue was generated with AI assistance (GitHub Copilot) based on automated log analysis and triage.**
Filed by @canonical/solutions-qa
---
## Problem
The `minio` charm (`ckf-1.10/stable`, rev 583) is incompatible with Juju 4.x. Its install hook calls `self.model.pod.set_spec()` which invokes the `pod-spec-set` tool — a Podspec API removed in Juju 4.0. This causes the install hook to crash on **every attempt**, preventing S3 credentials from being configured, which blocks downstream `tempo-coordinator-k8s` (and ultimately `loki-k8s`) from ever reaching active status.
**Test Observer**: https://test-observer.canonical.com/#/charms/406840?testExecutionId=486308&testResultId=10651698
---
## Evidence
### Exact traceback (from juju debug-log, repeated on every retry)
```
unit.s3-integrator-minio/0.juju-log ERROR juju-exec: charmed-minio._daemon_.service: main module raised exception
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-s3-integrator-minio-0/charm/./src/charm.py", line 153, in main
self.model.pod.set_spec(spec)
...
RuntimeError: command not found: pod-spec-set
unit.s3-integrator-minio/0.juju-log hook "install" (via hook dispatching script: dispatch) failed
```
### Juju status
```
s3-integrator-minio/0* error idle unit.s3-integrator-minio/0 hook failed: "install"
s3-integrator/0* blocked idle Missing parameters: ['access-key', 'secret-key']
neighbor/0* blocked idle tempo-coordinator-k8s/0 [s3] S3 not ready (probably misconfigured)
target/0* active idle loki-k8s/0 (healthy — not at fault)
```
### Bundle details
- **Failing charm**: `minio` rev 583, channel `ckf-1.10/stable` (deployed as `s3-integrator-minio`)
- **Environment**: `juju:4/stable ubuntu:24.04 kubernetes`, Juju version 4.0.5
- **Artefact under test**: `loki-k8s` rev 220, track `dev/edge`
---
## Root Cause
The `minio` charm from the `ckf-1.10/stable` track is a legacy Kubeflow 1.10 charm. It uses the [Juju Podspec API](https://documentation.ubuntu.com/juju/en/latest/reference/glossary/#podspec-charm) (`model.pod.set_spec()`) in its install hook (`src/charm.py` line 153). The `pod-spec-set` hook tool was **removed in Juju 4.0**, so any environment running `juju:4/stable` will consistently fail to install this charm.
---
## Impact
- **Failure rate**: 5 of the last 10 executions for `loki-k8s dev/edge` failed due to this (executions 486308, 486304, 486269, 486262, 486178)
- **Scope**: Any test bundle that uses `minio` from `ckf-1.10/stable` as an S3 backend will fail under Juju 4.x
- `loki-k8s` itself (`target/0`) reaches `active/idle` and is **not at fault**
---
## Suggested Fix
Replace the `minio` charm in the `loki-k8s` test bundle with a Juju-4-compatible S3 backend. Options:
1. Use `minio` from a more recent channel that has been rewritten as a [sidecar charm](https://documentation.ubuntu.com/juju/en/latest/reference/glossary/#sidecar-charm)
2. Use an alternative S3-compatible backend charm that supports Juju 4.x
3. Pin the `loki-k8s` Juju 4.x test environment to a version of the bundle that uses a compatible S3 backend
---
## Classification
**DEPLOYMENT_CONFIG** — test bundle includes a Juju-4-incompatible neighbor charm. The target charm (`loki-k8s`) is healthy and not at fault.
Contributor guide
Research direction
Read the minio charm's src/charm.py around line 153 and inspect the loki-k8s Juju 4 test bundle that deploys the ckf-1.10/stable backend. Confirm the install-hook failure under Juju 4.0.5, choose a compatible S3 backend or bundle revision, then rerun the affected integration test and verify that the S3 and dependent applications reach active status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, python
- Domain
- devops, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100