зеркало из https://github.com/Azure/ARO-RP.git
Removes dependency on consoleclient
This commit is contained in:
Родитель
d83450a2ba
Коммит
7f1118c72c
|
@ -9,7 +9,6 @@ import (
|
|||
"fmt"
|
||||
|
||||
configclient "github.com/openshift/client-go/config/clientset/versioned"
|
||||
consoleclient "github.com/openshift/client-go/console/clientset/versioned"
|
||||
imageregistryclient "github.com/openshift/client-go/imageregistry/clientset/versioned"
|
||||
machineclient "github.com/openshift/client-go/machine/clientset/versioned"
|
||||
operatorclient "github.com/openshift/client-go/operator/clientset/versioned"
|
||||
|
@ -84,10 +83,6 @@ func operator(ctx context.Context, log *logrus.Entry) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
consolecli, err := consoleclient.NewForConfig(restConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
kubernetescli, err := kubernetes.NewForConfig(restConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -187,7 +182,7 @@ func operator(ctx context.Context, log *logrus.Entry) error {
|
|||
return fmt.Errorf("unable to create controller %s: %v", machine.ControllerName, err)
|
||||
}
|
||||
if err = (banner.NewReconciler(
|
||||
log.WithField("controller", banner.ControllerName), consolecli)).SetupWithManager(mgr); err != nil {
|
||||
log.WithField("controller", banner.ControllerName))).SetupWithManager(mgr); err != nil {
|
||||
return fmt.Errorf("unable to create controller %s: %v", banner.ControllerName, err)
|
||||
}
|
||||
if err = (machineset.NewReconciler(
|
||||
|
|
|
@ -10,37 +10,51 @@ import (
|
|||
consolev1 "github.com/openshift/api/console/v1"
|
||||
kerrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
|
||||
arov1alpha1 "github.com/Azure/ARO-RP/pkg/operator/apis/aro.openshift.io/v1alpha1"
|
||||
)
|
||||
|
||||
func (r *Reconciler) reconcileBanner(ctx context.Context, instance *arov1alpha1.Cluster) (err error) {
|
||||
func (r *Reconciler) reconcileBanner(ctx context.Context, instance *arov1alpha1.Cluster) error {
|
||||
var text string
|
||||
|
||||
switch instance.Spec.Banner.Content {
|
||||
case arov1alpha1.BannerDisabled:
|
||||
err = r.consolecli.ConsoleV1().ConsoleNotifications().Delete(ctx, BannerName, metav1.DeleteOptions{})
|
||||
banner := &consolev1.ConsoleNotification{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: BannerName,
|
||||
},
|
||||
}
|
||||
err := r.client.Delete(ctx, banner)
|
||||
if err != nil && kerrors.IsNotFound(err) {
|
||||
// we don't care if the object doesn't exist
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
case arov1alpha1.BannerContactSupport:
|
||||
banner := r.newBanner(fmt.Sprintf(TextContactSupport, instance.Spec.ResourceID))
|
||||
_, err := r.consolecli.ConsoleV1().ConsoleNotifications().Get(ctx, BannerName, metav1.GetOptions{})
|
||||
if err != nil && !kerrors.IsNotFound(err) {
|
||||
return err
|
||||
}
|
||||
text = fmt.Sprintf(TextContactSupport, instance.Spec.ResourceID)
|
||||
default:
|
||||
return fmt.Errorf("wrong banner setting '%s'", instance.Spec.Banner.Content)
|
||||
}
|
||||
|
||||
// if the object doesn't exist Create
|
||||
if err != nil && kerrors.IsNotFound(err) {
|
||||
_, err = r.consolecli.ConsoleV1().ConsoleNotifications().Create(ctx, banner, metav1.CreateOptions{})
|
||||
return err
|
||||
}
|
||||
return r.createOrUpdate(ctx, text)
|
||||
}
|
||||
|
||||
// if there's no errors, object found then update
|
||||
_, err = r.consolecli.ConsoleV1().ConsoleNotifications().Update(ctx, banner, metav1.UpdateOptions{})
|
||||
func (r *Reconciler) createOrUpdate(ctx context.Context, text string) error {
|
||||
oldBanner := &consolev1.ConsoleNotification{}
|
||||
err := r.client.Get(ctx, types.NamespacedName{Name: BannerName}, oldBanner)
|
||||
if err != nil && !kerrors.IsNotFound(err) {
|
||||
return err
|
||||
}
|
||||
return fmt.Errorf("wrong banner setting '%s'", instance.Spec.Banner.Content)
|
||||
|
||||
// if the object doesn't exist Create
|
||||
if err != nil && kerrors.IsNotFound(err) {
|
||||
return r.client.Create(ctx, r.newBanner(text))
|
||||
}
|
||||
|
||||
// if there's no errors, object found then update
|
||||
oldBanner.Spec.Text = text
|
||||
return r.client.Update(ctx, oldBanner)
|
||||
}
|
||||
|
||||
func (r *Reconciler) newBanner(text string) *consolev1.ConsoleNotification {
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"context"
|
||||
|
||||
consolev1 "github.com/openshift/api/console/v1"
|
||||
consoleclient "github.com/openshift/client-go/console/clientset/versioned"
|
||||
"github.com/sirupsen/logrus"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
|
@ -31,16 +30,13 @@ const (
|
|||
type Reconciler struct {
|
||||
log *logrus.Entry
|
||||
|
||||
consolecli consoleclient.Interface
|
||||
|
||||
client client.Client
|
||||
}
|
||||
|
||||
// NewReconciler creates a new Reconciler
|
||||
func NewReconciler(log *logrus.Entry, consolecli consoleclient.Interface) *Reconciler {
|
||||
func NewReconciler(log *logrus.Entry) *Reconciler {
|
||||
return &Reconciler{
|
||||
log: log,
|
||||
consolecli: consolecli,
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@ import (
|
|||
"testing"
|
||||
|
||||
consolev1 "github.com/openshift/api/console/v1"
|
||||
consolefake "github.com/openshift/client-go/console/clientset/versioned/fake"
|
||||
kerrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
ctrl "sigs.k8s.io/controller-runtime"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/fake"
|
||||
|
||||
|
@ -130,6 +130,8 @@ func TestBannerReconcile(t *testing.T) {
|
|||
},
|
||||
} {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
instance := arov1alpha1.Cluster{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "cluster",
|
||||
|
@ -145,20 +147,23 @@ func TestBannerReconcile(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
clientFake := fake.NewClientBuilder().WithObjects(&instance, &tt.oldCN).Build()
|
||||
|
||||
r := Reconciler{
|
||||
log: utillog.GetLogger(),
|
||||
consolecli: consolefake.NewSimpleClientset(&tt.oldCN),
|
||||
client: fake.NewClientBuilder().WithObjects(&instance).Build(),
|
||||
log: utillog.GetLogger(),
|
||||
client: clientFake,
|
||||
}
|
||||
|
||||
// function under test
|
||||
_, err := r.Reconcile(context.Background(), ctrl.Request{})
|
||||
_, err := r.Reconcile(ctx, ctrl.Request{})
|
||||
|
||||
if err != nil && err.Error() != tt.wantErr ||
|
||||
err == nil && tt.wantErr != "" {
|
||||
t.Error(err)
|
||||
}
|
||||
resultBanner, err := r.consolecli.ConsoleV1().ConsoleNotifications().Get(context.Background(), BannerName, metav1.GetOptions{})
|
||||
|
||||
resultBanner := &consolev1.ConsoleNotification{}
|
||||
err = clientFake.Get(ctx, types.NamespacedName{Name: BannerName}, resultBanner)
|
||||
if tt.expectBanner {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
|
@ -170,7 +175,7 @@ func TestBannerReconcile(t *testing.T) {
|
|||
if err != nil && !kerrors.IsNotFound(err) {
|
||||
t.Error(err)
|
||||
}
|
||||
if err == nil || !kerrors.IsNotFound(err) || resultBanner != nil {
|
||||
if err == nil || !kerrors.IsNotFound(err) {
|
||||
t.Errorf("Expected not to get a ConsoleNotification, but it exists")
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче