{
  "id": 11687521,
  "title": "Making My Platform API Reconcile Application Updates",
  "url": "https://urgent.news/2026/10/03/making-my-platform-api-reconcile-application-updates",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-03T13:05:45.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/shubhamgoel23/making-my-platform-api-reconcile-application-updates-c9b"
  },
  "original_language": "en",
  "account": "In the previous post, the author built a basic behavior for the Platform Lab. They created an API specification for an Application called \"greeting-service\", which included details such as image, replicas, and port configurations. This resulted in the creation of Kubernetes resources like a Deployment and a Service. However, the author raised an important question: what happens when the Application changes?\n\nThe author explored how to reconcile application updates, ensuring that the platform updates existing resources instead of deleting and recreating them. They used the kubectl patch command to modify the Application's specifications, such as image version, replicas, and port configurations. After updating the Application, the author observed that Kubernetes incremented the metadata.generation field, indicating that the desired Application specification had changed.\n\nThe author then examined the controller logic, which relied on the Application's spec to build the desired state of dependent resources like Deployments and Services. When the Application changed, the controller recalculated the desired state of these resources and reconciled them with the actual resources. This approach simplified the controller's implementation, as creation and updates used the same model.\n\nAfter updating the Application, the author verified the changes in the Deployment and Service resources using kubectl commands. They confirmed that the Deployment had the correct number of replicas, the updated container image, and the specified port configurations. They also verified that the Service used the updated port and targetPort values.\n\nTo ensure that the operator was updating existing resources instead of deleting and recreating them, the author captured the Deployment's UID before the update. After applying the changes, the UID remained the same, indicating that the existing resources were updated rather than recreated.\n\nIn summary, the author demonstrated that the Platform API could effectively reconcile application updates by updating existing Kubernetes resources instead of recreating them. This approach simplified the controller's implementation and ensured that the platform handled higher-level changes, such as updating the port configuration, with minimal resource modifications.",
  "summary": "In the previous post, I built the first real behavior for Platform Lab. A developer could create: apiVersion : platform.shubforge.dev/v1alpha1 kind : Application metadata : name : greeting-service spec : image : greeting-service:1.0.0 replicas : 1 port : containerPort : 8080 and the Platform Operator would create: Application | v Platform Operator | +------ Deployment | +------ Service That was…",
  "key_points": [
    "Platform API reconciles application updates by modifying existing resources",
    "kubectl patch command updates Application specifications like image, replicas, and ports",
    "Controller recalculates desired state and reconciles with actual resources"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}