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 zabbix #4

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
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
20 changes: 16 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: create delete create-argocd upgrade-argocd delete-argocd create-metrics-server upgrade-metrics-server delte-metrics-server
.PHONY: create delete create-argocd upgrade-argocd delete-argocd create-metrics-server upgrade-metrics-server delete-metrics-server create-prometheus-stack upgrade-prometheus-stack delete-prometheus-stack create-jaeger delete-jaeger create-odigos delete-odigos create-prometheus-adapter delete-prometheus-adapter create-zabbix delete-zabbix create-harbor delete-harbor

create:
kind create cluster --config config.yaml
Expand All @@ -13,7 +13,7 @@ upgrade-argocd:
helm upgrade argocd argo/argo-cd -n argocd -f charts/argocd/values.yaml

delete-argocd:
helm uninstall argocd -n argocd --delete-namespace
helm uninstall argocd -n argocd && kubectl delete namespace argocd

create-metrics-server:
helm install metrics-server metrics-server/metrics-server -n kube-system -f charts/metrics-server/values.yaml
Expand All @@ -31,7 +31,7 @@ upgrade-prometheus-stack:
helm upgrade prometheus-stack prometheus-community/kube-prometheus-stack -n prometheus -f charts/prometheus-stack/values.yaml

delete-prometheus-stack:
helm uninstall prometheus-stack -n prometheus --delete-namespace
helm uninstall prometheus-stack -n prometheus && kubectl delete namespace prometheus

create-jaeger:
kubectl apply -f manifests/jaeger/values.yaml
Expand All @@ -49,4 +49,16 @@ create-prometheus-adapter:
helm install prometheus-adapter prometheus-community/prometheus-adapter -n custom-metrics --create-namespace -f charts/prometheus-adapter/values.yaml

delete-prometheus-adapter:
helm uninstall prometheus-adapter -n custom-metrics --delete-namespace
helm uninstall prometheus-adapter -n custom-metrics && kubectl delete namespace custom-metrics

create-zabbix:
helm install my-zabbix-test zabbix-community/zabbix --version 5.0.1 -n zabbix --create-namespace -f charts/zabbix/values.yaml

delete-zabbix:
helm uninstall my-zabbix-test -n zabbix && kubectl delete namespace zabbix

create-harbor:
helm install poc-harbor harbor/harbor -n harbor --create-namespace -f charts/harbor/values.yaml

delete-harbor:
helm uninstall poc-harbor -n harbor && kubectl delete namespace harbor
226 changes: 219 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,225 @@
# Kind kubernetes cluster
# Kind Kubernetes Cluster

Inspired by [msfidelis](https://github.com/msfidelis/kubernetes-kind-setup), I decided to create my own version of a Kubernetes cluster using [kind](https://kind.sigs.k8s.io/).
This project is designed to present and test my Proof of Concepts (PoCs) and studies related to Kubernetes tools and configurations.

## Creating a custom cluster
## Prerequisites

`make create`
- [Docker](https://www.docker.com/)
- [Kind](https://kind.sigs.k8s.io/)
- [Helm](https://helm.sh/)

## Deleting the cluster
## Overview

`make delete`
This project leverages **Kind** (Kubernetes IN Docker) to create a local Kubernetes cluster for testing various tools like ArgoCD, Prometheus, Zabbix, and more. All operations can be executed via the Makefile.

## Creating argocd
## Commands Overview

### 1. Creating a Custom Cluster

To create a local Kubernetes cluster using Kind with a predefined configuration:

```bash
make create
```

This command uses the `config.yaml` file to provision the cluster with specific configurations, such as node settings, port mappings, etc.

### 2. Deleting the Cluster

To remove the existing Kubernetes cluster:

```bash
make delete
```

This command deletes the Kind cluster, cleaning up all the resources created in the process.

### 3. Creating ArgoCD

To install **ArgoCD** into the Kubernetes cluster:

```bash
make create-argocd
```

This installs ArgoCD using Helm with the custom values provided in `charts/argocd/values.yaml`, creating the `argocd` namespace if it doesn't exist.

### 4. Upgrading ArgoCD

To upgrade the existing ArgoCD installation:

```bash
make upgrade-argocd
```

This command upgrades the ArgoCD installation with the latest version or any changes specified in the `charts/argocd/values.yaml`.

### 5. Deleting ArgoCD

To uninstall ArgoCD from the cluster:

```bash
make delete-argocd
```

This removes ArgoCD and deletes the `argocd` namespace from the cluster.

### 6. Creating the Metrics Server

To install the **Metrics Server**:

```bash
make create-metrics-server
```

This deploys the Metrics Server using Helm and custom values from `charts/metrics-server/values.yaml` into the `kube-system` namespace.

### 7. Upgrading the Metrics Server

To upgrade the Metrics Server:

```bash
make upgrade-metrics-server
```

This command upgrades the Metrics Server with any new configurations or updates specified in the `charts/metrics-server/values.yaml`.

### 8. Deleting the Metrics Server

To uninstall the Metrics Server:

```bash
make delete-metrics-server
```

This command removes the Metrics Server from the `kube-system` namespace.

### 9. Creating Prometheus Stack

To install the **Prometheus Stack** for monitoring:

```bash
make create-prometheus-stack
```

This installs the Prometheus Stack (Prometheus, Alertmanager, Grafana, etc.) using Helm with the values from `charts/prometheus-stack/values.yaml`, creating the `prometheus` namespace.

### 10. Upgrading Prometheus Stack

To upgrade the Prometheus Stack:

```bash
make upgrade-prometheus-stack
```

This upgrades the Prometheus Stack with any changes or updates specified in `charts/prometheus-stack/values.yaml`.

### 11. Deleting Prometheus Stack

To uninstall the Prometheus Stack:

```bash
make delete-prometheus-stack
```

This command removes Prometheus and deletes the `prometheus` namespace.

### 12. Creating Jaeger

To deploy **Jaeger** for distributed tracing:

```bash
make create-jaeger
```

This applies the Jaeger deployment from the `manifests/jaeger/values.yaml`.

### 13. Deleting Jaeger

To delete the Jaeger deployment:

```bash
make delete-jaeger
```

This removes the Jaeger deployment.

### 14. Creating Odigos

To install **Odigos**:

```bash
make create-odigos
```

This command applies the Odigos deployment defined in `labs/odigos/values.yaml`.

### 15. Deleting Odigos

To delete the Odigos deployment:

```bash
make delete-odigos
```

This command removes the Odigos deployment from the cluster.

### 16. Creating Prometheus Adapter

To install the **Prometheus Adapter** for custom metrics:

```bash
make create-prometheus-adapter
```

This installs the Prometheus Adapter using Helm with the values from `charts/prometheus-adapter/values.yaml`, creating the `custom-metrics` namespace.

### 17. Deleting Prometheus Adapter

To uninstall the Prometheus Adapter:

```bash
make delete-prometheus-adapter
```

This command removes the Prometheus Adapter and deletes the `custom-metrics` namespace.

### 18. Creating Zabbix

To install **Zabbix**:

```bash
make create-zabbix
```

This installs Zabbix using Helm with the values from `charts/zabbix/values.yaml`, creating the `zabbix` namespace.

### 19. Deleting Zabbix

To uninstall Zabbix:

```bash
make delete-zabbix
```

This removes Zabbix and deletes the `zabbix` namespace.

### 20. Creating Harbor

To install **Harbor** for container registry:

```bash
make create-harbor
```

This installs Harbor using Helm with the values from `charts/harbor/values.yaml`, creating the `harbor` namespace.

### 21. Deleting Harbor

To uninstall Harbor:

```bash
make delete-harbor
```

This removes Harbor and deletes the `harbor` namespace.
Loading