<#7175 feat: implement InternalAppService for Knat...
# flyte-github
a
#7175 feat: implement InternalAppService for Knative app lifecycle Pull request opened by AdilFayyaz 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 •
main
• #6583 • feat: implement InternalAppService for Knative app lifecycle 👈 • #7176 • #7188 • #7197 flyteorg/flyte