Skip to content

Commit 0f87fbd

Browse files
rgee0alexellis
authored andcommitted
feat: add labctl to tools
Signed-off-by: Richard Gee <richard@technologee.co.uk>
1 parent 3b0565f commit 0f87fbd

File tree

4 files changed

+69
-3
lines changed

4 files changed

+69
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ kubeconfig
77
mc
88
/arkade-*
99
/faas-cli*
10+
test.out

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -824,8 +824,8 @@ There are 52 apps that you can install on your cluster.
824824
| [k3s](https://github.com/k3s-io/k3s) | Lightweight Kubernetes |
825825
| [k3sup](https://github.com/alexellis/k3sup) | Bootstrap Kubernetes with k3s over SSH < 1 min. |
826826
| [k9s](https://github.com/derailed/k9s) | Provides a terminal UI to interact with your Kubernetes clusters. |
827-
| [kail](https://github.com/boz/kail) | Kubernetes log viewer.
828-
| [keploy](https://github.com/keploy/keploy) | Generate tests and stubs for your application that actually work! |
827+
| [kail](https://github.com/boz/kail) | Kubernetes log viewer. |
828+
| [keploy](https://github.com/keploy/keploy) | Test generation for Developers. Generate tests and stubs for your application that actually work! |
829829
| [kgctl](https://github.com/squat/kilo) | A CLI to manage Kilo, a multi-cloud network overlay built on WireGuard and designed for Kubernetes. |
830830
| [kim](https://github.com/rancher/kim) | Build container images inside of Kubernetes. (Experimental) |
831831
| [kind](https://github.com/kubernetes-sigs/kind) | Run local Kubernetes clusters using Docker container nodes. |
@@ -853,6 +853,7 @@ There are 52 apps that you can install on your cluster.
853853
| [kwok](https://github.com/kubernetes-sigs/kwok) | KWOK stands for Kubernetes WithOut Kubelet, responsible for simulating the lifecycle of fake nodes, pods, and other Kubernetes API resources |
854854
| [kwokctl](https://github.com/kubernetes-sigs/kwok) | CLI tool designed to streamline the creation and management of clusters, with nodes simulated by `kwok` |
855855
| [kyverno](https://github.com/kyverno/kyverno) | CLI to apply and test Kyverno policies outside a cluster. |
856+
| [labctl](https://github.com/iximiuz/labctl) | iximiuz Labs control - start remote microVM playgrounds from the command line. |
856857
| [lazydocker](https://github.com/jesseduffield/lazydocker) | A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. |
857858
| [lazygit](https://github.com/jesseduffield/lazygit) | A simple terminal UI for git commands. |
858859
| [linkerd2](https://github.com/linkerd/linkerd2) | Ultralight, security-first service mesh for Kubernetes. |
@@ -912,6 +913,6 @@ There are 52 apps that you can install on your cluster.
912913
| [waypoint](https://github.com/hashicorp/waypoint) | Easy application deployment for Kubernetes and Amazon ECS |
913914
| [yq](https://github.com/mikefarah/yq) | Portable command-line YAML processor. |
914915
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Fork of youtube-dl with additional features and fixes |
915-
There are 153 tools, use `arkade get NAME` to download one.
916+
There are 155 tools, use `arkade get NAME` to download one.
916917

917918
> Note to contributors, run `go build && ./arkade get --format markdown` to generate this list

pkg/get/get_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7778,3 +7778,41 @@ func Test_Download_k0sctl(t *testing.T) {
77787778
}
77797779
}
77807780
}
7781+
7782+
func Test_Download_labctl(t *testing.T) {
7783+
tools := MakeTools()
7784+
name := "labctl"
7785+
const toolVersion = "v0.1.8"
7786+
7787+
tool := getTool(name, tools)
7788+
7789+
tests := []test{
7790+
{
7791+
os: "darwin",
7792+
arch: arch64bit,
7793+
version: toolVersion,
7794+
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_darwin_amd64.tar.gz",
7795+
},
7796+
{
7797+
os: "darwin",
7798+
arch: archDarwinARM64,
7799+
version: toolVersion,
7800+
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_darwin_arm64.tar.gz",
7801+
},
7802+
{
7803+
os: "linux",
7804+
arch: arch64bit,
7805+
version: toolVersion,
7806+
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_linux_amd64.tar.gz",
7807+
},
7808+
}
7809+
for _, tc := range tests {
7810+
got, err := tool.GetURL(tc.os, tc.arch, tc.version, false)
7811+
if err != nil {
7812+
t.Fatal(err)
7813+
}
7814+
if got != tc.url {
7815+
t.Fatalf("\nwant: %s\ngot: %s", tc.url, got)
7816+
}
7817+
}
7818+
}

pkg/get/tools.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4240,5 +4240,31 @@ https://github.com/{{.Owner}}/{{.Repo}}/releases/download/{{.Version}}/{{.Name}}
42404240
keploy_{{$os}}_{{$arch}}.{{$ext}}
42414241
`,
42424242
})
4243+
tools = append(tools,
4244+
Tool{
4245+
Owner: "iximiuz",
4246+
Repo: "labctl",
4247+
Name: "labctl",
4248+
Description: "iximiuz Labs control - start remote microVM playgrounds from the command line.",
4249+
BinaryTemplate: `
4250+
{{ $os := .OS }}
4251+
{{ $arch := .Arch }}
4252+
{{ $ext := "tar.gz" }}
4253+
4254+
{{- if (or (eq .Arch "aarch64") (eq .Arch "arm64")) -}}
4255+
{{ $arch = "arm64" }}
4256+
{{- else if eq .Arch "x86_64" -}}
4257+
{{ $arch = "amd64" }}
4258+
{{- end -}}
4259+
4260+
{{- if eq .OS "darwin" -}}
4261+
{{$os = "darwin"}}
4262+
{{- else if eq .OS "linux" -}}
4263+
{{ $os = "linux" }}
4264+
{{- end -}}
4265+
4266+
labctl_{{$os}}_{{$arch}}.{{$ext}}
4267+
`,
4268+
})
42434269
return tools
42444270
}

0 commit comments

Comments
 (0)