Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update baremetal operator #5698

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 5 additions & 4 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/webhook"
)

func init() {
Expand Down Expand Up @@ -807,11 +808,11 @@ func createControllerManager() (manager.Manager, error) {
}
return ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: schemes,
Port: 9443,
WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}),
LeaderElection: true,
LeaderElectionID: "77190dcb.agent-install.openshift.io",
NewCache: cache.BuilderWithOptions(cache.Options{
SelectorsByObject: map[client.Object]cache.ObjectSelector{
Cache: cache.Options{
ByObject: map[client.Object]cache.ByObject{
&corev1.Secret{}: {
Label: labels.SelectorFromSet(
labels.Set{
Expand All @@ -823,7 +824,7 @@ func createControllerManager() (manager.Manager, error) {
Label: labels.NewSelector().Add(*infraenvLabel),
},
},
}),
},
})
}
return nil, nil
Expand Down
3 changes: 2 additions & 1 deletion cmd/operator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
"sigs.k8s.io/controller-runtime/pkg/webhook"
)

const (
Expand Down Expand Up @@ -86,7 +87,7 @@ func main() {
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
MetricsBindAddress: metricsAddr,
Port: 9443,
WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}),
HealthProbeBindAddress: probeAddr,
LeaderElection: enableLeaderElection,
LeaderElectionID: "86f835c3.agent-install.openshift.io",
Expand Down
6 changes: 1 addition & 5 deletions cmd/webadmission/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,5 @@ func createDecoder() *admission.Decoder {
if err != nil {
log.WithError(err).Fatal("could not add to hiveext scheme")
}
decoder, err := admission.NewDecoder(scheme)
if err != nil {
log.WithError(err).Fatal("could not create a decoder")
}
return decoder
return admission.NewDecoder(scheme)
}
159 changes: 77 additions & 82 deletions go.mod

Large diffs are not rendered by default.

