:warning: Attention This project created for educational purposes and serves as proof-of-concept. Another goal is to learn how to work with Kubernetes CRD and CR using client-go library. As a CRD for information i choose my favorite GitOps tool - FluxCD
Helm version 3.10.1 or newer Kubernetes version 1.23.1 or newer Fluxcd version 0.40.1 or newer
This application listen at port 8080 and provides several endpoints
| endpoint | HTTP Verb | return | return value |
|---|---|---|---|
| / | GET | All of the following | struct |
| /nodes | GET | Overall number of nodes and number of nodes by role(control-plane or worker) | struct |
| /namespaces | GET | Overall number of namespaces | struct |
| /pods | GET | Overall number of pods and number of pods by phase | struct |
| /ingresses | GET | Overall number of ingresses | struct |
| /fluxkustomizations | GET | Overall number of fluxkustomizations and number of fluxkustomizations by status | struct |
| /fluxhelmreleases | GET | Overall number of fluxhelmreleases and number of fluxhelmreleases by status | struct |
Prometheus metrcis exposed on port 8080 via /metrics endpoint.
Healthcheck provided by /healthz endpoint on port 8080
To build image with application run
docker build-t kubeinfo:<your-tag> .
Then push container to your favorite registry
To deploy kubeinfo in kubernetes cluster use helm package manager
First clone this repo
git clone https://github.com/Randsw/kubeinfo.git
Then go to folder helm-chart/kubeinfo-backend
cd helm-chart/kubeinfo-backend
And install helm chart in your kubernetes cluster
helm upgrade --install --namespace <your-namepsace> --create-namespace <your-release-name> .
Don`t forget edit values.yaml for your needs, specially rigth image name and other settings or just provide your values file
helm upgrade --install --namespace <your-namepsace> --create-namespace -f <your-values-file> <your-release-name> .
If this code helped solve your problem or helped point you in the right direction, I will be very happy!