mirror of
https://github.com/outbackdingo/kamaji.git
synced 2026-01-27 10:19:29 +00:00
39 lines
1017 B
Go
39 lines
1017 B
Go
// Copyright 2022 Clastix Labs
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package utils
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"k8s.io/apimachinery/pkg/types"
|
|
"k8s.io/client-go/util/retry"
|
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
|
|
|
kamajiv1alpha1 "github.com/clastix/kamaji/api/v1alpha1"
|
|
"github.com/clastix/kamaji/internal/resources"
|
|
)
|
|
|
|
func UpdateStatus(ctx context.Context, client client.Client, tcp *kamajiv1alpha1.TenantControlPlane, resource resources.Resource) error {
|
|
updateErr := retry.RetryOnConflict(retry.DefaultRetry, func() (err error) {
|
|
defer func() {
|
|
if err != nil {
|
|
_ = client.Get(ctx, types.NamespacedName{Name: tcp.Name, Namespace: tcp.Namespace}, tcp)
|
|
}
|
|
}()
|
|
|
|
if err = resource.UpdateTenantControlPlaneStatus(ctx, tcp); err != nil {
|
|
return fmt.Errorf("error applying TenantcontrolPlane status: %w", err)
|
|
}
|
|
|
|
if err = client.Status().Update(ctx, tcp); err != nil {
|
|
return fmt.Errorf("error updating tenantControlPlane status: %w", err)
|
|
}
|
|
|
|
return nil
|
|
})
|
|
|
|
return updateErr
|
|
}
|