Skip to content

Commit

Permalink
feat: krew plugin workflow (#214)
Browse files Browse the repository at this point in the history
* Added krew plugin workflow

* Removed $ from kubectl command

* Removed usage examples
  • Loading branch information
doronkg committed Mar 3, 2024
1 parent 379f27a commit 07d6f3e
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 4 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/release.yml
Expand Up @@ -33,18 +33,20 @@ jobs:
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract metadata for the Docker image
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ secrets.DOCKERHUB_USERNAME }}/kor

- name: Build and push the Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}


- name: Update new version in krew-index
uses: rajatjindal/krew-release-bot@v0.0.46
43 changes: 43 additions & 0 deletions .krew.yaml
@@ -0,0 +1,43 @@
apiVersion: krew.googlecontainertools.github.com/v1alpha2
kind: Plugin
metadata:
name: kor
spec:
version: {{ .TagName }}
homepage: https://github.com/yonahd/kor
shortDescription: Kor is a tool to discover unused K8s resources.
description: |
This plugin shows unused Kubernetes resources (namespaced or cluster-scoped).
It provides additional capabilities such as exporting Prometheus metrics,
deleting unused resources, and more!
platforms:
- selector:
matchLabels:
os: linux
arch: amd64
{{ addURIAndSha "https://github.com/yonahd/kor/releases/download/{{ .TagName }}/kor_Linux_x86_64.tar.gz" .TagName }}
bin: kor
- selector:
matchLabels:
os: linux
arch: arm64
{{ addURIAndSha "https://github.com/yonahd/kor/releases/download/{{ .TagName }}/kor_Linux_arm64.tar.gz" .TagName }}
bin: kor
- selector:
matchLabels:
os: darwin
arch: amd64
{{ addURIAndSha "https://github.com/yonahd/kor/releases/download/{{ .TagName }}/kor_Darwin_x86_64.tar.gz" .TagName }}
bin: kor
- selector:
matchLabels:
os: darwin
arch: arm64
{{ addURIAndSha "https://github.com/yonahd/kor/releases/download/{{ .TagName }}/kor_Darwin_arm64.tar.gz" .TagName }}
bin: kor
- selector:
matchLabels:
os: windows
arch: amd64
{{ addURIAndSha "https://github.com/yonahd/kor/releases/download/{{ .TagName }}/kor_Windows_x86_64.zip" .TagName }}
bin: kor.exe
5 changes: 5 additions & 0 deletions README.md
Expand Up @@ -55,6 +55,11 @@ docker run --rm -i yonahdissen/kor
docker run --rm -i -v "/path/to/.kube/config:/root/.kube/config" yonahdissen/kor all
```

### Kubectl plugin (<img src="https://raw.githubusercontent.com/kubernetes-sigs/krew/master/assets/logo/horizontal/color/krew-horizontal-color.png" alt="krew" width="48"/>)
```sh
kubectl krew install kor
```

### Helm
Run as a cronjob in your Cluster (with an option for sending slack updates)
```sh
Expand Down
13 changes: 12 additions & 1 deletion cmd/kor/root.go
Expand Up @@ -3,6 +3,8 @@ package kor
import (
"fmt"
"os"
"path/filepath"
"strings"

"github.com/spf13/cobra"

Expand All @@ -11,8 +13,17 @@ import (
"github.com/yonahd/kor/pkg/utils"
)

func execName() string {
n := "kor"
if strings.HasPrefix(filepath.Base(os.Args[0]), "kubectl-") {
return "kubectl-" + n
}

return n
}

var rootCmd = &cobra.Command{
Use: "kor",
Use: execName(),
Short: "kor - a CLI to to discover unused Kubernetes resources",
Long: `kor is a CLI to to discover unused Kubernetes resources
kor can currently discover unused configmaps and secrets`,
Expand Down

0 comments on commit 07d6f3e

Please sign in to comment.