Skip to content

feat: implement InternalAppService for Knative app lifecycle#7175

Merged
AdilFayyaz merged 11 commits intov2from
adil/apps-internal-service
Apr 17, 2026
Merged

feat: implement InternalAppService for Knative app lifecycle#7175
AdilFayyaz merged 11 commits intov2from
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

Comment thread app/internal/service/internal_app_service.go Outdated
Comment thread app/internal/service/internal_app_service.go
Comment thread app/internal/setup.go Outdated
Comment thread app/internal/service/internal_app_service.go Outdated
Base automatically changed from adil/apps-kservice-lifecycle to v2 April 17, 2026 17:18
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.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>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.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>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.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>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
Signed-off-by: M. Adil Fayyaz <62440954+AdilFayyaz@users.noreply.github.com>
@AdilFayyaz AdilFayyaz force-pushed the adil/apps-internal-service branch from 80d58ad to bfeafe3 Compare April 17, 2026 20:25
@AdilFayyaz AdilFayyaz merged commit 79c801e into v2 Apr 17, 2026
20 checks passed
@AdilFayyaz AdilFayyaz deleted the adil/apps-internal-service branch April 17, 2026 22:54
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.

2 participants