Git Product home page Git Product logo

ketall's People

Contributors

aracki avatar busser avatar corneliusweig avatar dependabot-preview[bot] avatar dependabot[bot] avatar marckhouzam avatar matrus2 avatar semekh avatar vadasambar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ketall's Issues

[krew] Distribute with license

👋 Hello, maintainer of the kubectl plugin manager krew here.

Thank you for your commitment to open source by making this plugin available via krew!

Krew wants to give credit where credit is due by installing the proper license file for the plugins it distributes. However, your plugin was found to not contain any license file. We wanted to remind you that if you're using a license such as Apache 2.0, you should be bundling your LICENSE file with your plugin’s distributions.

What do you have to do?

  • Please ensure your GitHub repository has a license file.
  • Make sure your archive file (.tar.gz or .zip) contains the license file.
  • Please submit a pull-request to krew-index and update the files: section to copy the file to the installation directory. Have a look at this PR for an example: https://github.com/kubernetes-sigs/krew-index/pull/314/files

If you need further assistance, don't hesitate to ask for help.

Binary fails with exec format error on Debian

Describe the bug

❯ ketall
zsh: exec format error: ketall
❯ ketall version --full
zsh: exec format error: ketall

To Reproduce

❯ curl -Lo ketall.gz https://github.com/corneliusweig/ketall/releases/download/v1.3.8/ketall-amd64-linux.tar.gz && gunzip ketall.gz && chmod +x ketall && mv ketall /root/.local/bin && ketall

Expected behavior
it works

Desktop (please complete the following information):

  • OS: Debian 11

Support watch mode `--watch`

Kubectl allows to watch for changes to a specific resource, e.g. kubectl get pod --watch.

Ketall should provide a similar mode to watch all server resources.

Getting FATA[0022] print list item: print list item: object does not implement the Object interfaces on OCP 4.5.18

Describe the bug
Just installed get-all v1.3.5 on an OCP 4.5.18 cluster

oc get-all
WARN[0010] Cannot fetch: the server does not allow this method on the requested resource
WARN[0020] Cannot fetch: Unable to list "image.openshift.io/v1, Resource=imagestreamimages": the server could not find the requested resource
FATA[0022] print list item: print list item: object does not implement the Object interfaces

oc version
Client Version: 4.6.4
Server Version: 4.5.18
Kubernetes Version: v1.18.3+ac53d20

To Reproduce
Steps to reproduce the behavior:
see above

Expected behavior
regular output

Desktop (please complete the following information):

  • output of ketall version --full:
    oc get-all version --full
    ketall: v1.3.5
    platform: linux/amd64
    git commit: 460494e
    build date: 2020-09-23T08:45:20Z
    go version: go1.15.2
    compiler: gc

  • OS: [e.g. iOS]
    cat /etc/redhat-release
    Red Hat Enterprise Linux release 8.1 (Ootpa)

Debug output
oc get-all -v debug
time="2020-11-18T09:16:58+01:00" level=debug msg="Set log-level to debug"
time="2020-11-18T09:16:58+01:00" level=debug msg="Excluding events"
time="2020-11-18T09:16:58+01:00" level=debug msg="Excluding events.events.k8s.io"
time="2020-11-18T09:16:58+01:00" level=debug msg="Excluding pods.metrics.k8s.io"
time="2020-11-18T09:16:58+01:00" level=debug msg="Resources to fetch: [componentstatuses configmaps endpoints limitranges namespaces nodes persistentvolumeclaims persistentvolumes pods podtemplates replicationcontrollers resourcequotas secrets serviceaccounts services mutatingwebhookconfigurations.admissionregistration.k8s.io validatingwebhookconfigurations.admissionregistration.k8s.io customresourcedefinitions.apiextensions.k8s.io apiservices.apiregistration.k8s.io controllerrevisions.apps daemonsets.apps deployments.apps replicasets.apps statefulsets.apps deploymentconfigs.apps.openshift.io applications.argoproj.io appprojects.argoproj.io argocdexports.argoproj.io argocds.argoproj.io clusterworkflowtemplates.argoproj.io cronworkflows.argoproj.io workfloweventbindings.argoproj.io workflows.argoproj.io workflowtemplates.argoproj.io clusterrolebindings.authorization.openshift.io clusterroles.authorization.openshift.io rolebindingrestrictions.authorization.openshift.io rolebindings.authorization.openshift.io roles.authorization.openshift.io horizontalpodautoscalers.autoscaling clusterautoscalers.autoscaling.openshift.io machineautoscalers.autoscaling.openshift.io cronjobs.batch jobs.batch sealedsecrets.bitnami.com buildconfigs.build.openshift.io builds.build.openshift.io certificatesigningrequests.certificates.k8s.io credentialsrequests.cloudcredential.openshift.io apiservers.config.openshift.io authentications.config.openshift.io builds.config.openshift.io clusteroperators.config.openshift.io clusterversions.config.openshift.io consoles.config.openshift.io dnses.config.openshift.io featuregates.config.openshift.io images.config.openshift.io infrastructures.config.openshift.io ingresses.config.openshift.io networks.config.openshift.io oauths.config.openshift.io operatorhubs.config.openshift.io projects.config.openshift.io proxies.config.openshift.io schedulers.config.openshift.io consoleclidownloads.console.openshift.io consoleexternalloglinks.console.openshift.io consolelinks.console.openshift.io consolenotifications.console.openshift.io consoleyamlsamples.console.openshift.io leases.coordination.k8s.io endpointslices.discovery.k8s.io ingresses.extensions flowschemas.flowcontrol.apiserver.k8s.io prioritylevelconfigurations.flowcontrol.apiserver.k8s.io images.image.openshift.io imagestreamimages.image.openshift.io imagestreams.image.openshift.io imagestreamtags.image.openshift.io imagetags.image.openshift.io configs.imageregistry.operator.openshift.io imagepruners.imageregistry.operator.openshift.io dnsrecords.ingress.operator.openshift.io network-attachment-definitions.k8s.cni.cncf.io machinehealthchecks.machine.openshift.io machines.machine.openshift.io machinesets.machine.openshift.io containerruntimeconfigs.machineconfiguration.openshift.io controllerconfigs.machineconfiguration.openshift.io kubeletconfigs.machineconfiguration.openshift.io machineconfigpools.machineconfiguration.openshift.io machineconfigs.machineconfiguration.openshift.io baremetalhosts.metal3.io provisionings.metal3.io nodes.metrics.k8s.io storagestates.migration.k8s.io storageversionmigrations.migration.k8s.io alertmanagers.monitoring.coreos.com podmonitors.monitoring.coreos.com prometheuses.monitoring.coreos.com prometheusrules.monitoring.coreos.com servicemonitors.monitoring.coreos.com thanosrulers.monitoring.coreos.com clusternetworks.network.openshift.io egressnetworkpolicies.network.openshift.io hostsubnets.network.openshift.io netnamespaces.network.openshift.io operatorpkis.network.operator.openshift.io ingressclasses.networking.k8s.io ingresses.networking.k8s.io networkpolicies.networking.k8s.io runtimeclasses.node.k8s.io oauthaccesstokens.oauth.openshift.io oauthauthorizetokens.oauth.openshift.io oauthclientauthorizations.oauth.openshift.io oauthclients.oauth.openshift.io authentications.operator.openshift.io cloudcredentials.operator.openshift.io configs.operator.openshift.io consoles.operator.openshift.io csisnapshotcontrollers.operator.openshift.io dnses.operator.openshift.io etcds.operator.openshift.io imagecontentsourcepolicies.operator.openshift.io ingresscontrollers.operator.openshift.io kubeapiservers.operator.openshift.io kubecontrollermanagers.operator.openshift.io kubeschedulers.operator.openshift.io kubestorageversionmigrators.operator.openshift.io networks.operator.openshift.io openshiftapiservers.operator.openshift.io openshiftcontrollermanagers.operator.openshift.io servicecas.operator.openshift.io catalogsources.operators.coreos.com clusterserviceversions.operators.coreos.com installplans.operators.coreos.com operatorgroups.operators.coreos.com operatorsources.operators.coreos.com subscriptions.operators.coreos.com packagemanifests.packages.operators.coreos.com poddisruptionbudgets.policy podsecuritypolicies.policy projectrequests.project.openshift.io projects.project.openshift.io appliedclusterresourcequotas.quota.openshift.io clusterresourcequotas.quota.openshift.io clusterrolebindings.rbac.authorization.k8s.io clusterroles.rbac.authorization.k8s.io rolebindings.rbac.authorization.k8s.io roles.rbac.authorization.k8s.io routes.route.openshift.io configs.samples.operator.openshift.io priorityclasses.scheduling.k8s.io rangeallocations.security.openshift.io securitycontextconstraints.security.openshift.io volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io volumesnapshots.snapshot.storage.k8s.io csidrivers.storage.k8s.io csinodes.storage.k8s.io storageclasses.storage.k8s.io volumeattachments.storage.k8s.io brokertemplateinstances.template.openshift.io templateinstances.template.openshift.io templates.template.openshift.io profiles.tuned.openshift.io tuneds.tuned.openshift.io groups.user.openshift.io identities.user.openshift.io useridentitymappings.user.openshift.io users.user.openshift.io ippools.whereabouts.cni.cncf.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Initial fetchResourcesBulk done (5s)"
time="2020-11-18T09:17:04+01:00" level=debug msg="Fetch resources incrementally"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [ippools.whereabouts.cni.cncf.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [componentstatuses]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [kubestorageversionmigrators.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [configmaps]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [endpoints]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [networks.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [openshiftapiservers.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [openshiftcontrollermanagers.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [servicecas.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [catalogsources.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusterserviceversions.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [installplans.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [operatorgroups.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [operatorsources.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [subscriptions.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [packagemanifests.packages.operators.coreos.com]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [poddisruptionbudgets.policy]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [podsecuritypolicies.policy]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [projectrequests.project.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [projects.project.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [appliedclusterresourcequotas.quota.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusterresourcequotas.quota.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusterrolebindings.rbac.authorization.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusterroles.rbac.authorization.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [rolebindings.rbac.authorization.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [roles.rbac.authorization.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [routes.route.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [configs.samples.operator.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [rangeallocations.security.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [securitycontextconstraints.security.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [volumesnapshotclasses.snapshot.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [volumesnapshotcontents.snapshot.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [volumesnapshots.snapshot.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [csidrivers.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [csinodes.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [storageclasses.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [volumeattachments.storage.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [brokertemplateinstances.template.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [templateinstances.template.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [templates.template.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [profiles.tuned.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [tuneds.tuned.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [groups.user.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [identities.user.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [useridentitymappings.user.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [users.user.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [credentialsrequests.cloudcredential.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [apiservers.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [authentications.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [builds.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusteroperators.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [clusterversions.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [consoles.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [dnses.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [featuregates.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [images.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [infrastructures.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [ingresses.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [networks.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [oauths.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [operatorhubs.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [projects.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [proxies.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [schedulers.config.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [priorityclasses.scheduling.k8s.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [consoleclidownloads.console.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [consoleexternalloglinks.console.openshift.io]"
time="2020-11-18T09:17:04+01:00" level=debug msg="Resources to fetch: [consolelinks.console.openshift.io]"
time="2020-11-18T09:17:07+01:00" level=debug msg="Resources to fetch: [consolenotifications.console.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [consoleyamlsamples.console.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [leases.coordination.k8s.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [endpointslices.discovery.k8s.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [ingresses.extensions]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [flowschemas.flowcontrol.apiserver.k8s.io]"
time="2020-11-18T09:17:09+01:00" level=warning msg="Cannot fetch: the server does not allow this method on the requested resource"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [prioritylevelconfigurations.flowcontrol.apiserver.k8s.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [images.image.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [imagestreamimages.image.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [imagestreams.image.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [imagestreamtags.image.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [imagetags.image.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [configs.imageregistry.operator.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [imagepruners.imageregistry.operator.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [dnsrecords.ingress.operator.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [network-attachment-definitions.k8s.cni.cncf.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [machinehealthchecks.machine.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [machines.machine.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [machinesets.machine.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [containerruntimeconfigs.machineconfiguration.openshift.io]"
time="2020-11-18T09:17:09+01:00" level=debug msg="Resources to fetch: [controllerconfigs.machineconfiguration.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [kubeletconfigs.machineconfiguration.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [machineconfigpools.machineconfiguration.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [machineconfigs.machineconfiguration.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [baremetalhosts.metal3.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [provisionings.metal3.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [nodes.metrics.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [storagestates.migration.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [storageversionmigrations.migration.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [alertmanagers.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [podmonitors.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [prometheuses.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [prometheusrules.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [servicemonitors.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [thanosrulers.monitoring.coreos.com]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [clusternetworks.network.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [egressnetworkpolicies.network.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [hostsubnets.network.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [netnamespaces.network.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [operatorpkis.network.operator.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [ingressclasses.networking.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [ingresses.networking.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [networkpolicies.networking.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [runtimeclasses.node.k8s.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [oauthaccesstokens.oauth.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [oauthauthorizetokens.oauth.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [oauthclientauthorizations.oauth.openshift.io]"
time="2020-11-18T09:17:10+01:00" level=debug msg="Resources to fetch: [oauthclients.oauth.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [authentications.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [cloudcredentials.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [configs.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [consoles.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [csisnapshotcontrollers.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [dnses.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [etcds.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [imagecontentsourcepolicies.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [ingresscontrollers.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [kubeapiservers.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [kubecontrollermanagers.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [kubeschedulers.operator.openshift.io]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [limitranges]"
time="2020-11-18T09:17:11+01:00" level=debug msg="Resources to fetch: [namespaces]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [nodes]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [persistentvolumeclaims]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [persistentvolumes]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [pods]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [podtemplates]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [replicationcontrollers]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [resourcequotas]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [secrets]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [serviceaccounts]"
time="2020-11-18T09:17:12+01:00" level=debug msg="Resources to fetch: [services]"
time="2020-11-18T09:17:13+01:00" level=debug msg="Resources to fetch: [mutatingwebhookconfigurations.admissionregistration.k8s.io]"
time="2020-11-18T09:17:13+01:00" level=debug msg="Resources to fetch: [validatingwebhookconfigurations.admissionregistration.k8s.io]"
time="2020-11-18T09:17:13+01:00" level=debug msg="Resources to fetch: [customresourcedefinitions.apiextensions.k8s.io]"
time="2020-11-18T09:17:13+01:00" level=debug msg="Resources to fetch: [apiservices.apiregistration.k8s.io]"
time="2020-11-18T09:17:13+01:00" level=debug msg="Resources to fetch: [controllerrevisions.apps]"
time="2020-11-18T09:17:14+01:00" level=debug msg="Resources to fetch: [daemonsets.apps]"
time="2020-11-18T09:17:14+01:00" level=debug msg="Resources to fetch: [deployments.apps]"
time="2020-11-18T09:17:14+01:00" level=debug msg="Resources to fetch: [replicasets.apps]"
time="2020-11-18T09:17:14+01:00" level=debug msg="Resources to fetch: [statefulsets.apps]"
time="2020-11-18T09:17:14+01:00" level=debug msg="Resources to fetch: [deploymentconfigs.apps.openshift.io]"
time="2020-11-18T09:17:15+01:00" level=debug msg="Resources to fetch: [applications.argoproj.io]"
time="2020-11-18T09:17:15+01:00" level=debug msg="Resources to fetch: [appprojects.argoproj.io]"
time="2020-11-18T09:17:16+01:00" level=debug msg="Resources to fetch: [argocdexports.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [argocds.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [clusterworkflowtemplates.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [cronworkflows.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [workfloweventbindings.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [workflows.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [clusterrolebindings.authorization.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [clusterroles.authorization.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [workflowtemplates.argoproj.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [rolebindingrestrictions.authorization.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [rolebindings.authorization.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [roles.authorization.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [horizontalpodautoscalers.autoscaling]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [clusterautoscalers.autoscaling.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=warning msg="Cannot fetch: Unable to list "image.openshift.io/v1, Resource=imagestreamimages": the server could not find the requested resource"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [machineautoscalers.autoscaling.openshift.io]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [cronjobs.batch]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [jobs.batch]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [sealedsecrets.bitnami.com]"
time="2020-11-18T09:17:17+01:00" level=debug msg="Resources to fetch: [buildconfigs.build.openshift.io]"
time="2020-11-18T09:17:18+01:00" level=debug msg="Resources to fetch: [builds.build.openshift.io]"
time="2020-11-18T09:17:18+01:00" level=debug msg="Resources to fetch: [certificatesigningrequests.certificates.k8s.io]"
time="2020-11-18T09:17:20+01:00" level=debug msg="Requests done (elapsed 16s)"
time="2020-11-18T09:17:20+01:00" level=debug msg="Using tabwriter"
time="2020-11-18T09:17:20+01:00" level=debug msg="Wrapping *printer.TablePrinter with FlattenListAdapterPrinter"
time="2020-11-18T09:17:20+01:00" level=fatal msg="print list item: print list item: object does not implement the Object interfaces"

Shell completion does not work properly

Describe the bug
Debug output is mistakenly shown in the shell completion choices:

$ ./ketall <TAB>
completion   -- generate the autocompletion script for the specified shell
help         -- Help about any command
version      -- Print the version information
:4           Completion ended with directive: ShellCompDirectiveNoFileComp

The problem is that Cobra's shell completion sends debug printouts to stderr but ketall redirects it to stdout.

To Reproduce
Steps to reproduce the behaviour:

make dev
source <(./ketall completion zsh)
compdef _ketall ketall
./ketall <TAB>

Expected behavior
Debug message should not be shown during shell completion

I will be posting a PR soon.

Skip empty item lists

Describe the bug
When running ketall --since 1s -o yaml, most resource types are empty, but they are printed as

apiVersion: v1
items:
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
- items: null
  metadata: {}
kind: List
metadata: {}

Expected behavior
Empty lists should be skipped altogether.

Filter results by creation timestamp

Is your feature request related to a problem? Please describe.
After applying some resources from the web, like kubectl apply -f https://github.com/some.yaml, I want to know what happened in my cluster.

Describe the solution you'd like
One way is to offer a --since flag, so that the results from ketall only show recent resources. For example

ketall --since 1m
ketall --since 1d
ketall --since 1s
ketall --since 1h5m7s
...

Other possible names for this flag: --after, --younger-than, --max-age, probably more :)

Duplicate ingress extensions/v1beta1 in output

Describe the bug
Output contains ingress twice, once with extensions/v1beta1 and once with networking.k8s.io/v1

To Reproduce
Steps to reproduce the behavior:

  1. kubectl get-all -oyaml > all.yaml
  2. open all.yaml

*Problem
Output yaml contains duplicate and deprecated ingress extensions/v1beta1

system info

  • kubernetes v1.21.2

Getting FATA[0083] print list item

After downloading ketall and executing ketall (ketall version
v1.3.2)
I get the following error at the end of the output:

ketall
WARN[0066] Cannot fetch: the server does not allow this method on the requested resource 
WARN[0068] Cannot fetch: the server doesn't have a resource type "kuberneteses" 
WARN[0071] Cannot fetch: the server doesn't have a resource type "identities" 
WARN[0071] Cannot fetch: the server doesn't have a resource type "migclusters" 
WARN[0071] Cannot fetch: the server doesn't have a resource type "metrics" 
WARN[0072] Cannot fetch: the server doesn't have a resource type "certificates" 
WARN[0072] Cannot fetch: the server doesn't have a resource type "volumesnapshotlocations" 
WARN[0073] Cannot fetch: the server doesn't have a resource type "apis" 
WARN[0073] Cannot fetch: the server doesn't have a resource type "mcoconfigs" 
WARN[0073] Cannot fetch: the server doesn't have a resource type "metrics" 
WARN[0074] Cannot fetch: the server doesn't have a resource type "ingresses" 
WARN[0074] Cannot fetch: the server doesn't have a resource type "apiservers" 
WARN[0075] Cannot fetch: the server doesn't have a resource type "memquotas" 
WARN[0075] Cannot fetch: the server doesn't have a resource type "config" 
WARN[0076] Cannot fetch: the server doesn't have a resource type "packagemanifests" 
WARN[0077] Cannot fetch: the server doesn't have a resource type "clusteroperators" 
WARN[0078] Cannot fetch: the server doesn't have a resource type "apimanagers" 
WARN[0079] Cannot fetch: the server doesn't have a resource type "tenants" 
WARN[0080] Cannot fetch: the server doesn't have a resource type "firewallrules" 
WARN[0081] Cannot fetch: the server doesn't have a resource type "oauthclients" 
WARN[0081] Cannot fetch: the server doesn't have a resource type "clustertriggerbindings" 
WARN[0081] Cannot fetch: the server doesn't have a resource type "apikeys" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "authentications" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "clusterserviceversions" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "backups" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "kafkaconnectors" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "servicebindingrequests" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "kialis" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "keycloakrealms" 
WARN[0082] Cannot fetch: Unable to list "image.openshift.io/v1, Resource=imagestreamimages": the server could not find the requested resource 
WARN[0082] Cannot fetch: the server doesn't have a resource type "policies" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "consoleclidownloads" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "operatorsources" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "deployables" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "operatorhubs" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "tuneds" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "apiservices" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "mongodbs" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "argocdexports" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "stdios" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "cars" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "clusterrolebindings" 
WARN[0082] Cannot fetch: the server doesn't have a resource type "consolelinks" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "clusterrolebindings" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "fluentds" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "activemqartemisaddresses" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "oauths" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "hostsubnets" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "operatorgroups" 
WARN[0083] Cannot fetch: the server doesn't have a resource type "leases" 
FATA[0083] print list item: print list item: object does not implement the Object interfaces 

client oc version
Client Version: 4.4.6
Server Version: 4.4.5
Kubernetes Version: v1.17.1

To Reproduce
see above

NOTE: I assume this is harmless and no objects have been found in the namespace

Add separator between resource types

Is your feature request related to a problem? Please describe.
Currently we get one list for all resource types. Would be useful to have it grouped by resource type.

Currently

configmap/coredns                                                                        kube-system  27d    
configmap/extension-apiserver-authentication                                             kube-system  27d    
configmap/kube-proxy                                                                     kube-system  27d    
configmap/kubeadm-config                                                                 kube-system  27d    
configmap/kubelet-config-1.13                                                            kube-system  27d    
endpoints/kube-controller-manager                                                        kube-system  27d    
endpoints/kube-dns                                                                       kube-system  27d    
endpoints/kube-scheduler                                                                 kube-system  27d 

Describe the solution you'd like
Proposal

configmaps:

configmap/coredns                                                                        kube-system  27d    
configmap/extension-apiserver-authentication                                             kube-system  27d    
configmap/kube-proxy                                                                     kube-system  27d    
configmap/kubeadm-config                                                                 kube-system  27d    
configmap/kubelet-config-1.13                                                            kube-system  27d 


endpoints:

endpoints/kube-controller-manager                                                        kube-system  27d    
endpoints/kube-dns                                                                       kube-system  27d    
endpoints/kube-scheduler                                                                 kube-system  27d 

Describe alternatives you've considered
I was basing how k get all works.
Additional context
In case of namespace with a lot of resources - there is easier visually to look at results

How to delete resources

Is your feature request related to a problem? Please describe.

I'd like to delete all resources found by ketall.

Describe the solution you'd like

I can think of 2 solutions:

  1. Implement a --delete flag to delete all matching resources
  2. Create an output that can get piped into kubectl delete i.e. This would be more generic, since you could then also apply other actions than delete.

Describe alternatives you've considered

Additional context

json and yaml output should be valid

Describe the bug
When using the -ojson or -oyaml options, the objects are printed without any separator, so that the output is no longer valid.
For example it prints {}{} instead of valid json [{},{}]

Desktop (please complete the following information):

  • output of ketall version --full: v0.0.1
  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version v0.0.1

No resources returned in v1.3.4

Describe the bug
No resources are being returned in the latest version of the krew plugin.

To Reproduce
Steps to reproduce the behavior:

  1. kubectl get-all -n bar
  2. See error:
    DEBU[0000] Set log-level to debug DEBU[0001] Resources to fetch: [] DEBU[0001] Initial fetchResourcesBulk done (0s) DEBU[0001] Fetch resources incrementally DEBU[0001] Requests done (elapsed 0s) WARN[0001] No resources found, are you authorized? Try to narrow the scope with --namespace. FATA[0001] no resources found

Expected behavior
I expected too see the same resources I could in v1.3.2

Screenshots
image

Desktop (please complete the following information):

  • output of ketall version --full:

ketall: v1.3.4
platform: darwin/amd64
git commit: 071f5c7
build date: 2020-09-04T23:14:49Z
go version: go1.15
compiler: gc

  • OS: MacOS
  • Browser: Firefox
  • Version 1.3.4

Additional context
Exact same command and kubectl version worked fine for version 1.3.2, seems to be a bug.

build is 'passing' but binary fails: `exec format error`

Describe the bug
Following the steps from Installation - OSX and then running ketall results in the following error message: exec format error: ketall

To Reproduce
Steps to reproduce the behavior:

  1. curl -Lo ketall.gz https://github.com/corneliusweig/ketall/releases/download/v1.3.6/ketall-amd64-darwin.tar.gz
  2. gunzip ketall.gz
  3. chmod +x ketall
  4. mv ketall $GOPATH/bin/
    1. See error

Expected behavior
ketall should function as designed, such as demonstrated here: Demo

Desktop (please complete the following information):

  • output of ketall version --full: n/a
  • OS: macOS 11.1
  • shell: zsh 5.8 (x86_64-apple-darwin20.0)

Additional context
I confirmed the same symptoms with v1.3.5 and v1.3.4. I even tried to make/build locally, and still got the same error

Let the user exclude fully-qualified resource kinds

Is your feature request related to a problem? Please describe.
Some resource kinds are outputted twice because of the API group changes. For example, Deployment is both listed as part of extensions and apps. I'd like to be able to avoid seeing duplicate resources by excluding the deprecated API group kinds.

Describe the solution you'd like
I'd like to be able to explicitly exclude deployments.extensions but not deployments.apps when using --exclude. Right now, one can only --exclude=deployments which results in excluding both resource kinds.

Describe alternatives you've considered
Right now, I'm filtering out the output using another yaml utility.

Do not fail if a user is not cluster admin

Currently, ketall needs cluster admin rights, because every resource on the cluster is retrieved.

To make ketall useful for non-cluster admins, it should show exactly the resources that the user may access.

Ketall yaml output is inconsistent with k8s standard

Apparently, ketall yaml list formatting is inconsistent with standard k8s output. This forces other plugins to work around:

https://github.com/nathforge/kubectl-split-yaml/blob/f1731237efcf876af9af31f6e6df350b70885c2b/internal/walkresources/walkresources.go#L97-L118

kubectl would represent two items as:
// apiVersion: v1
// kind: List
// items:
// - AAA
// - BBB
//
// ketall represents the same two items as:
// apiVersion: v1
// kind: List
// items:
// - items:
// - AAA
// - BBB
//
// Notice the extra items objects with no apiVersion or kind.

It would be better to solve this in ketall and be fully compliant.

cc @nathforge

Default operation to be consistent with kubectl

Neat plugin, like it. At last I get to see what's inside my cluster!

To be consistent with kubectl, you should default to the current namespace view.
then allow -A for all namespaces and --namespace (which I believe is already there.

My 2c

Thanks for writing this piece of code

maybe exclude event.events.k8s.io by default?

I can hardly think anyone would actually want to get all events (and similar status objects). The output is much more useful when I run get-all | grep -v ^event.

Maybe exclude events/* and event.events.k8s.io/* by default and offer an --include-events flag?

Plugin cannot be used as 'kubectl get-all' due to naming conventions

Describe the bug

According to https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/#naming-a-plugin, dashes in the plugin name are used to delimit subcommands. However, because get is a built-in kubectl command, naming the plugin executable kubectl-get-all does not override kubectl get all, and kubectl get-all is ignored altogether.

For example, adding a subcommand kubectl create foo by naming your plugin kubectl-create-foo will cause that plugin to be ignored.

-- https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/#limitations

To Reproduce

  1. Symlink the plugin executable in 2 different manners:

    kubectl-get-all_v1.3.2_linux-amd64
    kubectl-get-all -> kubectl-get-all_v1.3.2_linux-amd64
    kubectl-getall -> kubectl-get-all_v1.3.2_linux-amd64
  2. Run kubectl get-all and kubectl getall

  3. Observe that kubectl get-all returns the error Error: unknown command "get-all" for "kubectl", while kubectl getall succeeds.

Expected behavior

This repo should change all mentions to kubectl-get-all, including in the release artifacts' names.

Desktop

  • kubectl v1.16.6
  • OS: Linux

ketall can't be used with `client.authentication.k8s.io/v1`

Describe the bug

When using a kubeconfig with credential plugins with API version client.authentication.k8s.io/v1, ketall fails with:

$ k get-all -n default
F1206 14:58:22.079749   53609 ket_all.go:34] fetch available group resources: discovery client: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1"
goroutine 1 [running]:
...

My kubeconfig looks like this and works with kubectl:

$ k config view --minify
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    extensions:
    - extension:
        gardenClusterIdentity: dev
        shootRef:
          name: tim-test
          namespace: garden-test
      name: client.authentication.k8s.io/exec
    server: https://api.tim-test.test.s.ske.eu01.onstackit.cloud
  name: garden-test--tim-test
contexts:
- context:
    cluster: garden-test--tim-test
    namespace: default
    user: garden-test--tim-test
  name: garden-test--tim-test
current-context: garden-test--tim-test
kind: Config
preferences: {}
users:
- name: garden-test--tim-test
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1
      args:
      - get-client-certificate
      command: kubectl-gardenlogin
      env: null
      installHint: Follow the instructions on https://github.com/gardener/gardenlogin#installation
        to install gardenlogin
      interactiveMode: IfAvailable
      provideClusterInfo: true

$ k get ns
NAME              STATUS   AGE
default           Active   251d
kube-node-lease   Active   251d
kube-public       Active   251d
kube-system       Active   251d

To Reproduce
Steps to reproduce the behavior:

  1. Get a kubeconfig with credentials plugin in client.authentication.k8s.io/v1, e.g. using gardenctl
  2. Run k get-all -n default

Expected behavior

ketall should also work with credentials plugins in client.authentication.k8s.io/v1

Screenshots

n/a

Desktop (please complete the following information):

  • output of ketall version --full:
ketall:     v1.3.8
platform:   darwin/arm64
git commit: bb67dbaa7f35189b26de7b6f83576de778338737
build date: 2021-08-14T19:29:22Z
go version: go1.16.7
compiler:   gc
  • OS: macOS 13.6

Additional context

n/a

Add option to skip failed GETs

I get error

$ kubectl get-all
FATA[0001] fetch available group resources: get preferred resources: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request

Apparently this can sometimes happen with metrics-server scraping node metrics.

A --skip-failed option (maybe shows warnings to stderr at the end), could help.

ketall with EKS and aws-iam-authenticator leads to socket exhaustion

Describe the bug
Using ketall with an EKS setup and https://github.com/kubernetes-sigs/aws-iam-authenticator leads to many aws client created and eventually socket descriptor exhaustion.

To Reproduce
Steps to reproduce the behavior:

  1. Have an EKS + IAM auth setup
  2. Run kubectl get-all
  3. You'll see a bunch of messages like (with the client count incrementing):
    W0828 08:26:24.925622 16543 exec.go:201] constructing many client instances from the same exec auth config can cause performance problems during cert rotation and can exhaust available network connections; 1831 clients constructed calling "aws"
  4. Then error messages like :
    WARN[0035] Cannot fetch: Get https://REDACTED.gr7.us-east-1.eks.amazonaws.com/apis/extensions/v1beta1/replicasets: dial tcp 10.6.4.45:443: socket: too many open files

Expected behavior
The plugin should reuse the aws instance? Not so sure where the problem lies TBH, feel free to redirect me!

Desktop (please complete the following information):

  • get-all v1.3.2
  • OS: Ubuntu 18.04

Additional context
Related issue : kubernetes-sigs/aws-iam-authenticator#308
Might help others too if I link kubernetes/kubectl#151 (that's how I ended up finding your plugin)

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

github.com/corneliusweig/ketall/cmd: cannot find module providing package github.com/corneliusweig/ketall/cmd

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

get-all prints cluster resources even when specifying namespace flag

> kc get-all -n dev
...
...
...
...
clusterrole.rbac.authorization.k8s.io/view

Desktop (please complete the following information):

  • output of ketall version --full:
kc get-all version --full
ketall:     v1.3.3
platform:   darwin/amd64
git commit: 6db091575a5a9fb493330468c1c4d2a521171689
build date: 2020-09-01T22:36:59Z
go version: go1.15
compiler:   gc

Support label selectors

Is your feature request related to a problem? Please describe.
I want to get all resources limited by a specific label selector.

Describe the solution you'd like
It would be great if ketall would support the "--selector" flag just as kubectl get does.

Describe alternatives you've considered
My alternative is to use "kubectl get" for each api-resource.

Additional context
Some of the kubernetes resources I create with terraform and label them with a custom label, eg. "k8s.example.com/terraform=owned". I want to collect all resources in the cluster that I have created with terraform by using a label selector.

Should we exclude podmetrics by default?

Think about podmetrics.metrics.k8s.io to be excluded by default together with events. It is totally unuseful resource which will be listed all the time.

This is especially ruining the output when using --since flag.

[krew] Distribute with license

👋 Hello, maintainer of the kubectl plugin manager krew here.

Thank you for your commitment to open source by making this plugin available via krew!

Krew wants to give credit where credit is due by installing the proper license file for the plugins it distributes. However, your plugin was found to not contain any license file. We wanted to remind you that if you're using a license such as Apache 2.0, you should be bundling your LICENSE file with your plugin’s distributions.

What do you have to do?

  • Please ensure your GitHub repository has a license file.
  • Make sure your archive file (.tar.gz or .zip) contains the license file.
  • Please submit a pull-request to krew-index and update the files: section to copy the file to the installation directory. Have a look at this PR for an example: https://github.com/kubernetes-sigs/krew-index/pull/314/files

If you need further assistance, don't hesitate to ask for help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.