Documentation ¶
Index ¶
- Constants
- func AddFinalizer(obj client.Object, finalizer string)
- func CMHash(cm *corev1.ConfigMap) string
- func GetCRState(r EntityHandler, transitionCR *fivegv1alpha1.Transition) (fivegv1alpha1.CRState, error)
- func GetPodCondition(status *corev1.PodStatus, conditionType corev1.PodConditionType) (int, *corev1.PodCondition)
- func GetPodReadyCondition(status corev1.PodStatus) *corev1.PodCondition
- func GetPodSettings(transition *v1alpha1.Transition) *v1alpha1.PodSettingsSpec
- func HasFinalizer(obj metav1.Object, finalizer string) bool
- func IsBeingDeleted(obj metav1.Object) bool
- func LoadResource(filename string) (*os.File, error)
- func RemoveFinalizer(instance client.Object, finalizer string)
- func VerifyRouteAPI() (bool, error)
- type Entity
- type EntityHandler
- type EntityHandlerImpl
- func (r EntityHandlerImpl) AddTransitionFunction(name string, transitionFunc TransitionFunc)
- func (r EntityHandlerImpl) CheckReady(transitionCR *fivegv1alpha1.Transition, entity Entity) error
- func (r EntityHandlerImpl) Create(transition *v1alpha1.Transition) (Entity, error)
- func (r EntityHandlerImpl) GetCR(transitionCR *fivegv1alpha1.Transition) (Entity, error)
- func (r EntityHandlerImpl) IsReady(transitionCR *fivegv1alpha1.Transition) (bool, error)
- func (r EntityHandlerImpl) IsReconciled(transitionCR *fivegv1alpha1.Transition) (bool, error)
- func (r EntityHandlerImpl) RunTransition(transition *v1alpha1.Transition, entity Entity, ...) error
- func (r EntityHandlerImpl) Type() string
- type Finalize
- type FiveGReconcileFuncBuilder
- type FiveGReconciler
- type FiveGReconcilerFacade
- func (f FiveGReconcilerFacade) Finalize(request reconcile.Request, cr interface{})
- func (f FiveGReconcilerFacade) Reconcile(request reconcile.Request, cr interface{}) (controllerutil.OperationResult, reconcile.Result, error)
- func (f FiveGReconcilerFacade) UpdateStatus(opResult controllerutil.OperationResult, cr Entity, err error)
- type K8sUtils
- func (k8s K8sUtils) Delete(obj *unstructured.Unstructured)
- func (k8s K8sUtils) DeleteByNameSpaceLabels(obj *unstructured.Unstructured, namespace string, labels map[string]string)
- func (k8s K8sUtils) Exec(namespace, podName, containerName string, command []string, stdin io.Reader, ...) (string, error)
- func (k8s K8sUtils) ExecCommand(pod *corev1.Pod, containerName string, command ...string) (string, error)
- func (k8s K8sUtils) ExecCommands(pod *corev1.Pod, containerName string, commands [][]string) (string, error)
- func (k8s K8sUtils) Exist(namespacedName types.NamespacedName, kind schema.GroupVersionKind) bool
- func (k8s K8sUtils) GetAmf(namespacedName types.NamespacedName) (*v1alpha1.Amf, error)
- func (k8s K8sUtils) GetAusf(namespacedName types.NamespacedName) (*v1alpha1.Ausf, error)
- func (k8s K8sUtils) GetDaemonSet(namespacedName types.NamespacedName) (*appsv1.DaemonSet, error)
- func (k8s K8sUtils) GetDeployment(namespacedName types.NamespacedName) (*appsv1.Deployment, error)
- func (k8s K8sUtils) GetJob(namespacedName types.NamespacedName) (*batchv1.Job, error)
- func (k8s K8sUtils) GetMongo(namespacedName types.NamespacedName) (*v1alpha1.Mongo, error)
- func (k8s K8sUtils) GetN3iwf(namespacedName types.NamespacedName) (*v1alpha1.N3iwf, error)
- func (k8s K8sUtils) GetNetworkPolicy(namespacedName types.NamespacedName) (*networking.NetworkPolicy, error)
- func (k8s K8sUtils) GetNrf(namespacedName types.NamespacedName) (*v1alpha1.Nrf, error)
- func (k8s K8sUtils) GetNssf(namespacedName types.NamespacedName) (*v1alpha1.Nssf, error)
- func (k8s K8sUtils) GetPcf(namespacedName types.NamespacedName) (*v1alpha1.Pcf, error)
- func (k8s K8sUtils) GetPod(namespacedName types.NamespacedName) (*corev1.Pod, error)
- func (k8s K8sUtils) GetSmf(namespacedName types.NamespacedName) (*v1alpha1.Smf, error)
- func (k8s K8sUtils) GetStatefulSet(namespacedName types.NamespacedName) (*appsv1.StatefulSet, error)
- func (k8s K8sUtils) GetSubscriber(namespacedName types.NamespacedName) (*v1alpha1.Subscriber, error)
- func (k8s K8sUtils) GetUdm(namespacedName types.NamespacedName) (*v1alpha1.Udm, error)
- func (k8s K8sUtils) GetUdr(namespacedName types.NamespacedName) (*v1alpha1.Udr, error)
- func (k8s K8sUtils) GetUpf(namespacedName types.NamespacedName) (*v1alpha1.Upf, error)
- func (k8s K8sUtils) GetWebconsole(namespacedName types.NamespacedName) (*v1alpha1.Webconsole, error)
- func (k8s K8sUtils) ReconcileClusterRole(cr metav1.Object, clusterrole *rbacv1.ClusterRole) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileClusterRoleBinding(cr metav1.Object, clusterrolebinding *rbacv1.ClusterRoleBinding) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileConfigMap(cr metav1.Object, configmap *corev1.ConfigMap) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileDaemonSet(cr metav1.Object, daemonset *appsv1.DaemonSet) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileDeployment(cr metav1.Object, deployment *appsv1.Deployment) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileIngress(cr metav1.Object, ingress *ingressv1b1.Ingress) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileJob(cr metav1.Object, job *batchv1.Job) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileNetworkPolicy(cr metav1.Object, np *networkingv1.NetworkPolicy) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcilePVC(cr metav1.Object, pvc *corev1.PersistentVolumeClaim) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcilePod(cr metav1.Object, pod *corev1.Pod) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcilePodDisruptionBudget(cr metav1.Object, podDisruptionBudget *policyv1beta1.PodDisruptionBudget) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileRole(cr metav1.Object, role *rbacv1.Role) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileRoleBinding(cr metav1.Object, rolebinding *rbacv1.RoleBinding) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileRoute(cr metav1.Object, route *routev1.Route) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileService(cr metav1.Object, service *corev1.Service) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileServiceAccount(cr metav1.Object, sa *corev1.ServiceAccount) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) ReconcileStatefulSet(cr metav1.Object, statefulSet *appsv1.StatefulSet) (controllerutil.OperationResult, error)
- func (k8s K8sUtils) RunOperation(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, ...) (string, error)
- func (k8s K8sUtils) Start(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, ...) (string, error)
- func (k8s K8sUtils) Stop(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, ...) (string, error)
- func (k8s K8sUtils) UpdateCR(cr client.Object) error
- func (k8s K8sUtils) UploadToK8s(pod *corev1.Pod, toPath, containerName string, reader io.Reader) (string, error)
- type OperationRunner
- type Reconcile
- type ReconcileConfigMap
- type ReconcileDaemonSet
- type ReconcileDeploymennt
- type ReconcileIngress
- type ReconcileJob
- type ReconcileNetworkPolicy
- type ReconcilePVC
- type ReconcilePod
- type ReconcilePodDisruptionBudget
- type ReconcileRoleBinding
- type ReconcileRoute
- type ReconcileService
- type ReconcileServiceAccount
- type ReconcileStatefulSet
- type ReconcileTransition
- type TransitionFunc
- type UpdateStatus
Constants ¶
const (
// Common Finalizer name used by all controllers
FinalizerName = "controller_5g"
)
COMMON CONSTS USED IN THE 5G APPLICATION
Variables ¶
This section is empty.
Functions ¶
func AddFinalizer ¶
AddFinalizer Add a finalizer to an object
func GetCRState ¶
func GetCRState(r EntityHandler, transitionCR *fivegv1alpha1.Transition) (fivegv1alpha1.CRState, error)
func GetPodCondition ¶
func GetPodCondition(status *corev1.PodStatus, conditionType corev1.PodConditionType) (int, *corev1.PodCondition)
GetPodCondition extracts the provided condition from the given status and returns that. Returns nil and -1 if the condition is not present, and the index of the located condition.
func GetPodReadyCondition ¶
func GetPodReadyCondition(status corev1.PodStatus) *corev1.PodCondition
GetPodReadyCondition extracts the pod ready condition from the given status and returns that. Returns nil if the condition is not present.
func GetPodSettings ¶
func GetPodSettings(transition *v1alpha1.Transition) *v1alpha1.PodSettingsSpec
func HasFinalizer ¶
HasFinalizer check has the object got the named finalizer
func IsBeingDeleted ¶
IsBeingDeleted check for deletingTimestamp on the object
func RemoveFinalizer ¶
RemoveFinalizer Remove finalizer from an object
func VerifyRouteAPI ¶
Types ¶
type EntityHandler ¶
type EntityHandler interface { Create(transition *v1alpha1.Transition) (Entity, error) GetCR(transitionCR *fivegv1alpha1.Transition) (Entity, error) IsReconciled(transitionCR *fivegv1alpha1.Transition) (bool, error) IsReady(transitionCR *fivegv1alpha1.Transition) (bool, error) RunTransition(transition *v1alpha1.Transition, entity Entity, updateFunc func(Entity, *fivegv1alpha1.Transition, error) error) error CheckReady(transitionCR *fivegv1alpha1.Transition, entity Entity) (bool, error) AddTransitionFunction(name string, transitionFunc TransitionFunc) }
type EntityHandlerImpl ¶
type EntityHandlerImpl struct {
TransitionFuncs map[string]TransitionFunc
}
func NewEntityHandler ¶
func NewEntityHandler() *EntityHandlerImpl
func (EntityHandlerImpl) AddTransitionFunction ¶
func (r EntityHandlerImpl) AddTransitionFunction(name string, transitionFunc TransitionFunc)
func (EntityHandlerImpl) CheckReady ¶
func (r EntityHandlerImpl) CheckReady(transitionCR *fivegv1alpha1.Transition, entity Entity) error
func (EntityHandlerImpl) Create ¶
func (r EntityHandlerImpl) Create(transition *v1alpha1.Transition) (Entity, error)
func (EntityHandlerImpl) GetCR ¶
func (r EntityHandlerImpl) GetCR(transitionCR *fivegv1alpha1.Transition) (Entity, error)
func (EntityHandlerImpl) IsReady ¶
func (r EntityHandlerImpl) IsReady(transitionCR *fivegv1alpha1.Transition) (bool, error)
func (EntityHandlerImpl) IsReconciled ¶
func (r EntityHandlerImpl) IsReconciled(transitionCR *fivegv1alpha1.Transition) (bool, error)
func (EntityHandlerImpl) RunTransition ¶
func (r EntityHandlerImpl) RunTransition(transition *v1alpha1.Transition, entity Entity, updateFunc func(Entity, *fivegv1alpha1.Transition, error) error) error
func (EntityHandlerImpl) Type ¶
func (r EntityHandlerImpl) Type() string
type FiveGReconcileFuncBuilder ¶
type FiveGReconcileFuncBuilder struct { K8sUtils *K8sUtils ConfigMapFuncs []ReconcileConfigMap ServiceFuncs []ReconcileService PodFuncs []ReconcilePod DeploymentFuncs []ReconcileDeploymennt DaemonSetFuncs []ReconcileDaemonSet StatefulSetFuncs []ReconcileStatefulSet RouteFuncs []ReconcileRoute IngressFuncs []ReconcileIngress JobFuncs []ReconcileJob PodDisruptionBudgetFuncs []ReconcilePodDisruptionBudget PVCFuncs []ReconcilePVC ServiceAccountFuncs []ReconcileServiceAccount RoleBindingFuncs []ReconcileRoleBinding NetworkPolicyFuncs []ReconcileNetworkPolicy TransitionFuncs []ReconcileTransition }
func (FiveGReconcileFuncBuilder) Reconcile ¶
func (r FiveGReconcileFuncBuilder) Reconcile(request reconcile.Request, instance interface{}) (controllerutil.OperationResult, reconcile.Result, error)
type FiveGReconciler ¶
type FiveGReconciler interface { // Reconcile run reconciliation Reconcile(request reconcile.Request, cr interface{}) (controllerutil.OperationResult, reconcile.Result, error) // UpdateStatus update the status of a CR based on status of reconciled objects status UpdateStatus(opResult controllerutil.OperationResult, cr Entity, reconcileErr error) // Finalize cleanup on deletion Finalize(request reconcile.Request, cr interface{}) }
5GReconciler interface to be implemented by types which need to create application k8s objects
type FiveGReconcilerFacade ¶
type FiveGReconcilerFacade struct { // Functions ReconcileFunc Reconcile UpdateStatusFunc UpdateStatus FinalizeFunc Finalize }
FiveGReconcilerFacade Facade object implementing FiveGReconciler
func (FiveGReconcilerFacade) Finalize ¶
func (f FiveGReconcilerFacade) Finalize(request reconcile.Request, cr interface{})
Finalize Facade for FiveGReconcilerFacade.Finalize function
func (FiveGReconcilerFacade) Reconcile ¶
func (f FiveGReconcilerFacade) Reconcile(request reconcile.Request, cr interface{}) (controllerutil.OperationResult, reconcile.Result, error)
Reconcile Facade for FiveGReconcilerFacade.Reconcile function
func (FiveGReconcilerFacade) UpdateStatus ¶
func (f FiveGReconcilerFacade) UpdateStatus(opResult controllerutil.OperationResult, cr Entity, err error)
UpdateStatus Facade for FiveGReconcilerFacade.UpdateStatus function
type K8sUtils ¶
type K8sUtils struct { RestConfig *rest.Config ClientSet *kubernetes.Clientset Client client.Client Scheme *runtime.Scheme }
K8sUtils k8s utilities for interacting with k8s api's
func NewK8sUtils ¶
func (K8sUtils) Delete ¶
func (k8s K8sUtils) Delete(obj *unstructured.Unstructured)
Delete deletes the specified object
func (K8sUtils) DeleteByNameSpaceLabels ¶
func (k8s K8sUtils) DeleteByNameSpaceLabels(obj *unstructured.Unstructured, namespace string, labels map[string]string)
DeleteByNameSpaceLabels deletes an object in the specified namespace by labels
func (K8sUtils) Exec ¶
func (k8s K8sUtils) Exec(namespace, podName, containerName string, command []string, stdin io.Reader, tty bool) (string, error)
* Executes a command (array) in a given pod container, returning stderr as a string
func (K8sUtils) ExecCommand ¶
func (k8s K8sUtils) ExecCommand(pod *corev1.Pod, containerName string, command ...string) (string, error)
*
- Executes a command inside the given pod container
func (K8sUtils) ExecCommands ¶
func (k8s K8sUtils) ExecCommands(pod *corev1.Pod, containerName string, commands [][]string) (string, error)
*
- Executes a sequence of commands inside the given pod container
func (K8sUtils) Exist ¶
func (k8s K8sUtils) Exist(namespacedName types.NamespacedName, kind schema.GroupVersionKind) bool
Exist checks if an object exists
func (K8sUtils) GetDaemonSet ¶
GetDaemonSet get a DaemonSet object
func (K8sUtils) GetDeployment ¶
func (k8s K8sUtils) GetDeployment(namespacedName types.NamespacedName) (*appsv1.Deployment, error)
GetDeployment get a Deployment object
func (K8sUtils) GetNetworkPolicy ¶
func (k8s K8sUtils) GetNetworkPolicy(namespacedName types.NamespacedName) (*networking.NetworkPolicy, error)
GetNetworkPolicy get a NetworkPolicy object
func (K8sUtils) GetStatefulSet ¶
func (k8s K8sUtils) GetStatefulSet(namespacedName types.NamespacedName) (*appsv1.StatefulSet, error)
GetStatefulSet get a StatefulSet object
func (K8sUtils) GetSubscriber ¶
func (k8s K8sUtils) GetSubscriber(namespacedName types.NamespacedName) (*v1alpha1.Subscriber, error)
GetSmf get a Subscriber object
func (K8sUtils) GetWebconsole ¶
func (k8s K8sUtils) GetWebconsole(namespacedName types.NamespacedName) (*v1alpha1.Webconsole, error)
GetWebconsole get a Webconsole object
func (K8sUtils) ReconcileClusterRole ¶
func (k8s K8sUtils) ReconcileClusterRole(cr metav1.Object, clusterrole *rbacv1.ClusterRole) (controllerutil.OperationResult, error)
ReconcileClusterRole reconcile a ClusterRole with provided configuration
func (K8sUtils) ReconcileClusterRoleBinding ¶
func (k8s K8sUtils) ReconcileClusterRoleBinding(cr metav1.Object, clusterrolebinding *rbacv1.ClusterRoleBinding) (controllerutil.OperationResult, error)
ReconcileClusterRoleBinding reconcile a ClusterRoleBinding with provided configuration
func (K8sUtils) ReconcileConfigMap ¶
func (k8s K8sUtils) ReconcileConfigMap(cr metav1.Object, configmap *corev1.ConfigMap) (controllerutil.OperationResult, error)
ReconcileConfigMap reconcile a ConfigMap with provided configuration
func (K8sUtils) ReconcileDaemonSet ¶
func (k8s K8sUtils) ReconcileDaemonSet(cr metav1.Object, daemonset *appsv1.DaemonSet) (controllerutil.OperationResult, error)
ReconcileDaemonSet reconcile a DaemonSet with provided configuration
func (K8sUtils) ReconcileDeployment ¶
func (k8s K8sUtils) ReconcileDeployment(cr metav1.Object, deployment *appsv1.Deployment) (controllerutil.OperationResult, error)
ReconcileDeployment reconcile a Deployment with provided configuration
func (K8sUtils) ReconcileIngress ¶
func (k8s K8sUtils) ReconcileIngress(cr metav1.Object, ingress *ingressv1b1.Ingress) (controllerutil.OperationResult, error)
ReconcileIngress reconcile a Ingress with provided configuration
func (K8sUtils) ReconcileJob ¶
func (k8s K8sUtils) ReconcileJob(cr metav1.Object, job *batchv1.Job) (controllerutil.OperationResult, error)
ReconcileJob reconcile a Job with provided configuration
func (K8sUtils) ReconcileNetworkPolicy ¶
func (k8s K8sUtils) ReconcileNetworkPolicy(cr metav1.Object, np *networkingv1.NetworkPolicy) (controllerutil.OperationResult, error)
func (K8sUtils) ReconcilePVC ¶
func (k8s K8sUtils) ReconcilePVC(cr metav1.Object, pvc *corev1.PersistentVolumeClaim) (controllerutil.OperationResult, error)
func (K8sUtils) ReconcilePod ¶
func (k8s K8sUtils) ReconcilePod(cr metav1.Object, pod *corev1.Pod) (controllerutil.OperationResult, error)
ReconcilePod reconcile a Pod with provided configuration
func (K8sUtils) ReconcilePodDisruptionBudget ¶
func (k8s K8sUtils) ReconcilePodDisruptionBudget(cr metav1.Object, podDisruptionBudget *policyv1beta1.PodDisruptionBudget) (controllerutil.OperationResult, error)
ReconcilePodDisruptionBudget reconcile a PodDisruptionBudget with provided configuration
func (K8sUtils) ReconcileRole ¶
func (k8s K8sUtils) ReconcileRole(cr metav1.Object, role *rbacv1.Role) (controllerutil.OperationResult, error)
ReconcileRole reconcile a Role with provided configuration
func (K8sUtils) ReconcileRoleBinding ¶
func (k8s K8sUtils) ReconcileRoleBinding(cr metav1.Object, rolebinding *rbacv1.RoleBinding) (controllerutil.OperationResult, error)
ReconcileRoleBinding reconcile a RoleBinding with provided configuration
func (K8sUtils) ReconcileRoute ¶
func (k8s K8sUtils) ReconcileRoute(cr metav1.Object, route *routev1.Route) (controllerutil.OperationResult, error)
ReconcileRoute reconcile a Route with provided configuration
func (K8sUtils) ReconcileService ¶
func (k8s K8sUtils) ReconcileService(cr metav1.Object, service *corev1.Service) (controllerutil.OperationResult, error)
ReconcileService reconcile a Service with provided configuration
func (K8sUtils) ReconcileServiceAccount ¶
func (k8s K8sUtils) ReconcileServiceAccount(cr metav1.Object, sa *corev1.ServiceAccount) (controllerutil.OperationResult, error)
ReconcileServiceAccount reconcile a Service Account with provided configuration
func (K8sUtils) ReconcileStatefulSet ¶
func (k8s K8sUtils) ReconcileStatefulSet(cr metav1.Object, statefulSet *appsv1.StatefulSet) (controllerutil.OperationResult, error)
ReconcileStatefulSet reconcile a StatefulSet with provided configuration
func (K8sUtils) RunOperation ¶
func (K8sUtils) Start ¶
func (k8s K8sUtils) Start(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error)
* Starts a component by running the start transition script for the component type
type OperationRunner ¶
type OperationRunner interface { Start(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error) Stop(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string) (string, error) RunOperation(pod *corev1.Pod, transition *v1alpha1.Transition, componentType string, containerName string, commands []string) (string, error) }
type Reconcile ¶
type Reconcile func(reconcile.Request, interface{}) (controllerutil.OperationResult, reconcile.Result, error)
Reconcile run reconciliation
type ReconcileConfigMap ¶
type ReconcileDaemonSet ¶
type ReconcileDeploymennt ¶
type ReconcileDeploymennt func(interface{}) *appsv1.Deployment
type ReconcileIngress ¶
type ReconcileIngress func(interface{}) *ingressv1b1.Ingress
type ReconcileJob ¶
type ReconcileNetworkPolicy ¶
type ReconcileNetworkPolicy func(interface{}) *networking.NetworkPolicy
type ReconcilePVC ¶
type ReconcilePVC func(interface{}) *corev1.PersistentVolumeClaim
type ReconcilePod ¶
type ReconcilePodDisruptionBudget ¶
type ReconcilePodDisruptionBudget func(interface{}) *policyv1beta1.PodDisruptionBudget
type ReconcileRoleBinding ¶
type ReconcileRoleBinding func(interface{}) *rbacv1.RoleBinding
type ReconcileRoute ¶
type ReconcileService ¶
type ReconcileServiceAccount ¶
type ReconcileServiceAccount func(interface{}) *corev1.ServiceAccount
type ReconcileStatefulSet ¶
type ReconcileStatefulSet func(interface{}) *appsv1.StatefulSet
type ReconcileTransition ¶
type ReconcileTransition func(interface{}) error
type TransitionFunc ¶
type TransitionFunc func(transition *v1alpha1.Transition) (string, error)
* Represents a CP4NA transition CR execution against one of the 5G CRs e.g. AMF, AUSF, etc
type UpdateStatus ¶
type UpdateStatus func(controllerutil.OperationResult, Entity, error)
UpdateStatus update the status of a CR based on status of reconciled objects status