- a Deployment to run pods
- a ClusterIP Service to provide stable networking on port 80
- a ConfigMap to hold a simple default welcome page
image and replicas. image determines the container image the Deployment runs. replicas determines how many pods the Deployment maintains. With those sensible defaults in place, the reconcile loop can focus on its core job: read the WebApp spec, construct the desired child objects, create any missing children, and attach ownerReferences so Kubernetes garbage-collects them when the WebApp is deleted.

- Fetch the WebApp custom resource.
- Build the desired child objects (Deployment, Service, ConfigMap).
- Create any children that are missing or update those that drift from the desired state.
- Attach ownerReferences so the WebApp remains the single source of truth and Kubernetes handles cleanup.
Run these commands in sequence while developing and testing your operator:Each command validates a different layer of the operator: code generation, CRD manifest creation, compilation, and runtime behavior.
