canonical / canonical/charm-integration-testing

Known limitation: matching interface names does not guarantee a supported integration topology

Open
#887 0 comments 0 reactions 0 assignees View on GitHub
wontfix
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.