diff --git a/workspaces/kubectl-workspace/Dockerfile b/workspaces/kubectl-workspace/Dockerfile index c07776f..d39aad4 100644 --- a/workspaces/kubectl-workspace/Dockerfile +++ b/workspaces/kubectl-workspace/Dockerfile @@ -4,6 +4,17 @@ RUN wrk install kubectl==stable RUN wrk install helm==v3.9.0 RUN wrk install k9s==v0.25.18 RUN wrk install kdash==0.3.6 +RUN wrk install kubectx==0.9.5 +RUN wrk install kubetail==1.6.18 +RUN wrk install ktunnel==1.5.3 +RUN wrk install kubefwd==1.22.5 +RUN wrk install kubie==0.20.1 +RUN wrk install kubescout==0.1.16 +RUN wrk install ktop==0.3.5 +RUN wrk install kubectl-doctor==0.3.1 +RUN wrk install kubectl-tree==0.4.3 +RUN wrk install kubespy==0.6.2 +RUN wrk install kube-dump==1.1.2 RUN wrk install octant==v0.25.1 RUN wrk install kubescape==latest RUN wrk install kube-shell==latest diff --git a/workspaces/kubectl-workspace/README.md b/workspaces/kubectl-workspace/README.md index 5d8a45f..d4c9b03 100644 --- a/workspaces/kubectl-workspace/README.md +++ b/workspaces/kubectl-workspace/README.md @@ -1,9 +1,9 @@ # Kubectl Workspace -A dedicated workspace designed for Kubernetes admins and developers, equipped with a comprehensive set of tools for managing Kubernetes clusters, -installing applications, and implementing solutions. +A dedicated workspace designed for Kubernetes admins and developers, equipped with a comprehensive collection of tools for managing Kubernetes clusters, +installing applications, and implementing solutions. -## Start +## Try locally ``` docker run --name space-1 -d -p 8020-8040:8020-8040 --restart=always alnoda/kubectl-workspace @@ -11,6 +11,8 @@ docker run --name space-1 -d -p 8020-8040:8020-8040 --restart=always alnoda/kube and open [localhost:8020](http://localhost:8020) in browser. +Add kubeconfig file to `~/.kube/config` + ## Features - [**Kubectl**](https://kubernetes.io/docs/reference/kubectl/) - Kubernetes command-line tool, allows you to run commands against Kubernetes clusters. @@ -20,16 +22,96 @@ and open [localhost:8020](http://localhost:8020) in browser. - [**Kube-shell**](https://github.com/cloudnativelabs/kube-shell) - Integrated shell for working with the Kubernetes CLI. - [**Krew**](https://krew.sigs.k8s.io/) - Plugin manager for kubectl command-line tool. - [**kubectl-aliases**](https://github.com/ahmetb/kubectl-aliases) - Hundreds of convenient shell aliases for kubectl. -- [**kdash**](https://github.com/kdash-rs/kdash) - A simple and fast dashboard for Kubernetes -- [**helmfile**](https://github.com/helmfile/helmfile) - Declarative spec for deploying helm charts in Kubernetes clusters -- [**Trivy**](https://github.com/aquasecurity/trivy) - Find vulnerabilities, misconfigurations, secrets, SBOM in Kubernetes and more -- [**Kube-hunter**](https://github.com/aquasecurity/kube-hunter) - Hunt for security weaknesses in Kubernetes clusters +- [**kdash**](https://github.com/kdash-rs/kdash) - A simple and fast dashboard for Kubernetes. +- [**kubectx**](https://github.com/ahmetb/kubectx/) - Faster way to switch between clusters and namespaces in kubectl. +- [**kubetail**](https://github.com/johanhaleby/kubetail) - Tail Kubernetes logs from multiple pods at the same time. +- [**ktunnel**](https://github.com/omrikiei/ktunnel) - A cli that exposes your local resources to kubernetes. +- [**kubefwd**](https://github.com/txn2/kubefwd) - Bulk port forwarding Kubernetes services for local development. +- [**kubie**](https://github.com/sbstp/kubie) - A more powerful alternative to kubectx and kubens. +- [**kubescout**](https://github.com/ReallyLiri/kubescout) - Faster way to switch between clusters and namespaces in kubectl. +- [**ktop**](https://github.com/vladimirvivien/ktop) - A top-like tool for your Kubernetes clusters. +- [**kubectl-doctor**](https://github.com/emirozer/kubectl-doctor) - It will scan your currently targeted k8s cluster to see if there are anomalies or useful action points that it can report back to you. +- [**kubectl-tree**](https://github.com/ahmetb/kubectl-tree) - kubectl plugin to browse Kubernetes object hierarchies as a tree. +- [**kubespy**](https://github.com/pulumi/kubespy) - Tools for observing Kubernetes resources in real time, powered by Pulumi. +- [**kube-dump**](https://github.com/WoozyMasta/kube-dump) - Backup a Kubernetes cluster as a yaml manifest. +- [**helmfile**](https://github.com/helmfile/helmfile) - Declarative spec for deploying helm charts in Kubernetes clusters. +- [**Trivy**](https://github.com/aquasecurity/trivy) - Find vulnerabilities, misconfigurations, secrets, SBOM in Kubernetes and more. +- [**Kube-hunter**](https://github.com/aquasecurity/kube-hunter) - Hunt for security weaknesses in Kubernetes clusters. - [**Kubescape**](https://github.com/kubescape/kubescape) - Kubernetes security platform for your IDE, CI/CD pipelines, and clusters. - [**Velero CLI**](https://github.com/vmware-tanzu/velero) - Back up and restore your Kubernetes cluster resources and persistent volumes. - [**argocd-cli**](https://github.com/argoproj/argo-cd) - CLI for ArgoCD - a tool for declarative, GitOps continuous delivery for Kubernetes. - [*Codeserver workspace features*](https://github.com/bluxmit/alnoda-workspaces/tree/main/workspaces/codeserver-workspace) +## Customize + +It is very easy to extend this workspace with more applications. Need task scheduler? Or Web UI to launch maintenance scripts with a click? +Check out [alnoda.hub](https://alnoda.org/) for hundreds more apps that you can add to the workspace. + +## Run in kubernetes + +You can deploy this worksapce directly to the cluster, it is fully browser-based. + +Add Helm repository: + +``` +helm repo add alnoda https://bluxmit.github.io/alnoda-charts/ +``` + +Update your Helm chart list: + +``` +helm repo update +``` + +Create Helm values file, for example file values.yaml: + +``` +ingress: + enabled: true + className: nginx + host: example.com +``` + +Install the workspace: + +``` +helm install my-workspace alnoda/alnoda-workspace -f values.yaml +``` + +## Run on a cloud server + +Alternatively, run on cloud server that is in the same network of your kubernetes cluster. + +Ssh to the server, make sure you have Docker and docker-compose installed and ports 8020 - 8040 are not blocked by the firewall. + +Clone repo with docker-compose: + +``` +git clone https://github.com/bluxmit/wrk-compose.git +cd wrk-compose +``` + +Set environmental variable WRK_HOST - public server IP which allows access over the Internet, i.e. + +``` +export WRK_HOST=34.194.12 +``` + +Set workspace image and version + +``` +export WRK_IMAGE='alnoda/kubectl-workspace:latest' +``` + +start workspace + +``` +cd basic-auth-https; docker-compose up -d +``` + +Read more about changing user/password [here](https://github.com/bluxmit/wrk-compose) + ## Links [__Alnoda docs__](https://docs.alnoda.org/) -[__Alnoda Hub__](https://alnoda.org) \ No newline at end of file +[__Alnoda Hub__](https://alnoda.org)