yashbhutwala / kubectl-df-pv Goto Github PK
View Code? Open in Web Editor NEWkubectl plugin - giving admins df (disk free) like utility for persistent volumes
License: Apache License 2.0
kubectl plugin - giving admins df (disk free) like utility for persistent volumes
License: Apache License 2.0
I can't find any option to get machine-readable output, such as JSON, so that we can e.g. set up automatic alerts when disk usage reaches a threshold.
@yashbhutwala @Volatus @ybstaked I noticed that when using the df-pv plugin the Size of PVC was showingSIZE 7GB however when I check within the pod it is showing 8GB. Is this a bug?
Currently, when no volumes are found the command does not display anything. So it's unclear if the command succeeded or not.
It would be better, if the command would print some informative message, similar to what kubectl get pods
does:
No resources found in default namespace.
This is an awesome project! Thank you for working on this much needed feature!
I installed this plugin via:
kubectl krew install df-pv
I am unable to use the standard kubectl flags to switch the context and the namespace and I get this error:
$ kubectl --context $kubecontext df-pv
Error: flags cannot be placed before plugin name: --context
I work with multiple clusters at a time and so setting the kubectx would be time consuming.
Error:%IUSED > 100
PV NAME PVC NAME NAMESPACE NODE NAME POD NAME VOLUME MOUNT NAME SIZE USED AVAILABLE %USED IUSED IFREE %IUSED
pvc-c3fafdc4-85ca-46e9-9c9c-6bfb4688f441 grafana-pvc-fs monitoring k8s-myhome-node-02 grafana-69d969b8db-f57sk grafana-storage 1024Mi 8Mi 1016Mi 0.78 6 18446744073709551615 120.00
kubectl krew install df-pv
Updated the local copy of plugin index.
Installing plugin: df-pv
Installed plugin: df-pv
\
| Use this plugin:
| kubectl df-pv
| Documentation:
| https://github.com/yashbhutwala/kubectl-df-pv
/
WARNING: You installed plugin "df-pv" from the krew-index plugin repository.
These plugins are not audited for security by the Krew maintainers.
Run them at your own risk.
kubectl df-pv
INFO[2021-07-19T16:32:50Z] Either no volumes found in namespace/s: 'all' or the storage provisioner used for the volumes does not publish metrics to kubelet
kubectl df-pv all
Error: accepts at most 0 arg(s), received 1
Usage:
df-pv [flags]
Flags:
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--cache-dir string Default HTTP cache directory (default "/home/apatsev/.kube/http-cache")
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--context string The name of the kubeconfig context to use
-d, --disable-color boolean flag for disabling colored output
-h, --help help for df-pv
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to the kubeconfig file to use for CLI requests.
-n, --namespace string If present, the namespace scope for this CLI request
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
-s, --server string The address and port of the Kubernetes API server
--tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
-v, --verbosity string log level; one of [info, debug, trace, warn, error, fatal, panic] (default "info")
FATA[0000] unable to run root command: accepts at most 0 arg(s), received 1
run df-pv root command
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:30
main.main
/home/runner/work/kubectl-df-pv/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
/opt/hostedtoolcache/go/1.14.7/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.7/x64/src/runtime/asm_amd64.s:1373
➜ kubectl df-pv
'Tipz:' k df-pv
Error: unknown command "df-pv" for "kubectl"
Run 'kubectl --help' for usage.
➜ which df-pv
~/.go/bin/df-pv
I can run command from CLI df-pv
and it works correctly, but unable via the kubectl
thanks,
Dmitry
I wanted to include the output of kubectl df-pv
in an email, but df-pv
outputs color codes even when stdout is not a tty device. It would be great to either autodetect this situation, or at least have a --no-color
option.
Here is an example of the PV/PVC that does exists in kubernetes state, yet it's not used (nor exists in AWS volumes)
➜ k get pvc -n metrics
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
grafana-persistent-storage Bound pvc-1395291c-d89b-11e9-8a64-0a4976158cfe 1Gi RWO gp2 398d
➜ k describe pv pvc-1395291c-d89b-11e9-8a64-0a4976158cfe
Name: pvc-1395291c-d89b-11e9-8a64-0a4976158cfe
Labels: failure-domain.beta.kubernetes.io/region=eu-central-1
failure-domain.beta.kubernetes.io/zone=eu-central-1c
Annotations: kubernetes.io/createdby: aws-ebs-dynamic-provisioner
pv.kubernetes.io/bound-by-controller: yes
pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs
Finalizers: [kubernetes.io/pv-protection]
StorageClass: gp2
Status: Bound
Claim: metrics/grafana-persistent-storage
Reclaim Policy: Delete
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 1Gi
Node Affinity:
Required Terms:
Term 0: failure-domain.beta.kubernetes.io/zone in [eu-central-1c]
failure-domain.beta.kubernetes.io/region in [eu-central-1]
Message:
Source:
Type: AWSElasticBlockStore (a Persistent Disk resource in AWS)
VolumeID: aws://eu-central-1c/vol-0b92b7db07b87b3e8
FSType: ext4
Partition: 0
ReadOnly: false
Events: <none>
➜ aws ec2 describe-volumes --volume-ids vol-0b92b7db07b87b3e8
An error occurred (InvalidVolume.NotFound) when calling the DescribeVolumes operation: The volume 'vol-0b92b7db07b87b3e8' does not exist.
would be nice to see output for these PV, PVCs with POD column empty
I installed the using krew and also as per mac instruction,
% kubectl df-pv -n ngfw-saas-stg
+ kubectl df-pv -n ngfw-saas-stg
Error: error getting output slice: Get "https://<url>:443/api/v1/namespaces/ngfw-saas-stg/pods": dial tcp <ip>: i/o timeout
Usage:
df-pv [flags]
with mac installatino
% kubectl df-pv
+ kubectl df-pv
error: unknown command "df-pv" for "kubectl"
Followed the installation commands as is.
this tool is very useful!
kubectl-df-pv/pkg/plugin/plugin.go
Line 84 in 5813f63
=> response: int64 :)
> kubectl df-pv
Searching for PVCs ⠴json: cannot unmarshal number 18446744073709551615 into Go struct field Volume.inodesFree of type int
there is no flag which will sort the output in ascending or descending order
Will work on adding this
can't use the plugin, did I miss something?
Hi, Thanks for this amazing plugin.
While using this, the plugin throws the below error for one namespace alone. I've around 5+ namespaces. Of all of this, only one is producing an issue. Not sure why though.
Error:
INFO[2020-12-08T10:58:38Z] TODO goroutine error handling; current actor was interrupted with: failed to get stats from node: resource name may not be empty
INFO[2020-12-08T10:58:38Z] TODO goroutine error handling; current actor was interrupted with: failed to get stats from node: resource name may not be empty
I1208 10:58:39.384456 1995 request.go:621] Throttling request took 1.089050551s, request: GET:https://k8s-apiserver.cluster.local:8443/api/v1/nodes/node20/proxy/stats/summary
INFO[2020-12-08T10:58:47Z] TODO goroutine error handling; current actor was interrupted with: failed to get stats from node: resource name may not be empty
INFO[2020-12-08T10:58:47Z] TODO goroutine error handling; current actor was interrupted with: failed to get stats from node: resource name may not be empty
While with trace verbosity I could see that few metrics are being collected for some PVC's though. But not sure why it gets stuck post that and doesn't respond.
Very much appreciate your support on this.
Thanks @yashbhutwala for such an amazing util. It is helping us great for our performance analysis.
I've a query on this.
Currently on the usage front, it displays the SIZE,USED,AVAILABLE,%USED,IUSED,IFREE,%IUSED columns.
Is it possible to display the REQUESTS & CAPACITY of each PVC?
I use the below command to get that details separately and run yours separately and then combine both.
kubectl get pvc --all-namespaces -o custom-columns="NAMESPACE:.metadata.namespace,NAME:metadata.name,REQUESTS:spec.resources.requests.storage,CAPACITY:status.capacity.storage"
While I do that, I was thinking it would be great to get those via your kubectl-df-pv.
I'm not sure if such feature currently exists.
Thanks!
If a PVC is running out of space, we usually need to expand the PVC size.
We can do it automatically by installing some external plugins like pvc-autoresizer, Kubernetes-Volume-Autoscaler
But if we don't, we need to edit the PVC to change the size parameter manually.
How about bringing that manual process into this tool?
Something like this: kubectl df-pv resize <pvc-name> 20Gi
Just wanted to let you know that it worked great on my AWS EKS cluster. Really helped solve I problem I was having. My setup is pretty simple. WSL 2.0 Ubuntu 20.04 with AWS CLI and Kubectl installed. I just use "aws eks update-kubeconfig" to set my connection to the cluster and standard kubectl commands work fine. Below is a screenshot:
i just upgraded the df-pv plugin from v0.1.5 to v0.2.4 ...
Unfortunately now the file ~/.kube/config is required!
Only with a successful login this file exists. If you're logged in via kubeconfig (export KUBECONFIG=/path/to/kubeconfig) this file doesn't exists and the plugin crashes with the following error message:
Error: error getting output slice: unable to build config from flags: stat /root/.kube/config: no such file or directory
Usage:
df-pv [flags]
Flags:
-h, --help help for df-pv
-n, --namespace string if present, the namespace scope for this CLI request (default is all namespaces)
-v, --verbosity string log level; one of [info, debug, trace, warn, error, fatal, panic] (default "info")
FATA[2020-07-13T15:48:40+02:00] unable to run root command: stat /root/.kube/config: no such file or directory
unable to build config from flags
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.GetSliceOfOutputRowPVC
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:442
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.runRootCommand
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:70
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.setupRootCommand.func1
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:53
github.com/spf13/cobra.(*Command).execute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:950
github.com/spf13/cobra.(*Command).Execute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:887
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:30
main.main
/home/runner/work/kubectl-df-pv/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/asm_amd64.s:1373
error getting output slice
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.runRootCommand
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:72
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.setupRootCommand.func1
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:53
github.com/spf13/cobra.(*Command).execute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:950
github.com/spf13/cobra.(*Command).Execute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:887
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:30
main.main
/home/runner/work/kubectl-df-pv/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/asm_amd64.s:1373
run df-pv root command
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
/home/runner/work/kubectl-df-pv/kubectl-df-pv/pkg/df-pv/root.go:30
main.main
/home/runner/work/kubectl-df-pv/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/proc.go:203
runtime.goexit
/opt/hostedtoolcache/go/1.14.4/x64/src/runtime/asm_amd64.s:1373
This file shouldn't be required ... it worked in v0.1.5 without any issues! :(
x509: certificate has expired or is not yet valid: current time 2021-04-26T10:18:22+02:00 is after 2021-04-07T03:12:06Z
Could you please update?
thx
Mateusz
Hi,
nice plugin, thanks for that!
It would be nice to have the ability to limit PVCs usage query to only a specific subset by using labels.
Eg. kubectl-df_pv -l app=name
to query disk usage only for PVCs used by specific app
Have you been thinking about it?
Hi,
For some pv, the results is strange. I see the whole storage capacity for last 3 pv instead of pv capacity.
The first use rook-ceph-rbd sc, and the last 3 rook-cephfs sc. Do you think it's related to df-pv or CSI ?
NAMESPACE PVC NAME PV NAME POD NAME VOLUME MOUNT NAME SIZE USED AVAILABLE %USED IUSED IFREE %IUSED
sandbox data-drive-preprod-mariadb-galera-0 pvc-5cb1551b-8958-4c4f-8298-42c8c09ab896 drive-preprod-mariadb-galera-0 data 1014Mi 695Mi 318Mi 68.63 304 523984 0.06
sandbox data-drive-preprod-mariadb-tooling-backup pvc-6ccbd327-3f9f-4c5a-a70b-3575c19d502b drive-preprod-mariadb-tooling-restore-shell-c5c585478-wxk5m mariadb 21Gi 500Mi 21Gi 2.27 33290 18446744073709551615 100.00
sandbox drive-preprod-xxx-nextcloud-ncdata pvc-02af006f-b180-4e00-b0f9-d2792b81bdf0 bckp-nextcloud-preprod-xxx-basic-volume-bckp-restore-shellcfgjx source 21Gi 500Mi 21Gi 2.27 33290 18446744073709551615 100.00
sandbox drive-preprod-xxx-nextcloud-ncdata pvc-02af006f-b180-4e00-b0f9-d2792b81bdf0 drive-preprod-xxx-nextcloud-7b877b4d78-w6cg8 data 21Gi 500Mi 21Gi 2.27 33290 18446744073709551615 100.00
I tried to test via
minikube start
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: some-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: standard
resources:
requests:
storage: 2Mi
EOF
which automatically creates a PV, see kubectl get pv
:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-803939a0-13ca-11ea-b74d-0800279f5fff 2Mi RWO Delete Bound default/block-pvc standard 2m57s
However, when running kubectl df-pv
nothing is displayed.
Is this supposed to work if I do not run kubectl proxy ?
Because https://gist.github.com/redmcg/60cfff7bca6f32969188008ad4a44c9a is not.
Following instructions on https://gist.github.com/redmcg/60cfff7bca6f32969188008ad4a44c9a#gistcomment-3192269 , I do not have any PvcRef on : curl -i $KUBEAPI/$node/proxy/stats/summary
What can I do?
When a pv is used by X multiple pods, it appears X times
$ k get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-drive-preprod-mariadb-galera-0 Bound pvc-5cb1551b-8958-4c4f-8298-42c8c09ab896 1Gi RWO rook-ceph-block 35h
data-drive-preprod-mariadb-tooling-backup Bound pvc-6ccbd327-3f9f-4c5a-a70b-3575c19d502b 500Mi RWX rook-cephfs 57d
drive-preprod-xxx-nextcloud-ncdata Bound pvc-02af006f-b180-4e00-b0f9-d2792b81bdf0 1Gi RWX rook-cephfs 57d
$ k df-pv
NAMESPACE PVC NAME PV NAME POD NAME VOLUME MOUNT NAME SIZE USED AVAILABLE %USED IUSED IFREE %IUSED
sandbox data-drive-preprod-mariadb-galera-0 pvc-5cb1551b-8958-4c4f-8298-42c8c09ab896 drive-preprod-mariadb-galera-0 data 1014Mi 704Mi 309Mi 69.51 304 523984 0.06
sandbox data-drive-preprod-mariadb-tooling-backup pvc-6ccbd327-3f9f-4c5a-a70b-3575c19d502b drive-preprod-mariadb-tooling-restore-shell-c5c585478-wxk5m mariadb 21Gi 516Mi 21Gi 2.34 33296 18446744073709551615 100.00
sandbox drive-preprod-xxx-nextcloud-ncdata pvc-02af006f-b180-4e00-b0f9-d2792b81bdf0 bckp-nextcloud-preprod-xxx-basic-volume-bckp-restore-shellcfgjx source 21Gi 516Mi 21Gi 2.34 33296 18446744073709551615 100.00
sandbox drive-preprod-xxx-nextcloud-ncdata pvc-02af006f-b180-4e00-b0f9-d2792b81bdf0 drive-preprod-xxx-nextcloud-7b877b4d78-w6cg8 data 21Gi 516Mi 21Gi 2.34 33296 18446744073709551615 100.00
We have some PV's with 4362206093312 bytes
This corresponds to 3.97 tebibytes, which this tool outputs as 3Ti
kubectl get pvc shows 4Ti, and GCP shows 4096GB for this volume.
"df" can show decimals, I propose this tool should do the same
PR incoming for this
getting
error: unknown command "df-pv" for "kubectl"
Can you specify the minimum RBAC required for accessing proxy/stats/summary
k8s API?
Add a flag for the output to convert the resulting values into MB/GB/TB if possible.
It's already an awesome plug-in (one of my favorite ones)!
I think converting the bytes into MB/GB/TB shouldn't be really complex but will have a huge benefit for the users.
One more cosmetic thing:
Add a line break after "Searching PVCs so that the output starts on a new line.
I saw the colour defs in the code in root.go (50%/75%) that would be great to have it! Please activate it!
TIA
Cheers
I installed from source and recieved the following output after running df-pv
I am using macos hence the cellar gopath
go version
go version go1.15.5 darwin/amd64
error output:
Error: error getting output slice: failed to list nodes: Get "http://localhost:8080/api/v1/nodes": dial tcp [::1]:8080: connect: connection refused
Usage:
df-pv [flags]
Flags:
--as string Username to impersonate for the operation
--as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--cache-dir string Default cache directory (default "/Users/rong/.kube/cache")
--certificate-authority string Path to a cert file for the certificate authority
--client-certificate string Path to a client certificate file for TLS
--client-key string Path to a client key file for TLS
--cluster string The name of the kubeconfig cluster to use
--context string The name of the kubeconfig context to use
-d, --disable-color boolean flag for disabling colored output
-h, --help help for df-pv
--insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure
--kubeconfig string Path to the kubeconfig file to use for CLI requests.
-n, --namespace string If present, the namespace scope for this CLI request
--request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0")
-s, --server string The address and port of the Kubernetes API server
--tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used
--token string Bearer token for authentication to the API server
--user string The name of the kubeconfig user to use
-v, --verbosity string log level; one of [info, debug, trace, warn, error, fatal, panic] (default "info")
FATA[2020-12-08T09:52:06+02:00] unable to run root command: Get "http://localhost:8080/api/v1/nodes": dial tcp [::1]:8080: connect: connection refused
failed to list nodes
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.GetSliceOfOutputRowPVC
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:349
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.runRootCommand
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:76
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.setupRootCommand.func1
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:56
github.com/spf13/cobra.(*Command).execute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:950
github.com/spf13/cobra.(*Command).Execute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:887
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:32
main.main
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
${CELLAR_GOPATH}/src/runtime/proc.go:204
runtime.goexit
${CELLAR_GOPATH}/src/runtime/asm_amd64.s:1374
error getting output slice
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.runRootCommand
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:78
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.setupRootCommand.func1
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:56
github.com/spf13/cobra.(*Command).execute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:842
github.com/spf13/cobra.(*Command).ExecuteC
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:950
github.com/spf13/cobra.(*Command).Execute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/vendor/github.com/spf13/cobra/command.go:887
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:32
main.main
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
${CELLAR_GOPATH}/src/runtime/proc.go:204
runtime.goexit
${CELLAR_GOPATH}/src/runtime/asm_amd64.s:1374
run df-pv root command
github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv.InitAndExecute
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/pkg/df-pv/root.go:32
main.main
${BASE_GOPATH}/src/github.com/yashbhutwala/kubectl-df-pv/cmd/df-pv/main.go:10
runtime.main
${CELLAR_GOPATH}/src/runtime/proc.go:204
runtime.goexit
${CELLAR_GOPATH}/src/runtime/asm_amd64.s:1374
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.