Hello community, here is the log from the commit of package kail for openSUSE:Factory checked in at 2019-11-03 10:49:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kail (Old) and /work/SRC/openSUSE:Factory/.kail.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kail" Sun Nov 3 10:49:35 2019 rev:3 rq:743814 version:0.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kail/kail.changes 2019-08-14 11:37:06.740699653 +0200 +++ /work/SRC/openSUSE:Factory/.kail.new.2990/kail.changes 2019-11-03 10:49:36.630367435 +0100 @@ -1,0 +2,7 @@ +Tue Oct 29 10:54:09 UTC 2019 - Thorsten Kukuk <[email protected]> + +- Update to version 0.12.0 + - Handle the case when listing namespaces is forbidden (#42) +- Update vendor.tar.gz + +------------------------------------------------------------------- Old: ---- kail-0.11.0.tar.gz New: ---- kail-0.12.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kail.spec ++++++ --- /var/tmp/diff_new_pack.2yBTm5/_old 2019-11-03 10:49:37.734368766 +0100 +++ /var/tmp/diff_new_pack.2yBTm5/_new 2019-11-03 10:49:37.734368766 +0100 @@ -17,7 +17,7 @@ Name: kail -Version: 0.11.0 +Version: 0.12.0 Release: 0 Summary: Kubernetes log viewer License: MIT ++++++ kail-0.11.0.tar.gz -> kail-0.12.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kail-0.11.0/cmd/kail/main.go new/kail-0.12.0/cmd/kail/main.go --- old/kail-0.11.0/cmd/kail/main.go 2019-08-09 03:25:46.000000000 +0200 +++ new/kail-0.12.0/cmd/kail/main.go 2019-10-16 20:02:58.000000000 +0200 @@ -15,6 +15,7 @@ "github.com/boz/kcache/nsname" "github.com/sirupsen/logrus" kingpin "gopkg.in/alecthomas/kingpin.v2" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes" @@ -194,7 +195,9 @@ kingpin.FatalIfError(err, "Error building kubernetes config") _, err = cs.CoreV1().Namespaces().List(metav1.ListOptions{}) - kingpin.FatalIfError(err, "Can't connnect to kubernetes") + if err != nil && !apierrors.IsForbidden(err) { + kingpin.FatalIfError(err, "Can't connnect to kubernetes") + } return cs, rc } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kail-0.11.0/ds_builder.go new/kail-0.12.0/ds_builder.go --- old/kail-0.11.0/ds_builder.go 2019-08-09 03:25:46.000000000 +0200 +++ new/kail-0.12.0/ds_builder.go 2019-10-16 20:02:58.000000000 +0200 @@ -14,6 +14,7 @@ "github.com/boz/kcache/types/replicaset" "github.com/boz/kcache/types/replicationcontroller" "github.com/boz/kcache/types/service" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/kubernetes" ) @@ -125,7 +126,19 @@ log = log.WithComponent("kail.ds.builder") - base, err := pod.NewController(ctx, log, cs, "") + namespace := "" + // if we only ask for one namespace do not try to get resources at cluster level + // we may not have permissions + // but if the namespace does not exist (or any other problem) we watch namespaces to wait for it + if len(b.namespaces) == 1 { + namespace = b.namespaces[0] + _, err := cs.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) + if err != nil { + log.Warnf("could not tail the namespace %s: %v", namespace, err) + namespace = "" + } + } + base, err := pod.NewController(ctx, log, cs, namespace) if err != nil { return nil, log.Err(err, "base pod controller") } @@ -209,7 +222,7 @@ } if len(b.services) != 0 { - ds.servicesBase, err = service.NewController(ctx, log, cs, "") + ds.servicesBase, err = service.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "service base controller") @@ -229,7 +242,7 @@ } if len(b.rcs) != 0 { - ds.rcsBase, err = replicationcontroller.NewController(ctx, log, cs, "") + ds.rcsBase, err = replicationcontroller.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "rc base controller") @@ -249,7 +262,7 @@ } if len(b.rss) != 0 { - ds.rssBase, err = replicaset.NewController(ctx, log, cs, "") + ds.rssBase, err = replicaset.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "rs base controller") @@ -269,7 +282,7 @@ } if len(b.dss) != 0 { - ds.dssBase, err = daemonset.NewController(ctx, log, cs, "") + ds.dssBase, err = daemonset.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "ds base controller") @@ -289,7 +302,7 @@ } if len(b.deployments) != 0 { - ds.deploymentsBase, err = deployment.NewController(ctx, log, cs, "") + ds.deploymentsBase, err = deployment.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "deployment base controller") @@ -309,14 +322,14 @@ } if len(b.ingresses) != 0 { - ds.ingressesBase, err = ingress.NewController(ctx, log, cs, "") + ds.ingressesBase, err = ingress.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "ingress base controller") } if ds.servicesBase == nil { - ds.servicesBase, err = service.NewController(ctx, log, cs, "") + ds.servicesBase, err = service.NewController(ctx, log, cs, namespace) if err != nil { ds.closeAll() return nil, log.Err(err, "service base controller") ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2019-08-12 14:30:58.811117861 +0200 +++ new/vendor/modules.txt 2019-10-29 11:53:26.667961928 +0100 @@ -267,8 +267,9 @@ k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 # k8s.io/apimachinery v0.0.0-20190515023456-b74e4c97951f -k8s.io/apimachinery/pkg/labels k8s.io/apimachinery/pkg/apis/meta/v1 +k8s.io/apimachinery/pkg/labels +k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/api/meta k8s.io/apimachinery/pkg/runtime k8s.io/apimachinery/pkg/watch @@ -276,24 +277,23 @@ k8s.io/apimachinery/pkg/runtime/schema k8s.io/apimachinery/pkg/types k8s.io/apimachinery/pkg/util/intstr +k8s.io/apimachinery/pkg/conversion +k8s.io/apimachinery/pkg/fields k8s.io/apimachinery/pkg/selection +k8s.io/apimachinery/pkg/util/runtime k8s.io/apimachinery/pkg/util/sets k8s.io/apimachinery/pkg/util/validation -k8s.io/apimachinery/pkg/fields k8s.io/apimachinery/pkg/util/net -k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/runtime/serializer/streaming -k8s.io/apimachinery/pkg/conversion -k8s.io/apimachinery/pkg/util/runtime +k8s.io/apimachinery/pkg/util/validation/field k8s.io/apimachinery/pkg/util/errors k8s.io/apimachinery/pkg/conversion/queryparams k8s.io/apimachinery/pkg/util/json k8s.io/apimachinery/pkg/util/naming -k8s.io/apimachinery/pkg/util/validation/field +k8s.io/apimachinery/third_party/forked/golang/reflect k8s.io/apimachinery/pkg/runtime/serializer k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/util/clock -k8s.io/apimachinery/third_party/forked/golang/reflect k8s.io/apimachinery/pkg/util/yaml k8s.io/apimachinery/pkg/runtime/serializer/json k8s.io/apimachinery/pkg/runtime/serializer/versioning
