summaryrefslogtreecommitdiff
path: root/nongnu/packages/k8s.scm
diff options
context:
space:
mode:
Diffstat (limited to 'nongnu/packages/k8s.scm')
-rw-r--r--nongnu/packages/k8s.scm217
1 files changed, 217 insertions, 0 deletions
diff --git a/nongnu/packages/k8s.scm b/nongnu/packages/k8s.scm
new file mode 100644
index 0000000..6a8a216
--- /dev/null
+++ b/nongnu/packages/k8s.scm
@@ -0,0 +1,217 @@
+;;; SPDX-License-Identifier: GPL-3.0-or-later
+;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
+
+(define-module (nongnu packages k8s)
+ #:use-module (guix build-system copy)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix packages)
+ #:use-module ((guix licenses) :prefix license:))
+
+(define-public k9s
+ (package
+ (name "k9s")
+ (version "0.27.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/derailed/k9s/releases/download/v"
+ version "/k9s_Linux_amd64.tar.gz"))
+ (sha256
+ (base32
+ "14j37kl8pbmbid4np48cfv5k8vic6ngnc4pjh01qr6szplg861z5"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("k9s" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (invoke "tar" "-xvf" #$source))))))
+ (home-page "https://k9scli.io")
+ (supported-systems '("x86_64-linux"))
+ (synopsis "Kubernetes CLI To Manage Your Clusters In Style")
+ (description
+ "K9s provides a terminal UI to interact with your Kubernetes clusters. The
+aim of this project is to make it easier to navigate, observe and manage your
+applications in the wild. K9s continually watches Kubernetes for changes and
+offers subsequent commands to interact with your observed resources.")
+ (license license:asl2.0)))
+
+(define-public katenary
+ (package
+ (name "katenary")
+ (version "2.0.0-beta2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/metal3d/katenary/releases/download/"
+ version "/katenary-linux-amd64"))
+ (sha256
+ (base32
+ "0vk5c82bf5aasrgz2b7qdjlbmlcjha0r3swmrbs9y5mms18y7m3i"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("katenary" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (copy-file #$source "./katenary")
+ (chmod "katenary" #o644)))
+ (add-before 'install 'chmod
+ (lambda _
+ (chmod "katenary" #o555))))))
+ (home-page "https://github.com/metal3d/katenary")
+ (supported-systems '("x86_64-linux"))
+ (synopsis "Convert docker-compose to a configurable helm chart")
+ (description
+ "Katenary is a tool to help to transform docker-compose files to a working
+Helm Chart for Kubernetes.")
+ (license license:expat)))
+
+(define-public kubectl
+ (package
+ (name "kubectl")
+ (version "1.28.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://dl.k8s.io/release/v" version "/bin/linux/amd64/kubectl"))
+ (sha256
+ (base32
+ "1qbl4a2xv795apvbwahdb9kzcm2wys0am1c72as3iavgs3wxd9z7"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("kubectl" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (copy-file #$source "./kubectl")
+ (chmod "kubectl" #o644)))
+ (add-before 'install 'chmod
+ (lambda _
+ (chmod "kubectl" #o555))))))
+ (home-page "https://github.com/kubernetes/kubectl")
+ (supported-systems '("x86_64-linux"))
+ (synopsis "Kubernetes command line tool")
+ (description
+ "kubectl allows you to run commands against Kubernetes clusters. You can
+use kubectl to deploy applications, inspect and manage cluster resources, and
+view logs.")
+ (license license:asl2.0)))
+
+(define-public kompose
+ (package
+ (name "kompose")
+ (version "1.30.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/kubernetes/kompose/releases/download/v"
+ version "/kompose-linux-amd64"))
+ (sha256
+ (base32
+ "0sy3ci7s2dkjigasyv01nm1vg30wwhmdc0cmglzb23ws8bfrfjlh"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("kompose" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (copy-file #$source "./kompose")))
+ (add-before 'install 'chmod
+ (lambda _
+ (chmod "kompose" #o555))))))
+ (home-page "https://kompose.io")
+ (supported-systems '("x86_64-linux"))
+ (synopsis "Go from Docker Compose to Kubernetes")
+ (description
+ "Kompose is a conversion tool for Docker Compose to container orchestrators
+such as Kubernetes (or OpenShift).")
+ (license license:expat)))
+
+(define-public helm-kubernetes
+ (package
+ (name "helm-kubernetes")
+ (version "3.12.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://get.helm.sh/helm-v" version "-linux-amd64.tar.gz"))
+ (sha256
+ (base32
+ "1d99c506shnz5cr9xhkrla5r82nan7v3hz631jqflicd376i68qv"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("linux-amd64/helm" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (invoke "tar" "-xvf" #$source)))
+ (add-before 'install 'chmod
+ (lambda _
+ (chmod "linux-amd64/helm" #o555))))))
+ (home-page "https://helm.sh")
+ (supported-systems '("x86_64-linux"))
+ (synopsis "The package manager for Kubernetes")
+ (description
+ "Helm helps you manage Kubernetes applications - Helm Charts help you
+define, install, and upgrade Kubernetes applications.")
+ (license license:asl2.0)))
+
+(define-public kind
+ (package
+ (name "kind")
+ (version "0.20.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://kind.sigs.k8s.io/dl/v" version "/kind-linux-amd64"))
+ (sha256
+ (base32
+ "1v9x953a5n0l3kz78wm29yh11vz56nmlvhi7xzcjscyksq9p4fji"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:substitutable? #f
+ #:install-plan
+ #~'(("kind" "bin/"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'unpack
+ (lambda _
+ (copy-file #$source "./kind")
+ (chmod "kind" #o644)))
+ (add-before 'install 'chmod
+ (lambda _
+ (chmod "kind" #o555))))))
+ (home-page "https://kind.sigs.k8s.io")
+ (synopsis "Tool for running local Kubernetes clusters using Docker containers")
+ (description "kind (Kubernetes in Docker) is designed for creating and managing
+local Kubernetes clusters using Docker containers as nodes. It provides
+a fast and straightforward way to run Kubernetes for development and
+testing tasks.
+
+Supporting multi-node cluster configurations, kind is ideal for testing
+more complex, real-world scenarios without demanding extensive resources.
+It’s a lightweight, portable, and configurable solution useful in
+continuous integration (CI) workflows.")
+ (license license:asl2.0)))