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
+
+- 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