Skip to content

k8s: server-side apply + finalizers not honored for typed core kinds; apply-create 404s #330

Description

@NitinKumar004

Surfaced by a real-kubectl E2E while reviewing #314. Pre-existing (not introduced by #314), so kept out of that PR.

Goal: kubectl apply --server-side and finalizer-gated delete should behave for the common typed kinds the way they already do for registry-backed kinds.

Today

  • SSA field ownership (managedFields, conflict/force, field-removal, Update entries) only runs via the registry path (registryPatchserverSideApply). Typed handlers (ConfigMap, Secret, Service, Deployment) do a plain merge with no ownership.
  • Finalizers are honored only on registry kinds + typed Namespace/Pod; typed ConfigMap/Secret/Service/Deployment are hard-deleted despite metadata.finalizers.
  • kubectl apply --server-side of a new registry object returns 404 (create-on-apply not wired).

Ops

  • Route typed handlers through serverSideApply for the apply-patch content-type.
  • Honor finalizers on typed ConfigMap/Secret/Service/Deployment delete.
  • Wire apply-create so an apply to a missing object creates it instead of 404.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions