Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add labctl to tools #1121

Merged
merged 1 commit into from
Sep 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ kubeconfig
mc
/arkade-*
/faas-cli*
test.out
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -824,8 +824,8 @@ There are 52 apps that you can install on your cluster.
| [k3s](https://github.com/k3s-io/k3s) | Lightweight Kubernetes |
| [k3sup](https://github.com/alexellis/k3sup) | Bootstrap Kubernetes with k3s over SSH < 1 min. |
| [k9s](https://github.com/derailed/k9s) | Provides a terminal UI to interact with your Kubernetes clusters. |
| [kail](https://github.com/boz/kail) | Kubernetes log viewer.
| [keploy](https://github.com/keploy/keploy) | Generate tests and stubs for your application that actually work! |
| [kail](https://github.com/boz/kail) | Kubernetes log viewer. |
| [keploy](https://github.com/keploy/keploy) | Test generation for Developers. Generate tests and stubs for your application that actually work! |
| [kgctl](https://github.com/squat/kilo) | A CLI to manage Kilo, a multi-cloud network overlay built on WireGuard and designed for Kubernetes. |
| [kim](https://github.com/rancher/kim) | Build container images inside of Kubernetes. (Experimental) |
| [kind](https://github.com/kubernetes-sigs/kind) | Run local Kubernetes clusters using Docker container nodes. |
Expand Down Expand Up @@ -853,6 +853,7 @@ There are 52 apps that you can install on your cluster.
| [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 |
| [kwokctl](https://github.com/kubernetes-sigs/kwok) | CLI tool designed to streamline the creation and management of clusters, with nodes simulated by `kwok` |
| [kyverno](https://github.com/kyverno/kyverno) | CLI to apply and test Kyverno policies outside a cluster. |
| [labctl](https://github.com/iximiuz/labctl) | iximiuz Labs control - start remote microVM playgrounds from the command line. |
| [lazydocker](https://github.com/jesseduffield/lazydocker) | A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. |
| [lazygit](https://github.com/jesseduffield/lazygit) | A simple terminal UI for git commands. |
| [linkerd2](https://github.com/linkerd/linkerd2) | Ultralight, security-first service mesh for Kubernetes. |
Expand Down Expand Up @@ -912,6 +913,6 @@ There are 52 apps that you can install on your cluster.
| [waypoint](https://github.com/hashicorp/waypoint) | Easy application deployment for Kubernetes and Amazon ECS |
| [yq](https://github.com/mikefarah/yq) | Portable command-line YAML processor. |
| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Fork of youtube-dl with additional features and fixes |
There are 153 tools, use `arkade get NAME` to download one.
There are 155 tools, use `arkade get NAME` to download one.

> Note to contributors, run `go build && ./arkade get --format markdown` to generate this list
38 changes: 38 additions & 0 deletions pkg/get/get_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7778,3 +7778,41 @@ func Test_Download_k0sctl(t *testing.T) {
}
}
}

func Test_Download_labctl(t *testing.T) {
tools := MakeTools()
name := "labctl"
const toolVersion = "v0.1.8"

tool := getTool(name, tools)

tests := []test{
{
os: "darwin",
arch: arch64bit,
version: toolVersion,
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_darwin_amd64.tar.gz",
},
{
os: "darwin",
arch: archDarwinARM64,
version: toolVersion,
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_darwin_arm64.tar.gz",
},
{
os: "linux",
arch: arch64bit,
version: toolVersion,
url: "https://github.com/iximiuz/labctl/releases/download/v0.1.8/labctl_linux_amd64.tar.gz",
},
}
for _, tc := range tests {
got, err := tool.GetURL(tc.os, tc.arch, tc.version, false)
if err != nil {
t.Fatal(err)
}
if got != tc.url {
t.Fatalf("\nwant: %s\ngot: %s", tc.url, got)
}
}
}
26 changes: 26 additions & 0 deletions pkg/get/tools.go
Original file line number Diff line number Diff line change
Expand Up @@ -4240,5 +4240,31 @@ https://github.com/{{.Owner}}/{{.Repo}}/releases/download/{{.Version}}/{{.Name}}
keploy_{{$os}}_{{$arch}}.{{$ext}}
`,
})
tools = append(tools,
Tool{
Owner: "iximiuz",
Repo: "labctl",
Name: "labctl",
Description: "iximiuz Labs control - start remote microVM playgrounds from the command line.",
BinaryTemplate: `
{{ $os := .OS }}
{{ $arch := .Arch }}
{{ $ext := "tar.gz" }}

{{- if (or (eq .Arch "aarch64") (eq .Arch "arm64")) -}}
{{ $arch = "arm64" }}
{{- else if eq .Arch "x86_64" -}}
{{ $arch = "amd64" }}
{{- end -}}

{{- if eq .OS "darwin" -}}
{{$os = "darwin"}}
{{- else if eq .OS "linux" -}}
{{ $os = "linux" }}
{{- end -}}

labctl_{{$os}}_{{$arch}}.{{$ext}}
`,
})
return tools
}