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

[release-ocm-2.10] MGMT-18330: Debug pod left in ImagePullBackOff after install in disconnected environment #6539

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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,6 @@ func main() {
ApproveCsrsRequeueDuration: Options.ApproveCsrsRequeueDuration,
AgentContainerImage: Options.BMConfig.AgentDockerImg,
HostFSMountDir: hostFSMountDir,
EventSender: eventsHandler,
}).SetupWithManager(ctrlMgr), "unable to create controller Agent")

failOnError((&controllers.BMACReconciler{
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ require (
github.com/danielerez/go-dns-client v0.0.0-20200630114514-0b60d1703f0b
github.com/dustin/go-humanize v1.0.1
github.com/filanov/stateswitch v1.0.1-0.20221122134945-bfa198e3a83a
github.com/go-errors/errors v1.4.2
github.com/go-gormigrate/gormigrate/v2 v2.0.1
github.com/go-logr/logr v1.2.4
github.com/go-openapi/errors v0.20.3
Expand Down Expand Up @@ -100,6 +99,7 @@ require (
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect
github.com/go-errors/errors v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-sql-driver/mysql v1.7.0 // indirect
github.com/google/btree v1.0.1 // indirect
Expand Down Expand Up @@ -230,7 +230,7 @@ require (
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/net v0.24.0
golang.org/x/net v0.24.0 // indirect
golang.org/x/oauth2 v0.12.0 // indirect
golang.org/x/term v0.19.0 // indirect
golang.org/x/text v0.14.0 // indirect
Expand Down
32 changes: 0 additions & 32 deletions internal/controller/controllers/agent_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,8 @@ import (
aiv1beta1 "github.com/openshift/assisted-service/api/v1beta1"
"github.com/openshift/assisted-service/internal/bminventory"
"github.com/openshift/assisted-service/internal/common"
"github.com/openshift/assisted-service/internal/common/events"
eventsapi "github.com/openshift/assisted-service/internal/events/api"
"github.com/openshift/assisted-service/internal/gencrypto"
"github.com/openshift/assisted-service/internal/host"
"github.com/openshift/assisted-service/internal/oc"
"github.com/openshift/assisted-service/internal/spoke_k8s_client"
"github.com/openshift/assisted-service/models"
"github.com/openshift/assisted-service/pkg/auth"
Expand Down Expand Up @@ -93,7 +90,6 @@ type AgentReconciler struct {
AgentContainerImage string
HostFSMountDir string
reclaimer *agentReclaimer
EventSender eventsapi.Sender
}

// +kubebuilder:rbac:groups=agent-install.openshift.io,resources=agents,verbs=get;list;watch;create;update;patch;delete
Expand Down Expand Up @@ -489,31 +485,6 @@ func (r *AgentReconciler) spokeKubeClient(ctx context.Context, clusterRef *aiv1b
return r.SpokeK8sClientFactory.CreateFromSecret(secret)
}

func (r *AgentReconciler) notifyNumberOfReboots(ctx context.Context, h *models.Host, node *corev1.Node, clusterRef *aiv1beta1.ClusterReference) error {
if !isNodeReady(node) {
return nil
}
secret, err := spokeKubeconfigSecret(ctx, r.Log, r.Client, r.APIReader, clusterRef)
if err != nil {
r.Log.WithError(err).Errorf("failed to get spoke secret for cluster %s/%s", clusterRef.Namespace, clusterRef.Name)
return err
}
kubeconfig, err := spoke_k8s_client.KubeconfigFromSecret(secret)
if err != nil {
r.Log.WithError(err).Errorf("failed to get kubeconfig from secret for cluster %s/%s", clusterRef.Namespace, clusterRef.Name)
return err
}
dbg := oc.NewDebug(kubeconfig)
reboots, err := dbg.RebootsForNode(node.Name)
if err != nil {
r.Log.WithError(err).Errorf("failed to get number of reboots for node %s, cluster %s/%s", node.Name,
clusterRef.Namespace, clusterRef.Name)
return err
}
events.SendRebootsForNodeEvent(ctx, r.EventSender, *h.ID, node.Name, h.InfraEnvID, h.ClusterID, int64(reboots))
return nil
}

// Attempt to approve CSRs for agent. If already approved then the node will be marked as done
// requeue means that approval will be attempted again
func (r *AgentReconciler) tryApproveDay2CSRs(ctx context.Context, agent *aiv1beta1.Agent, node *corev1.Node, client spoke_k8s_client.SpokeK8sClient) {
Expand Down Expand Up @@ -817,9 +788,6 @@ func (r *AgentReconciler) updateStatus(ctx context.Context, log logrus.FieldLogg
log.WithError(err).Errorf("Failed to apply labels for day2 node %s/%s", agent.Namespace, agent.Name)
return ctrl.Result{RequeueAfter: defaultRequeueAfterOnError}, err
}
if err = r.notifyNumberOfReboots(ctx, h, node, agent.Spec.ClusterDeploymentName); err != nil {
log.WithError(err).Errorf("Failed to notify number of reboots for day2 node %s/%s", agent.Namespace, agent.Name)
}
if err = r.UpdateDay2InstallPogress(ctx, h, agent, node); err != nil {
return ctrl.Result{RequeueAfter: defaultRequeueAfterOnError}, err
}
Expand Down
96 changes: 0 additions & 96 deletions internal/oc/debug.go

This file was deleted.

68 changes: 0 additions & 68 deletions internal/oc/debug_test.go

This file was deleted.

6 changes: 3 additions & 3 deletions internal/spoke_k8s_client/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func (cf *spokeK8sClientFactory) CreateFromRawKubeconfig(kubeconfig []byte) (Spo
}

func (cf *spokeK8sClientFactory) CreateFromSecret(secret *corev1.Secret) (SpokeK8sClient, error) {
kubeconfigData, err := KubeconfigFromSecret(secret)
kubeconfigData, err := kubeconfigFromSecret(secret)
if err != nil {
return nil, err
}
Expand All @@ -66,7 +66,7 @@ func (cf *spokeK8sClientFactory) CreateFromStorageKubeconfig(ctx context.Context
}

func (cf *spokeK8sClientFactory) ClientAndSetFromSecret(secret *corev1.Secret) (SpokeK8sClient, *kubernetes.Clientset, error) {
kubeconfig, err := KubeconfigFromSecret(secret)
kubeconfig, err := kubeconfigFromSecret(secret)
if err != nil {
cf.log.WithError(err).Error("failed to get kubeconfig from secret")
return nil, nil, err
Expand All @@ -75,7 +75,7 @@ func (cf *spokeK8sClientFactory) ClientAndSetFromSecret(secret *corev1.Secret) (
return cf.clientAndSetForKubeconfig(kubeconfig)
}

func KubeconfigFromSecret(secret *corev1.Secret) ([]byte, error) {
func kubeconfigFromSecret(secret *corev1.Secret) ([]byte, error) {
if secret.Data == nil {
return nil, errors.Errorf("Secret %s/%s does not contain any data", secret.Namespace, secret.Name)
}
Expand Down