Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xtigyro/kindadm
Create and administer a local one or multi-node Kubernetes cluster(s) preset for development with simple commands.
https://github.com/xtigyro/kindadm
container-registry deploy helm helmfile ingress-nginx kind kubernetes kubernetes-cluster kubernetes-dashboard local metallb metrics-server multi-node-kubernetes weave-scope
Last synced: 3 months ago
JSON representation
Create and administer a local one or multi-node Kubernetes cluster(s) preset for development with simple commands.
- Host: GitHub
- URL: https://github.com/xtigyro/kindadm
- Owner: Xtigyro
- License: gpl-2.0
- Created: 2019-10-26T14:23:54.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-02T17:15:16.000Z (10 months ago)
- Last Synced: 2024-04-02T18:29:41.909Z (10 months ago)
- Topics: container-registry, deploy, helm, helmfile, ingress-nginx, kind, kubernetes, kubernetes-cluster, kubernetes-dashboard, local, metallb, metrics-server, multi-node-kubernetes, weave-scope
- Language: Shell
- Homepage:
- Size: 247 KB
- Stars: 28
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kindadm
Create and administer a local one or multi-node Kubernetes cluster(s) in Docker container(s) with properly configured [Helm](https://github.com/helm/helm), [Ingress Controller](https://github.com/kubernetes/ingress-nginx), [MetalLB](https://github.com/metallb/metallb), [Metrics Server](https://github.com/kubernetes-sigs/metrics-server), and [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) with simple interactive commands.
Supported Opt-In Software: [Docker Container Registry](https://docs.docker.com/registry/), and [Weave Scope](https://www.weave.works/oss/scope/).
## Quick Start
To create a local one or multi-node Kubernetes (K8s) cluster(s) - please run:
```bash
## extra args are optional.
#
kindadm --nodes=[1-99] --k8s_ver=1.[x].[x] --helm_ver=[2/3].[x].[x]
```To purge interactively any created cluster(s):
```bash
kindadm --purge
```## Helper Menu
```console
# kindadm -hUsage:
--all-labelled,-al Set labels on all K8s nodes.
--all-tainted,-at Set taints on all K8s nodes. A different label can be defined.
--create-registry,-cr Create local container registry for K8s cluster(s).
--half-labelled,-hl Set labels on half K8s nodes.
--half-tainted,-ht Set taints on half K8s nodes. A different label can be defined.
--helm_ver,-hv Set Helm version to be installed.
--k8s_ver,-v Set K8s version to be deployed.
--list-oa,-loa List supported optional app(s).
--nodes,-n Set number of K8s nodes to be created.
--opt-apps,-oa Deploy supported optional app(s).
--purge,-p Purge interactively any existing cluster(s) and related resources.
--sys_wide,-sw Install prerequisites system-wide.
--help,-h Prints this message.
Example:
kindadm -n=2 -v=1.19.1 -hl='nodeType=devops' -ht -oa=weave-scope -cr -hv=2 -sw
```### Opt-In Components
- [Docker Container Registry](https://docs.docker.com/registry/).
### Opt-In Apps
- [Weave Scope](https://www.weave.works/oss/scope/).
### Access Deployed Services
#### Kubernetes Dashboard
To access Kubernetes Dashboard from your local workstation, you must create a secure channel to your Kubernetes cluster. Run the following command:
```bash
kubectl proxy
```Now you can access the dashboard at:
[`http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:https/proxy/`](
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:https/proxy/).#### Weave Scope
To access Weave Scope (if deployed) from your local workstation, run the following command:
```bash
kubectl port-forward -n weave svc/weave-scope-weave-scope 80
```Now you can access the Weave Scope Frontend at:
[`http://localhost:80`](http://localhost:80).
## Prerequisites
By default `kindadm` does the following:
- Checks and advises (no install) on the system-wide prerequisites:
1. Linux Docker Container Runtime.
- Checks and installs in a self-contained `.cache` dir:
1. `kubectl` binary.
2. `helm` binary.
3. Helm plugins: `helm-diff`.
4. `helmfile` binary.
5. `kind` binary.With `--sys_wide` flag the aforementioned binaries will be installed system-wide (in `/usr/local/bin` dir).
> **NOTE**: Changes are applied only if needed.
## Credits
My name is [Miroslav Hadzhiev](https://www.linkedin.com/in/mehadzhiev/) - a Cloud & DevOps Engineer located in Sofia, Bulgaria. I'm glad that you liked my automation.
## License
GNU General Public License v2.0