Run Weaviate E2E with the Kubernetes Agent backend - #24830
Draft
vitkyrka wants to merge 1 commit into
Draft
Conversation
Switch from host-side kube_port_forward to the new Kubernetes Agent E2E backend: the API endpoint uses Service DNS, the metrics endpoint falls back to the pod IP since no Service targets that port, and the readiness check plus data-seeding POST now run from disposable in-cluster pods since the host can no longer reach the cluster directly. Environment: Datadog workspace Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
Author
|
@codex review |
Contributor
Validation ReportAll 21 validations passed. Show details
|
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 95d4230 | Docs | Datadog PR Page | Give us feedback! |
evalya-impact-summaryevalya impact analysis |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Runs the Weaviate Kind E2E with the Kubernetes Agent backend introduced by #24639.
weaviate_api_endpointnow uses the in-cluster Service DNS endpoint,http://weaviate.weaviate.svc.cluster.local:80, backed by theweaviateService (port: 80->targetPort: 8080).openmetrics_endpoint(port 2112) has no matching Service, so it falls back to the pod IP of the single-replicaweaviateStatefulSet, fetched viakubectl get pods -l app=weaviate. Since the host can no longer reach the cluster directly at all, this pod-IP lookup (and the readiness/seeding steps below) now run insidesetup_weaviate, which only executes on the initialddev env start; the resolved pod IP is cached withsave_state/get_stateso later invocations of thedd_environmentfixture (e.g. duringddev env stop, which runs in a fresh process after the cluster is already torn down) don't try to re-resolve it against a cluster that no longer exists.POSTto/v1/batch/objectspreviously ran on the host viarequests. Both now run from disposable pods inside the cluster instead: readiness uses abusyboxpod runningwget(matching the pattern from Run Calico E2E with the Kubernetes Agent backend #24673), and seeding uses acurlimages/curlpod runningcurl -X POSTwith the batch payload passed as a-dargument (no shell involved, so the JSON needs no escaping). The seeding command now usescheck=Trueso a failed POST fails the fixture loudly instead of silently producing zero metrics later.USE_AUTHcontinues to add anAuthorization: Bearer test123header to both the seeding request and the Agent's ownweaviate_api_endpointinstance config; the liveness probe used for readiness does not require auth (the StatefulSet's ownlivenessProbehits it without credentials either).Validation, for both E2E environments (
py3.13-1.20-no-authandpy3.13-1.20-auth):ddev test -fs weaviateddev --no-interactive test weaviate(8 passed, 1 E2E skipped)ddev env start --dev weaviate py3.13-1.20-no-authddev env test --dev weaviate py3.13-1.20-no-auth(1 passed, 8 deselected)ddev env stop weaviate py3.13-1.20-no-authddev env start --dev weaviate py3.13-1.20-authddev env test --dev weaviate py3.13-1.20-auth(1 passed, 8 deselected)ddev env stop weaviate py3.13-1.20-authMotivation
This PR migrates Weaviate to the new backend, following the same pattern already applied to argo_rollouts (#24674) and calico (#24673), plus the pod-IP fallback pattern from velero (#24645) for the port with no Service. Running the Agent in the same Kind cluster removes the long-lived host-side port-forwards; since the host can no longer reach the cluster at all, the setup/readiness/seeding steps that used to run
requestscalls from the host now run from disposable in-cluster pods instead.Review checklist (to be filled by reviewers)
qa/requiredif this PR needs QA validation, orqa/skip-qaif it does not. Exactly one of the two is required.backport/<branch-name>label to the PR and it will automatically open a backport PR once this one is merged