Skip to content

Commit 190c7df

Browse files
committed
Add Kubernetes AgentInterface E2E backend (#24639)
* Add Kubernetes Agent E2E backend * Use draft PR number for changelogs * Remove unused Velero Kind port mapping * Use shared named-port discovery helper * Test generated discovery behavior * Test generated discovery through public contract * Extract Velero migration into stacked PR * Encapsulate Agent backend startup policy * Add Kubernetes discovery candidate stability helper * Document Kubernetes candidate stability support * Clean up unsupported CI environments * Clarify Agent interface creation * refactor(e2e): move Kubernetes discovery helper to consumer PR * refactor(e2e): avoid caching Kubernetes Agent properties * Restore unsupported CI backend state handling * Clarify Kubernetes Agent constraints * refactor(ddev): use singular Agent build config keys * Remove Kubernetes Agent pod label option * Remove custom Kubernetes Agent namespace option * Deduplicate Agent log commands * Simplify Kubernetes metadata access * refactor(ddev): remove Kubernetes Agent owner ID * Simplify Kubernetes Agent cluster ownership * Update logs tests to Python 3.13 * Refine Kubernetes command contract tests * Test Kubernetes topology command directly * Reject non-Kind Kubernetes Agent contexts * Relax Kubernetes orchestration assertions * Update Kubernetes Agent description for E2E tests * Simplify Kubernetes local package metadata * Restore environment state cleanup ordering * Wait for Kubernetes Agent before restart * Fail fast on unsupported Agent supervision * Simplify Kubernetes Agent restart checks * Keep Kubernetes Agent restarts repeatable * Detect Kubernetes Agent container state loss * Rename Kubernetes Agent module constants * Update Kubernetes node support description Clarified the implementation details regarding Kubernetes node support. * Decouple Kubernetes Agent tests from commands * Expose shared Agent image normalization * Require a Kubernetes metadata mapping Reading self.metadata['kubernetes'] unguarded turned a missing metadata block into a bare KeyError, so an environment that selects agent_type 'kubernetes' without the accompanying mapping failed with 'Unable to start the Agent: kubernetes' and gave a raw traceback from ddev env shell, which only handles CalledProcessError. Validate the mapping where it is read so the failure names the missing contract instead. * Stamp the prepared marker before restarting the Agent start() stamped PREPARED_MARKER after _restart_agent_process(), so a container replaced during the restart was marked prepared. The marker lives in the container filesystem and the pod declares no volumes, so a replacement loses the copied conf.yaml, auto_conf.yaml and the editable installs, while _wait_for_agent() still succeeds against the fresh container. Every later _require_prepared() check then passed and tests silently exercised the Agent-shipped integration with no configuration. Stamp the marker once preparation is complete and assert it after the restart, matching the invariant restart() already relies on. Checking after the stamp instead would only observe the gap between the two commands. * Share Agent image normalization through the interface * Clarify the prepared marker invariant * Move Agent image normalization to a shared module * Fail fast on unsupported Kubernetes Agent inputs * Clarify shared-log backend limitation * Preserve Agent check failures during config cleanup * Clarify current Kubernetes Agent limitations * Keep kubectl warnings out of structured output 861bd5a
1 parent 12db0c5 commit 190c7df

4 files changed

Lines changed: 23 additions & 6 deletions

File tree

ddev/cli/index.html

Lines changed: 2 additions & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)