527 changes: 160 additions & 367 deletions go.sum

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions internal/common/common_unitest_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,9 @@ func (c *K8SDBContext) Create() error {
return err
}
// Wait for deployment to rollout
err = wait.PollImmediate(time.Second*5, time.Minute*5, func() (bool, error) {
err = wait.PollUntilContextTimeout(context.TODO(), time.Second*5, time.Minute*5, true, func(ctx context.Context) (bool, error) {
var deploymentErr error
deployment, deploymentErr := c.client.AppsV1().Deployments(k8sNamespace).Get(context.TODO(), dbDockerName, metav1.GetOptions{})
deployment, deploymentErr := c.client.AppsV1().Deployments(k8sNamespace).Get(ctx, dbDockerName, metav1.GetOptions{})
if deploymentErr != nil {
return false, deploymentErr
}
Expand Down Expand Up @@ -267,9 +267,9 @@ func (c *K8SDBContext) Teardown() {
Expect(err).ShouldNot(HaveOccurred())

// Wait for it to dissappear
err = wait.PollImmediate(time.Second*5, time.Minute*5, func() (bool, error) {
err = wait.PollUntilContextTimeout(context.TODO(), time.Second*5, time.Minute*5, true, func(ctx context.Context) (bool, error) {
var namespaceErr error
_, namespaceErr = c.client.CoreV1().Namespaces().Get(context.TODO(), k8sNamespace, metav1.GetOptions{})
_, namespaceErr = c.client.CoreV1().Namespaces().Get(ctx, k8sNamespace, metav1.GetOptions{})
if errors.IsNotFound(namespaceErr) {
return false, namespaceErr
}
Expand All @@ -281,9 +281,9 @@ func (c *K8SDBContext) Teardown() {
func (c *K8SDBContext) GetHostPort() (string, string) {
var host string
var svc *corev1.Service
err := wait.PollImmediate(time.Second*5, time.Minute*5, func() (bool, error) {
err := wait.PollUntilContextTimeout(context.TODO(), time.Second*5, time.Minute*5, true, func(ctx context.Context) (bool, error) {
var err error
svc, err = c.client.CoreV1().Services(k8sNamespace).Get(context.TODO(), dbDockerName, metav1.GetOptions{})
svc, err = c.client.CoreV1().Services(k8sNamespace).Get(ctx, dbDockerName, metav1.GetOptions{})
if err != nil {
return false, err
}
Expand Down
4 changes: 2 additions & 2 deletions internal/controller/controllers/agent_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
bmh_v1alpha1 "github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1"
machinev1beta1 "github.com/openshift/api/machine/v1beta1"
. "github.com/openshift/assisted-service/api/common"
aiv1beta1 "github.com/openshift/assisted-service/api/v1beta1"
"github.com/openshift/assisted-service/internal/bminventory"
Expand All @@ -46,7 +47,6 @@ import (
"github.com/openshift/assisted-service/restapi/operations/installer"
conditionsv1 "github.com/openshift/custom-resource-status/conditions/v1"
hivev1 "github.com/openshift/hive/apis/hive/v1"
machinev1beta1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/thoas/go-funk"
Expand Down Expand Up @@ -1670,7 +1670,7 @@ func (r *AgentReconciler) SetupWithManager(mgr ctrl.Manager) error {
}
return ctrl.NewControllerManagedBy(mgr).
For(&aiv1beta1.Agent{}).
Watches(&source.Channel{Source: r.CRDEventsHandler.GetAgentUpdates()},
WatchesRawSource(&source.Channel{Source: r.CRDEventsHandler.GetAgentUpdates()},
&handler.EnqueueRequestForObject{}).
Complete(r)
}
Expand Down
19 changes: 12 additions & 7 deletions internal/controller/controllers/agent_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
authzv1 "github.com/openshift/api/authorization/v1"
machinev1beta1 "github.com/openshift/api/machine/v1beta1"
common_api "github.com/openshift/assisted-service/api/common"
hiveext "github.com/openshift/assisted-service/api/hiveextension/v1beta1"
"github.com/openshift/assisted-service/api/v1beta1"
Expand All @@ -28,7 +29,6 @@ import (
"github.com/openshift/assisted-service/restapi/operations/installer"
conditionsv1 "github.com/openshift/custom-resource-status/conditions/v1"
hivev1 "github.com/openshift/hive/apis/hive/v1"
machinev1beta1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
"github.com/pkg/errors"
"gorm.io/gorm"
appsv1 "k8s.io/api/apps/v1"
Expand Down Expand Up @@ -94,7 +94,8 @@ var _ = Describe("agent reconcile", func() {
)

BeforeEach(func() {
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).Build()
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).
WithStatusSubresource(&v1beta1.Agent{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
mockInstallerInternal = bminventory.NewMockInstallerInternals(mockCtrl)
mockClientFactory = spoke_k8s_client.NewMockSpokeK8sClientFactory(mockCtrl)
Expand Down Expand Up @@ -339,6 +340,7 @@ var _ = Describe("agent reconcile", func() {

It("Agent update", func() {
mockClient := NewMockK8sClient(mockCtrl)
mockSubResourceWriter := NewMockSubResourceWriter(mockCtrl)
hr.Client = mockClient
newHostName := "hostname123"
newRole := "worker"
Expand Down Expand Up @@ -407,8 +409,8 @@ var _ = Describe("agent reconcile", func() {
return c.Update(ctx, agent)
},
).Times(1)
mockClient.EXPECT().Status().Return(mockClient).Times(1)
mockClient.EXPECT().Update(gomock.Any(), gomock.AssignableToTypeOf(&v1beta1.Agent{})).DoAndReturn(
mockClient.EXPECT().Status().Return(mockSubResourceWriter).Times(1)
mockSubResourceWriter.EXPECT().Update(gomock.Any(), gomock.AssignableToTypeOf(&v1beta1.Agent{})).DoAndReturn(
func(ctx context.Context, agent *v1beta1.Agent, opts ...client.UpdateOption) error {
return c.Status().Update(ctx, agent)
},
Expand Down Expand Up @@ -2262,7 +2264,8 @@ VU1eS0RiS/Lz6HwRs2mATNY5FrpZOgdM3cI=
}

BeforeEach(func() {
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).Build()
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).
WithStatusSubresource(&v1beta1.Agent{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
mockInstallerInternal = bminventory.NewMockInstallerInternals(mockCtrl)
mockClientFactory = spoke_k8s_client.NewMockSpokeK8sClientFactory(mockCtrl)
Expand Down Expand Up @@ -2897,7 +2900,8 @@ var _ = Describe("TestConditions", func() {
)

BeforeEach(func() {
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).Build()
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).
WithStatusSubresource(&v1beta1.Agent{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
mockInstallerInternal = bminventory.NewMockInstallerInternals(mockCtrl)
hr = &AgentReconciler{
Expand Down Expand Up @@ -3641,7 +3645,8 @@ var _ = Describe("spokeKubeClient", func() {
)

BeforeEach(func() {
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).Build()
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).
WithStatusSubresource(&v1beta1.Agent{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
mockClientFactory = spoke_k8s_client.NewMockSpokeK8sClientFactory(mockCtrl)
hr = &AgentReconciler{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"
)

const (
Expand Down Expand Up @@ -156,7 +155,7 @@ func setErrorCountCondition(classification *aiv1beta1.AgentClassification, error
}

func (r *AgentClassificationReconciler) SetupWithManager(mgr ctrl.Manager) error {
mapAgentToAgentClassification := func(agent client.Object) []reconcile.Request {
mapAgentToAgentClassification := func(ctx context.Context, agent client.Object) []reconcile.Request {
log := logutil.FromContext(context.Background(), r.Log).WithFields(
logrus.Fields{
"agent": agent.GetName(),
Expand All @@ -183,6 +182,6 @@ func (r *AgentClassificationReconciler) SetupWithManager(mgr ctrl.Manager) error

return ctrl.NewControllerManagedBy(mgr).
For(&aiv1beta1.AgentClassification{}).
Watches(&source.Kind{Type: &aiv1beta1.Agent{}}, handler.EnqueueRequestsFromMapFunc(mapAgentToAgentClassification)).
Watches(&aiv1beta1.Agent{}, handler.EnqueueRequestsFromMapFunc(mapAgentToAgentClassification)).
Complete(r)
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var _ = Describe("AgentClassification reconcile", func() {
)

BeforeEach(func() {
c = fakeclient.NewClientBuilder().Build()
c = fakeclient.NewClientBuilder().WithStatusSubresource(&v1beta1.AgentClassification{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
ir = &AgentClassificationReconciler{
Client: c,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/source"
)

// AgentClusterInstallReconciler reconciles a AgentClusterInstall object
Expand Down Expand Up @@ -105,7 +104,7 @@ func (r *AgentClusterInstallReconciler) Reconcile(origCtx context.Context, req c
func (r *AgentClusterInstallReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
For(&hiveext.AgentClusterInstall{}).
Watches(&source.Kind{Type: &hiveext.AgentClusterInstall{}},
Watches(&hiveext.AgentClusterInstall{},
&handler.EnqueueRequestForObject{},
builder.WithPredicates(predicate.GenerationChangedPredicate{})).
Complete(r)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ var _ = Describe("AgentClusterInstall reconcile", func() {
)

BeforeEach(func() {
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).Build()
c = fakeclient.NewClientBuilder().WithScheme(scheme.Scheme).
WithStatusSubresource(&hiveext.AgentClusterInstall{}).Build()
mockCtrl = gomock.NewController(GinkgoT())
ir = &AgentClusterInstallReconciler{
Client: c,
Expand Down
9 changes: 4 additions & 5 deletions internal/controller/controllers/agentlabel_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"
)

type AgentLabelReconciler struct {
Expand Down Expand Up @@ -171,8 +170,8 @@ func deleteAgentLabel(log *logrus.Entry, agent *aiv1beta1.Agent, labelKey, label
}

func (r *AgentLabelReconciler) SetupWithManager(mgr ctrl.Manager) error {
mapAgentClassificationToAgent := func(classification client.Object) []reconcile.Request {
log := logutil.FromContext(context.Background(), r.Log).WithFields(
mapAgentClassificationToAgent := func(ctx context.Context, classification client.Object) []reconcile.Request {
log := logutil.FromContext(ctx, r.Log).WithFields(
logrus.Fields{
"classification": classification.GetName(),
"classification_namespace": classification.GetNamespace(),
Expand All @@ -181,7 +180,7 @@ func (r *AgentLabelReconciler) SetupWithManager(mgr ctrl.Manager) error {
opts := &client.ListOptions{
Namespace: classification.GetNamespace(),
}
if err := r.List(context.Background(), agentList, opts); err != nil {
if err := r.List(ctx, agentList, opts); err != nil {
log.Debugf("failed to list agents")
return []reconcile.Request{}
}
Expand All @@ -198,6 +197,6 @@ func (r *AgentLabelReconciler) SetupWithManager(mgr ctrl.Manager) error {

return ctrl.NewControllerManagedBy(mgr).
For(&aiv1beta1.Agent{}).
Watches(&source.Kind{Type: &aiv1beta1.AgentClassification{}}, handler.EnqueueRequestsFromMapFunc(mapAgentClassificationToAgent)).
Watches(&aiv1beta1.AgentClassification{}, handler.EnqueueRequestsFromMapFunc(mapAgentClassificationToAgent)).
Complete(r)
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"
)

const (
Expand Down Expand Up @@ -459,7 +458,7 @@ func (r *AgentServiceConfigReconciler) SetupWithManager(mgr ctrl.Manager) error
GenericFunc: func(e event.GenericEvent) bool { return checkIngressCMName(e.Object) },
})
ingressCMHandler := handler.EnqueueRequestsFromMapFunc(
func(_ client.Object) []reconcile.Request {
func(_ context.Context, _ client.Object) []reconcile.Request {
return []reconcile.Request{{NamespacedName: types.NamespacedName{Name: AgentServiceConfigName}}}
},
)
Expand All @@ -478,7 +477,7 @@ func (r *AgentServiceConfigReconciler) SetupWithManager(mgr ctrl.Manager) error
Owns(&rbacv1.ClusterRoleBinding{}).
Owns(&rbacv1.ClusterRole{}).
Owns(&apiregv1.APIService{}).
Watches(&source.Kind{Type: &corev1.ConfigMap{}}, ingressCMHandler, ingressCMPredicates).
Watches(&corev1.ConfigMap{}, ingressCMHandler, ingressCMPredicates).
Complete(r)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,16 @@ const (
testMirrorRegConfigmapName = "test-mirror-configmap"
)

func newTestReconciler(initObjs ...runtime.Object) *AgentServiceConfigReconciler {
func newTestReconciler(initObjs ...client.Object) *AgentServiceConfigReconciler {
schemes := GetKubeClientSchemes()
c := fakeclient.NewClientBuilder().WithScheme(schemes).WithRuntimeObjects(initObjs...).Build()

rtoList := []runtime.Object{}
for i := range initObjs {
rtoList = append(rtoList, initObjs[i])
}

c := fakeclient.NewClientBuilder().WithScheme(schemes).WithStatusSubresource(initObjs...).
WithRuntimeObjects(rtoList...).Build()
return &AgentServiceConfigReconciler{
AgentServiceConfigReconcileContext: AgentServiceConfigReconcileContext{
Scheme: schemes,
Expand Down
Loading