{"id":13530955,"url":"https://github.com/yokawasa/action-setup-kube-tools","last_synced_at":"2025-04-04T17:06:08.777Z","repository":{"id":37174775,"uuid":"277055822","full_name":"yokawasa/action-setup-kube-tools","owner":"yokawasa","description":"Github Action that setup Kubernetes tools (kubectl, kustomize, helm, kubeconform, conftest, yq, rancher, tilt, skaffold) very fast and cache them on the runner. Please [✩Star] if you're using it!","archived":false,"fork":false,"pushed_at":"2024-11-04T00:35:24.000Z","size":1177,"stargazers_count":83,"open_issues_count":3,"forks_count":25,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T16:09:58.790Z","etag":null,"topics":["conftest","github-action","github-actions","helm","kube-score","kubeconform","kubectl","kubernetes","kubeval","kustomize","rancher","skaffold","tilt","yq"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yokawasa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-04T06:50:02.000Z","updated_at":"2025-03-24T16:02:17.000Z","dependencies_parsed_at":"2024-02-18T08:23:48.528Z","dependency_job_id":"d594c5a8-6f89-4fb4-9406-aee61db9a549","html_url":"https://github.com/yokawasa/action-setup-kube-tools","commit_stats":{"total_commits":132,"total_committers":10,"mean_commits":13.2,"dds":0.2272727272727273,"last_synced_commit":"43578ec888141679992b977ffb78da774f27a4c5"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":"actions/typescript-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokawasa%2Faction-setup-kube-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokawasa%2Faction-setup-kube-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokawasa%2Faction-setup-kube-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yokawasa%2Faction-setup-kube-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yokawasa","download_url":"https://codeload.github.com/yokawasa/action-setup-kube-tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247024144,"owners_count":20870939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conftest","github-action","github-actions","helm","kube-score","kubeconform","kubectl","kubernetes","kubeval","kustomize","rancher","skaffold","tilt","yq"],"created_at":"2024-08-01T07:00:58.415Z","updated_at":"2025-04-04T17:06:08.745Z","avatar_url":"https://github.com/yokawasa.png","language":"TypeScript","funding_links":[],"categories":["Community Resources"],"sub_categories":["Utility"],"readme":"[![action-setup-kube-tools Test](https://github.com/yokawasa/action-setup-kube-tools/actions/workflows/test.yml/badge.svg)](https://github.com/yokawasa/action-setup-kube-tools/actions/workflows/test.yml)\n\n# action-setup-kube-tools\nA GitHub Action that setup Kubernetes tools (kubectl, kustomize, helm, kubeconform, conftest, yq, rancher, tilt, skaffold, kube-score) and cache them on the runner. It is like a typescript version of [stefanprodan/kube-tools](https://github.com/stefanprodan/kube-tools) with no command input param, but as compared with [it](https://github.com/stefanprodan/kube-tools), it's **very fast** as it installs the tools asynchronously.\n\n## Usage\n\n### Inputs\n\n|Parameter|Required|Default Value|Description|\n|:--:|:--:|:--:|:--|\n|`fail-fast`|`false`|`true`| the action immediately fails when it fails to download (ie. due to a bad version) |\n|`arch-type`|`false`|`amd64`| The processor architecture type of the tool binary to setup. Supported types are only `amd64` and `arm64`. If a type other than the supported Types is specified, it will be treated as `amd64`.|\n|`setup-tools`|`false`|`\"\"`|List of tool name to setup. By default, the action download and setup all supported Kubernetes tools. By specifying `setup-tools` you can choose which tools the action setup. Supported separator is `return` in multi-line string. Supported tools are `kubectl`, `kustomize`, `helm`, `helmv3`,  `kubeval`, `conftest`, `yq`, `rancher`, `tilt`, `skaffold`, `kube-score`|\n|`kubectl`|`false`|`1.24.10`| kubectl version. kubectl vesion can be found [here](https://github.com/kubernetes/kubernetes/releases)|\n|`kustomize`|`false`|`5.0.0`| kustomize version. kustomize vesion can be found [here](https://github.com/kubernetes-sigs/kustomize/releases)|\n|`helm`|`false`|`3.11.1`| helm version. helm vesion can be found [here](https://github.com/helm/helm/releases)|\n|`kubeval`|`false`|`0.16.1`| kubeval version (must be **0.16.1+**). kubeval vesion can be found [here](https://github.com/instrumenta/kubeval/releases).\u003cbr\u003e NOTE: this parameter is deprecating as `kubeval` is no longer maintained. A good replacement is [kubeconform](https://github.com/yannh/kubeconform). See also [this](https://github.com/instrumenta/kubeval) for more details.|\n|`kubeconform`|`false`|`0.5.0`| kubeconform version. kubeconform vesion can be found [here](https://github.com/yannh/kubeconform/releases)|\n|`conftest`|`false`|`0.39.0`| conftest version. conftest vesion can be found [here](https://github.com/open-policy-agent/conftest/releases)|\n|`yq`|`false`|`4.30.7`| yq version. yq vesion can be found [here](https://github.com/mikefarah/yq/releases/)|\n|`rancher`|`false`|`2.7.0`| Rancher CLI version. Rancher CLI vesion can be found [here](https://github.com/rancher/cli/releases)|\n|`tilt`|`false`|`0.31.2`| Tilt version. Tilt vesion can be found [here](https://github.com/tilt-dev/tilt/releases)|\n|`skaffold`|`false`|`2.1.0`| Skaffold version. Skaffold vesion can be found [here](https://github.com/GoogleContainerTools/skaffold/releases)|\n|`kube-score`|`false`|`1.16.1`| kube-score version. kube-score vesion can be found [here](https://github.com/zegl/kube-score/releases)|\n\n\u003e - Supported Environments: Linux\n\u003e - From v0.7.0, the action supports tool version 'v' prefix. Prior to v0.7.0, the action only accept the tool version without 'v' prefix but from v0.7.0 the action automatically add/remove the prefix as necessary\n\u003e \n### Outputs\n|Parameter|Description|\n|:--:|:--|\n|`kubectl-path`| kubectl command path if the action setup the tool, otherwise empty string |\n|`kustomize-path`| kustomize command path if the action setup the tool, otherwise empty string |\n|`helm-path`| helm command path if the action setup the tool, otherwise empty string |\n|`kubeval-path`| kubeval command path if the action setup the tool, otherwise empty string |\n|`kubeconform-path`| kubeconform command path if the action setup the tool, otherwise empty string |\n|`conftest-path`| conftest command path if the action setup the tool, otherwise empty string |\n|`yq-path`| yq command path if the action setup the tool, otherwise empty string |\n|`rancher-path`| rancher command path if the action setup the tool, otherwise empty string |\n|`tilt-path`| rancher command path if the action setup the tool, otherwise empty string |\n|`skaffold-path`| rancher command path if the action setup the tool, otherwise empty string |\n|`kube-score-path:`| rancher command path if the action setup the tool, otherwise empty string |\n\n### Sample Workflow\n\nSpecific versions for the commands can be setup by adding inputs parameters like this:\n\n```yaml\n  test: \n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - uses: yokawasa/action-setup-kube-tools@v0.11.2\n      with:\n        kubectl: '1.25'\n        kustomize: '5.0.0'\n        helm: '3.11.1'\n        kubeconform: '0.5.0'\n        conftest: '0.39.0'\n        rancher: '2.7.0'\n        tilt: '0.31.2'\n        skaffold: '2.1.0'\n        kube-score: '1.16.1'\n    - run: |\n        kubectl version --client\n        kustomize version\n        helm version\n        kubeconform -v\n        conftest --version\n        yq --version\n        rancher --version\n        tilt version\n        skaffold version\n        kube-score version\n```\n\nDefault versions for the commands will be setup if you don't give any inputs like this:\n\n```yaml\n  test: \n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - uses: yokawasa/action-setup-kube-tools@v0.11.2\n    - run: |\n        kubectl version --client\n        kustomize version\n        helm version\n        kubeconform -v\n        conftest --version\n        yq --version\n        rancher --version\n        tilt version\n        skaffold version\n        kube-score version\n```\n\nBy specifying setup-tools you can choose which tools the action setup. Supported separator is return in multi-line string like this\n\n```yaml\n  test: \n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - uses: yokawasa/action-setup-kube-tools@v0.11.2\n      with:\n        setup-tools: |\n          kubectl\n          helm\n          kustomize\n          skaffold\n        kubectl: '1.25'\n        helm: '3.11.1'\n        kustomize: '5.0.0'\n        skaffold: '2.1.0'\n    - run: |\n        kubectl version --client\n        kustomize version\n        helm version\n        skaffold version\n```\n\nBy specifying arch-type you can choose the processor architecture type of the tool binary to setup. Supported types are only `amd64`(default) and `arm64`.\n\n```yaml\n  test: \n    steps:\n    - uses: actions/checkout@v4\n    - uses: yokawasa/action-setup-kube-tools@v0.11.2\n      with:\n        arch-type: 'arm64'\n        setup-tools: |\n          kubectl\n          helm\n          kustomize\n          skaffold\n        kubectl: '1.25'\n        helm: '3.11.1'\n        kustomize: '5.0.0'\n        skaffold: '2.1.0'\n    - run: |\n        kubectl version --client\n        kustomize version\n        helm version\n        skaffold version\n```\n\n\n## Developing the action\n\nInstall the dependencies  \n```bash\nnpm install\n```\n\nBuild the typescript and package it for distribution by running [ncc](https://github.com/zeit/ncc)\n```bash\nnpm run build \u0026\u0026 npm run format \u0026\u0026 npm run lint \u0026\u0026 npm run pack\n```\n\nFinally push the results\n```\ngit add dist\ngit commit -a -m \"prod dependencies\"\ngit push origin releases/v0.11.2\n```\n\n## References\n\n- https://kubernetes.io/releases/\n- https://github.com/kubernetes-sigs/kustomize/releases\n- https://github.com/helm/helm/releases\n- https://helm.sh/docs/topics/version_skew/\n- https://github.com/instrumenta/kubeval/releases\n- https://github.com/open-policy-agent/conftest/releases\n- https://github.com/mikefarah/yq/releases\n- https://github.com/rancher/cli/releases\n- https://github.com/tilt-dev/tilt/releases\n- https://github.com/GoogleContainerTools/skaffold/releases\n- https://github.com/zegl/kube-score/releases\n\n## Contributing\nBug reports and pull requests are welcome on GitHub at https://github.com/yokawasa/action-setup-kube-tools\n\n## Changelog\n\nPlease see the [list of releases](https://github.com/yokawasa/action-setup-kube-tools/releases) for information on changes between releases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyokawasa%2Faction-setup-kube-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyokawasa%2Faction-setup-kube-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyokawasa%2Faction-setup-kube-tools/lists"}