diff --git a/README.md b/README.md index bb9ffcc38..0f1106a0b 100644 --- a/README.md +++ b/README.md @@ -840,6 +840,7 @@ There are 56 apps that you can install on your cluster. | [run-job](https://github.com/alexellis/run-job) | Run a Kubernetes Job and get the logs when it's done. | | [scaleway-cli](https://github.com/scaleway/scaleway-cli) | Scaleway CLI is a tool to help you pilot your Scaleway infrastructure directly from your terminal. | | [seaweedfs](https://github.com/seaweedfs/seaweedfs) | SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! | +| [skupper](https://github.com/skupperproject/skupper) | Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication | | [sops](https://github.com/getsops/sops) | Simple and flexible tool for managing secrets | | [stern](https://github.com/stern/stern) | Multi pod and container log tailing for Kubernetes. | | [syft](https://github.com/anchore/syft) | CLI tool and library for generating a Software Bill of Materials from container images and filesystems | @@ -862,6 +863,6 @@ There are 56 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 138 tools, use `arkade get NAME` to download one. +There are 140 tools, use `arkade get NAME` to download one. > Note to contributors, run `arkade get --format markdown` to generate this list diff --git a/pkg/get/get_test.go b/pkg/get/get_test.go index 6eb35c387..bbf0c7c5a 100644 --- a/pkg/get/get_test.go +++ b/pkg/get/get_test.go @@ -6567,3 +6567,61 @@ func Test_VHS(t *testing.T) { } } } + +func Test_DownloaSkupper(t *testing.T) { + tools := MakeTools() + name := "skupper" + + tool := getTool(name, tools) + + const toolVersion = "1.4.2" + + tests := []test{ + { + os: "linux", + arch: arch64bit, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-linux-amd64.tgz`, + }, + { + os: "darwin", + arch: arch64bit, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-mac-amd64.tgz`, + }, + { + os: "linux", + arch: archARM64, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-linux-arm64.tgz`, + }, + { + os: "darwin", + arch: archDarwinARM64, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-mac-arm64.tgz`, + }, + { + os: "linux", + arch: archARM7, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-linux-arm32.tgz`, + }, + { + os: "ming", + arch: arch64bit, + version: toolVersion, + url: `https://github.com/skupperproject/skupper/releases/download/1.4.2/skupper-cli-1.4.2-windows-amd64.zip`, + }, + } + + 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.Errorf("want: %s, got: %s", tc.url, got) + } + } +} diff --git a/pkg/get/tools.go b/pkg/get/tools.go index 6854ff56e..cf782d681 100644 --- a/pkg/get/tools.go +++ b/pkg/get/tools.go @@ -3804,5 +3804,41 @@ https://github.com/{{.Owner}}/{{.Repo}}/releases/download/{{.Version}}/{{.Repo}} `, }) + tools = append(tools, + Tool{ + Owner: "skupperproject", + Repo: "skupper", + Name: "skupper", + Description: "Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication", + BinaryTemplate: ` + {{$os := .OS}} + {{$arch := .Arch}} + {{$ext := "tgz"}} + + {{- if eq .OS "darwin" -}} + {{$os = "mac"}} + {{- else if eq .OS "linux" -}} + {{ $os = "linux" }} + {{- end -}} + + {{- if eq .Arch "aarch64" -}} + {{$arch = "arm64"}} + {{- else if eq .Arch "arm64" -}} + {{ $arch = "arm64" }} + {{- else if eq .Arch "x86_64" -}} + {{ $arch = "amd64" }} + {{- else if eq .Arch "armv7l" -}} + {{ $arch = "arm32" }} + {{- end -}} + + {{ if HasPrefix .OS "ming" -}} + {{$os = "windows"}} + {{$ext = "zip"}} + {{- end -}} + + + skupper-cli-{{.VersionNumber}}-{{$os}}-{{$arch}}.{{$ext}} + `, + }) return tools }