Skip to content

feat: implement InternalAppService for Knative app lifecycle#7175

Open
AdilFayyaz wants to merge 3 commits intoadil/apps-kservice-lifecyclefrom
adil/apps-internal-service
Open

feat: implement InternalAppService for Knative app lifecycle#7175
AdilFayyaz wants to merge 3 commits intoadil/apps-kservice-lifecyclefrom
adil/apps-internal-service

Conversation

@AdilFayyaz
Copy link
Copy Markdown

@AdilFayyaz AdilFayyaz commented Apr 8, 2026

Depends on: #7166

Why are the changes needed?

Apps need a data plane implementation that manages long-running containerized workloads (serving endpoints, LLM inference, dashboards) via Knative KService CRDs, with no database dependency — all app state lives in K8s.

What changes were proposed in this pull request?

  • Update app/config/config.go to expose the Base Domain for Ingress
  • Update app/internal/k8s/app_client.go: extend List with K8s continue-token pagination (limit/token params, client.Limit/client.Continue options) and extend Watch with optional appName label filter for single-app scoping
  • Add app/internal/service/internal_app_service.go implementing all AppService
    RPCs against the K8s client: Create (deploy + return PENDING + deterministic public URL), Get, Update (branches on Spec.DesiredState — STOPPED calls Stop, otherwise Deploy), Delete, List (project/domain filter + pagination), Watch\ (initial snapshot + live K8s event stream)
  • Add app/internal/setup.go wiring the above behind a feature flag and mounting the handler at /internal/flyteidl2.app.AppService/ to avoid collision with the control-plane AppService on the same mux

How was this patch tested?

  • go test ./app/internal/k8s/... — existing 19 tests verify List pagination and Watch appName filter changes don't regress
  • go test ./app/internal/service/... — 16 new tests covering all InternalAppService RPCs: validation, DesiredState branching in Update, pagination in List, initial snapshot + AppId scoping in Watch (uses httptest + real connect client for streaming)

Setup process

Screenshots

Check all the applicable boxes

  • I updated the documentation accordingly.
  • All new and existing tests passed.
  • All commits are signed-off.

Related PRs

Docs link

AdilFayyaz and others added 3 commits April 8, 2026 14:58
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added Merged changes that add new functionality flyte2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant