Skip to content

borcsokj/k8s-sandbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes Sandbox

This repository contains Kubernetes Sandbox environment running on a Kind cluster [1], designed for various types of development and integration purposes. The focus is on creating a local or on-premise workspace to evaluate:

  • Kubernetes components with custom configurations,

  • custom application developments on Kubernetes,

  • IoT platforms using Kubernetes (e.g., on Raspberry Pi).

The following components are installed:

Customizations

Runtime versions/tags

Most of the components are deployed using Helm charts with custom parameters.

Helm chart versions are not defined (so the latest versions are used), but deployments may require setting custom version numbers to run the latest/updated/custom images. The following list collects such customizations.

  • k8s/cluster/kind/kind.yaml

    • nodes[*].image: Kind "node" image [1]

  • k8s/config/metallb-config.yaml

    • controller.image.tag: MetalLB controller [2]

    • speaker.image.tag: MetalLB speaker [2]

    • frr.image.tag: MetalLB FRR [2]

  • k8s/config/kube-stack-config.yaml

    • prometheus.prometheusSpec.image.tag: Prometheus [3]

    • grafana.image.tag: Grafana [4]

    • alertmanager.alertmanagerSpec.image.tag: AlertManager [5]

    • thanosRuler.thanosRulerSpec.image.tag: Thanos [6]

  • k8s/infra/001-kafka.yaml

    • spec.kafka.version: Kafka [8]

  • k8s/infra/002-postgresql.yaml

    • spec.imageName: PostgreSQL [7]

  • k8s/infra/011-artemis.yaml

    • spec.deploymentPlan.image: ActiveMQ Artemis [12]

    • spec.deploymentPlan.initImage: ActiveMQ Artemis (init image) [12]

  • k8s/infra/012-debezium.yaml

    • spec.image: Debezium [9]

    • spec.template.spec.containers.0.image: Debezium UI [11]

Custom images

A custom PostgreSQL image is used because the official image (including Timescale/PostGIS prepared versions) doesn’t include the necessary locale settings for collation. The preferred method for setting these is described in Locale Customization.

The official Kafka image doesn’t include required Java libraries like the Debezium PostgreSQL connector. Therefore, it’s necessary to add them to a custom image.

Custom images are pushed to local registry created for the Kubernetes cluster, so no need to use external registry services.


1. Kind (node) image: kindest/node:v1.29.2
2. MetalLB images: quay.io/metallb/controller:v0.14.4, quay.io/metallb/speaker:v0.14.4
3. Prometheus image: quay.io/prometheus/prometheus:v2.51.1
4. Grafana image: grafana/grafana:10.4.1
5. AlertManager image: quay.io/prometheus/alertmanager:v0.27.0
6. Thanos image: quay.io/thanos/thanos:v0.34.1
7. PostgreSQL image: custom image based on ghcr.io/imusmanmalik/timescaledb-postgis:16-3.4
8. Kafka image: quay.io/strimzi/kafka:0.40.0-kafka-3.7.0
9. Debezium / KafkaConnect image: custom image based on quay.io/strimzi/kafka:0.40.0-kafka-3.7.0
10. KafkaUI version: provectuslabs/kafka-ui:v0.7.1
11. Debezium UI image: debezium/debezium-ui:2.5
13. OpenDJ image: openidentityplatform/opendj:4.6.2

About

Kubernetes sandbox environment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages