github.com/banzaicloud/operator-tools@v0.28.10/pkg/reconciler/README.md (about) 1 2 ## ResourceReconciler 3 4 `ResourceReconciler` reconciles a single Kubernetes object against the API Server. 5 6 It creates the object if it doesn't exist or removes it in case its desired state is absent. 7 8 It uses the [ObjectMatcher](https://github.com/banzaicloud/k8s-objectmatcher) library to be able to tell if an already 9 existing object needs to be updated or not. 10 11 It depends on [logr](github.com/go-logr/logr) logger and the [controller-runtime](sigs.k8s.io/controller-runtime) client 12 that is available in a typical [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) or [operator-sdk](https://github.com/operator-framework/operator-sdk) project. 13 14 Example: 15 ```go 16 package main 17 18 import ( 19 corev1 "k8s.io/api/core/v1" 20 github.com/go-logr/logr 21 "github.com/banzaicloud/operator-tools/pkg/reconciler" 22 runtimeClient "sigs.k8s.io/controller-runtime/pkg/client" 23 ) 24 25 func example(client runtimeClient.Client, logger logr.Logger) { 26 resourceReconciler := reconciler.NewReconcilerWith(client, reconciler.WithLog(logger)) 27 28 serviceObject := &corev1.Service{ 29 Spec: corev1.ServiceSpec{ 30 ... 31 }, 32 } 33 34 result, err := resourceReconciler.ReconcileResource(serviceObject, reconciler.StatePresent) 35 } 36 37 ```