Skip to content

Use structured logging #1536

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
8 changes: 4 additions & 4 deletions controllers/client/openstackclient_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ type OpenStackClientReconciler struct {
Kclient kubernetes.Interface
}

// GetLog returns a logger object with a prefix of "conroller.name" and aditional controller context fields
// GetLogger returns a logger object with a prefix of "controller.name" and additional controller context fields
func (r *OpenStackClientReconciler) GetLogger(ctx context.Context) logr.Logger {
return log.FromContext(ctx).WithName("Controllers").WithName("OpenStackClient")
}
Expand Down Expand Up @@ -515,7 +515,7 @@ func (r *OpenStackClientReconciler) SetupWithManager(
func (r *OpenStackClientReconciler) findObjectsForSrc(ctx context.Context, src client.Object) []reconcile.Request {
requests := []reconcile.Request{}

l := log.FromContext(context.Background()).WithName("Controllers").WithName("OpenStackClient")
Log := r.GetLogger(context.Background())

for _, field := range allWatchFields {
crList := &clientv1.OpenStackClientList{}
Expand All @@ -525,12 +525,12 @@ func (r *OpenStackClientReconciler) findObjectsForSrc(ctx context.Context, src c
}
err := r.List(ctx, crList, listOps)
if err != nil {
l.Error(err, fmt.Sprintf("listing %s for field: %s - %s", crList.GroupVersionKind().Kind, field, src.GetNamespace()))
Log.Error(err, fmt.Sprintf("listing %s for field: %s - %s", crList.GroupVersionKind().Kind, field, src.GetNamespace()))
return requests
}

for _, item := range crList.Items {
l.Info(fmt.Sprintf("input source %s changed, reconcile: %s - %s", src.GetName(), item.GetName(), item.GetNamespace()))
Log.Info(fmt.Sprintf("input source %s changed, reconcile: %s - %s", src.GetName(), item.GetName(), item.GetNamespace()))

requests = append(requests,
reconcile.Request{
Expand Down
8 changes: 4 additions & 4 deletions controllers/core/openstackcontrolplane_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ type OpenStackControlPlaneReconciler struct {
Kclient kubernetes.Interface
}

// GetLog returns a logger object with a prefix of "conroller.name" and aditional controller context fields
// GetLogger returns a logger object with a prefix of "controller.name" and additional controller context fields
func (r *OpenStackControlPlaneReconciler) GetLogger(ctx context.Context) logr.Logger {
return log.FromContext(ctx).WithName("Controllers").WithName("OpenStackControlPlane")
}
Expand Down Expand Up @@ -733,7 +733,7 @@ func (r *OpenStackControlPlaneReconciler) SetupWithManager(
func (r *OpenStackControlPlaneReconciler) findObjectsForSrc(ctx context.Context, src client.Object) []reconcile.Request {
requests := []reconcile.Request{}

l := log.FromContext(ctx).WithName("Controllers").WithName("OpenStackControlPlane")
Log := r.GetLogger(ctx)

for _, field := range allWatchFields {
crList := &corev1beta1.OpenStackControlPlaneList{}
Expand All @@ -743,12 +743,12 @@ func (r *OpenStackControlPlaneReconciler) findObjectsForSrc(ctx context.Context,
}
err := r.List(ctx, crList, listOps)
if err != nil {
l.Error(err, fmt.Sprintf("listing %s for field: %s - %s", crList.GroupVersionKind().Kind, field, src.GetNamespace()))
Log.Error(err, fmt.Sprintf("listing %s for field: %s - %s", crList.GroupVersionKind().Kind, field, src.GetNamespace()))
return requests
}

for _, item := range crList.Items {
l.Info(fmt.Sprintf("input source %s changed, reconcile: %s - %s", src.GetName(), item.GetName(), item.GetNamespace()))
Log.Info(fmt.Sprintf("input source %s changed, reconcile: %s - %s", src.GetName(), item.GetName(), item.GetNamespace()))

requests = append(requests,
reconcile.Request{
Expand Down
1 change: 0 additions & 1 deletion controllers/core/openstackversion_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ type OpenStackVersionReconciler struct {
client.Client
Kclient kubernetes.Interface
Scheme *runtime.Scheme
Log logr.Logger
}

// GetLogger returns a logger object with a prefix of "controller.name" and additional controller context fields
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context,
}()

// Ensure NodeSets
nodeSets, err := r.listNodeSets(ctx, &Log, instance)
nodeSets, err := r.listNodeSets(ctx, instance)
if err != nil {
if k8s_errors.IsNotFound(err) {
return ctrl.Result{RequeueAfter: time.Second * time.Duration(instance.Spec.DeploymentRequeueTime)}, nil
Expand Down Expand Up @@ -493,11 +493,13 @@ func (r *OpenStackDataPlaneDeploymentReconciler) SetupWithManager(mgr ctrl.Manag
Complete(r)
}

func (r *OpenStackDataPlaneDeploymentReconciler) listNodeSets(ctx context.Context, Log *logr.Logger, instance *dataplanev1.OpenStackDataPlaneDeployment) (*dataplanev1.OpenStackDataPlaneNodeSetList, error) {
func (r *OpenStackDataPlaneDeploymentReconciler) listNodeSets(ctx context.Context, instance *dataplanev1.OpenStackDataPlaneDeployment) (*dataplanev1.OpenStackDataPlaneNodeSetList, error) {

var nodeSets = dataplanev1.OpenStackDataPlaneNodeSetList{}
var err error

Log := r.GetLogger(ctx)

for _, nodeSet := range instance.Spec.NodeSets {

// Fetch the OpenStackDataPlaneNodeSet instance
Expand Down
26 changes: 15 additions & 11 deletions controllers/operator/openstack_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ type OpenStackReconciler struct {
Kclient kubernetes.Interface
}

// GetLog returns a logger object with a prefix of "controller.name" and aditional controller context fields
// GetLogger returns a logger object with a prefix of "controller.name" and additional controller context fields
func (r *OpenStackReconciler) GetLogger(ctx context.Context) logr.Logger {
return log.FromContext(ctx).WithName("Controllers").WithName("OpenStackOperator")
}
Expand Down Expand Up @@ -406,11 +406,13 @@ func isWebhookEndpoint(name string) bool {
// checkServiceEndpoints -
func (r *OpenStackReconciler) checkServiceEndpoints(ctx context.Context, instance *operatorv1beta1.OpenStack) (ctrl.Result, error) {

Log := r.GetLogger(ctx)

endpointSliceList := &discoveryv1.EndpointSliceList{}
err := r.Client.List(ctx, endpointSliceList, &client.ListOptions{Namespace: instance.Namespace})
if err != nil {
if apierrors.IsNotFound(err) {
log.Log.Info("Webhook endpoint not found. Requeuing...")
Log.Info("Webhook endpoint not found. Requeuing...")
return ctrl.Result{RequeueAfter: time.Duration(5) * time.Second}, nil
}
return ctrl.Result{}, err
Expand All @@ -427,7 +429,7 @@ func (r *OpenStackReconciler) checkServiceEndpoints(ctx context.Context, instanc
op.Replicas != nil && *op.Replicas == 0 {

disabled = true
log.Log.Info(fmt.Sprintf("Webhook %s disabled, skipping endpoint slice check", endpointSliceName), "name", endpointSlice.GetName())
Log.Info(fmt.Sprintf("Webhook %s disabled, skipping endpoint slice check", endpointSliceName), "name", endpointSlice.GetName())
break
}
}
Expand All @@ -436,17 +438,17 @@ func (r *OpenStackReconciler) checkServiceEndpoints(ctx context.Context, instanc
}

if len(endpointSlice.Endpoints) == 0 {
log.Log.Info("Webhook endpoint not configured. Requeuing...", "name", endpointSlice.GetName())
Log.Info("Webhook endpoint not configured. Requeuing...", "name", endpointSlice.GetName())
return ctrl.Result{RequeueAfter: time.Duration(5) * time.Second}, nil
}
for _, endpoint := range endpointSlice.Endpoints {
if len(endpoint.Addresses) == 0 {
log.Log.Info("Webhook endpoint addresses aren't healthy. Requeuing...", "name", endpointSlice.GetName())
Log.Info("Webhook endpoint addresses aren't healthy. Requeuing...", "name", endpointSlice.GetName())
return ctrl.Result{RequeueAfter: time.Duration(5) * time.Second}, nil
}
bFalse := false
if endpoint.Conditions.Ready == &bFalse || endpoint.Conditions.Serving == &bFalse {
log.Log.Info("Webhook endpoint addresses aren't serving. Requeuing...", "name", endpointSlice.GetName())
Log.Info("Webhook endpoint addresses aren't serving. Requeuing...", "name", endpointSlice.GetName())
return ctrl.Result{RequeueAfter: time.Duration(5) * time.Second}, nil
}
}
Expand All @@ -457,22 +459,23 @@ func (r *OpenStackReconciler) checkServiceEndpoints(ctx context.Context, instanc
}

func (r *OpenStackReconciler) applyManifests(ctx context.Context, instance *operatorv1beta1.OpenStack) error {
Log := r.GetLogger(ctx)
// only apply CRDs and RBAC once per each containerImage change
if !containerImageMatch(instance) {
if err := r.applyCRDs(ctx, instance); err != nil {
log.Log.Error(err, "failed applying CRD manifests")
Log.Error(err, "failed applying CRD manifests")
return err
}

if err := r.applyRBAC(ctx, instance); err != nil {
log.Log.Error(err, "failed applying RBAC manifests")
Log.Error(err, "failed applying RBAC manifests")
return err
}
}
instance.Status.ContainerImage = &operatorImage

if err := r.applyOperator(ctx, instance); err != nil {
log.Log.Error(err, "failed applying Operator manifests")
Log.Error(err, "failed applying Operator manifests")
return err
}

Expand Down Expand Up @@ -673,6 +676,7 @@ func (r *OpenStackReconciler) renderAndApply(
) error {
var err error

Log := r.GetLogger(ctx)
bindir := util.GetEnvVar("BASE_BINDATA", "/bindata")

sourceFullDirectory := filepath.Join(bindir, sourceDirectory)
Expand All @@ -695,13 +699,13 @@ func (r *OpenStackReconciler) renderAndApply(
if setControllerReference {
// Set the controller reference.
if obj.GetNamespace() != "" {
log.Log.Info("Setting controller reference", "object", obj.GetName(), "controller", instance.Name)
Log.Info("Setting controller reference", "object", obj.GetName(), "controller", instance.Name)
err = controllerutil.SetControllerReference(instance, obj, r.Scheme)
if err != nil {
return errors.Wrap(err, "failed to set owner reference")
}
} else {
log.Log.Info("skipping controller reference (cluster scoped)", "object", obj.GetName(), "controller", instance.Name)
Log.Info("skipping controller reference (cluster scoped)", "object", obj.GetName(), "controller", instance.Name)
}
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/openstack/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ const (
caCertSelector = "ca-cert"
)

// GetLog returns a logger object with a prefix of "controller.name" and aditional controller context fields
// GetLogger returns a logger object with a prefix of "controller.name" and additional controller context fields
func GetLogger(ctx context.Context) logr.Logger {
return log.FromContext(ctx).WithName("Controllers").WithName("OpenstackControlPlane")
}
Expand Down