canonical / canonical/charm-integration-testing
Known limitation: matching interface names does not guarantee a supported integration topology
- Dominant language
- Python
- Stars
- 6
- Forks
- 1
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 98
Description
## Description
Juju allows integrating any two charm endpoints that share the same interface name, matching
purely on that string. This doesn't mean every such pairing represents a real, supported
topology. For example, the `k8s-service` interface is used by several kubeflow charms
(`kfp-api`, `kfp-ui`, `kubeflow-profiles`, `katib-controller`, `katib-db-manager`,
`istio-pilot`, `istio-gateway`, etc.) for different, incompatible service-discovery purposes:
`kfp-api:kfp-viz` expects a counterpart tagged with the `kfp-viz` feature, while
`katib-db-manager:k8s-service-info` provides something unrelated. Because our test scheduler
is unaware of this and generates test plans based only on what Juju's interface matching
permits, it can produce a plan pairing charms that were never meant to integrate.
The bundle builder correctly rejects these at build time via feature-tag constraints in the
charm overrides, e.g.:
```
UncompletableBundleError: Charm endpoints kfp-api:kfp-viz and katib-db-manager:k8s-service-info
have incompatible feature 'kfp-viz'
```
Example: https://test-observer.canonical.com/#/charms/409557?testExecutionId=900685&testResultId=13063387
## Why won't-fix
Fixing this at the source would require the scheduler to understand charm-specific integration
semantics beyond interface-name matching, which Juju itself doesn't model. The bundle builder's
feature-tag constraints are the correct layer to catch this, and they already do.
## Purpose
This issue is an attachment target: test executions failing at `test_build_bundle` with an
"incompatible feature" error between two neighbor endpoints on the same shared interface should
be attached here instead of triaged individually.
Contributor guide
Research direction
Start with the test_build_bundle failures and the incompatible feature error described in this issue, then review the bundle builder's charm override feature-tag constraints. This issue requests no code change; it is complete when matching failures caused by incompatible same-interface endpoints are attached here rather than triaged individually.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100