All Projects β†’ rajatjindal β†’ krew-release-bot

rajatjindal / krew-release-bot

Licence: Apache-2.0 license
bot to bump version of plugin in krew-index on new releases

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to krew-release-bot

kubectl-view-webhook
πŸ‘€ ‼️ This projects aims to visualize critical parts of the admission webhook configuration resource
Stars: ✭ 96 (+174.29%)
Mutual labels:  kubectl, krew
KuiClientTemplate
Use this template to make your own custom graphical terminal, via the Kui Grahpical CLI Framework
Stars: ✭ 26 (-25.71%)
Mutual labels:  kubectl, krew
kubectl-janitor
List Kubernetes objects in a problematic state
Stars: ✭ 48 (+37.14%)
Mutual labels:  kubectl, krew
kubectl-whoami
This plugin gets the subject name using the effective kubeconfig
Stars: ✭ 74 (+111.43%)
Mutual labels:  kubectl, krew
kubehelper
KubeHelper - simplifies many daily Kubernetes cluster tasks through a web interface. Search, analysis, run commands, cron jobs, reports, filters, git synchronization and many more.
Stars: ✭ 200 (+471.43%)
Mutual labels:  kubectl
gitops-kubernetes-cluster
A quick way to build a cluster with ArgoCD then deploy via Applications
Stars: ✭ 34 (-2.86%)
Mutual labels:  kubectl
kubectlsafe
Safe operations in kubectl with plugin kubectlsafe
Stars: ✭ 36 (+2.86%)
Mutual labels:  kubectl
release
No description or website provided.
Stars: ✭ 32 (-8.57%)
Mutual labels:  release
config-registry
Switch between kubeconfigs and avoid unintentional operation on your production clusters.
Stars: ✭ 23 (-34.29%)
Mutual labels:  krew
kubeconfig-loader
A simple bash script for rotating local kubeconfigs
Stars: ✭ 20 (-42.86%)
Mutual labels:  kubectl
aksctl
An easy to use CLI for AKS cluster
Stars: ✭ 46 (+31.43%)
Mutual labels:  kubectl
kubeadm-vagrant
Setup Kubernetes Cluster with Kubeadm and Vagrant
Stars: ✭ 49 (+40%)
Mutual labels:  kubectl
kubectl-secretdata
A kubectl plugin for viewing decoded Secret data with search flags.
Stars: ✭ 37 (+5.71%)
Mutual labels:  kubectl
kahoy
Simple Kubernetes raw manifests deployment tool
Stars: ✭ 33 (-5.71%)
Mutual labels:  kubectl
kx
A more stream lined way to move around k8s contexts and namespaces
Stars: ✭ 21 (-40%)
Mutual labels:  kubectl
releasify
A tool to release in a simpler way your module
Stars: ✭ 54 (+54.29%)
Mutual labels:  release
kube-lineage
A CLI tool to display all dependencies or dependents of an object in a Kubernetes cluster.
Stars: ✭ 238 (+580%)
Mutual labels:  kubectl
kubectl-ssh-plugin-eks
This is plugin to SSH into Worker Nodes running on AWS
Stars: ✭ 18 (-48.57%)
Mutual labels:  kubectl
sensorr
πŸΏπŸ“Ό Sensorr - Your Friendly Digital Video Recorder
Stars: ✭ 90 (+157.14%)
Mutual labels:  release
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (-37.14%)
Mutual labels:  release

Netlify Status

krew-release-bot is a bot that automates the update of plugin manifests in krew-index when a new version of your kubectl plugin is released. If a release is marked as a 'prerelease' in github, it will not be released to the krew index.

To trigger krew-release-bot you can use a github-action which sends the event to the bot.

Basic Setup

  • Make sure you have enabled github actions for your repo
  • Add a .krew.yaml template file at the root of your repo. Refer to kubectl-evict-pod repo for an example.
  • To setup the action, add the following snippet after the step that publishes the new release and assets:
    - name: Update new version in krew-index
      uses: rajatjindal/[email protected]
    Check out the goreleaser example below for details.
Example when using go-releaser

<your-git-root>/.github/workflows/release.yml

name: release
on:
  push:
    tags:
      - "v*.*.*"
jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Setup Go
        uses: actions/setup-go@v1
        with:
          go-version: 1.16
      - name: GoReleaser
        uses: goreleaser/goreleaser-action@v1
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Update new version in krew-index
        uses: rajatjindal/[email protected]

** You can also customize the release assets names, platforms for which build is done using .goreleaser.yml file in root of your git repo.

Examples using krew-release-bot in different ways

Testing the template file

You can test the template file rendering before check-in to the repo by running following command

$ docker run -v /path/to/your/template-file.yaml:/tmp/template-file.yaml rajatjindal/krew-release-bot:v0.0.43 \
  krew-release-bot template --tag <tag-name> --template-file /tmp/template-file.yaml

Inputs for the action

Key Default Value Description
workdir env.GITHUB_WORKSPACE Overrides the GitHub workspace directory path
krew_template_file .krew.yaml The path to template file relative to $workdir. e.g. templates/misc/plugin-name.yaml

Limitations of krew-release-bot

  • only works for repos hosted on github right now
  • The first version of plugin has to be submitted manually, by plugin author, to the krew-index repo

Kubernetes CLA

krew-release-bot is just a service to open PR on your behalf to release a new version of the krew-plugin. Your CLA agreement (that you did when submitting the new plugin to krew-index) is still applicable on these PR's.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].