Design Philosophy

The design philosophy behind a language influences its features, syntax, and intended use cases, guiding developers in adopting best practices and idiomatic approaches

Programming languages

Learn the main programming languages involved in the project: Go, HCL, Shell, Makefile

Kubernetes API Extension System

Flux v2 is built using Kubernetes’ API extension system, allowing it to integrate seamlessly with the Kubernetes ecosystem.

Git

Flux uses Git for version control and configuration management, making it essential for developers to have a good understanding of Git workflows and best practices.

Helm

Helm is a popular package manager for Kubernetes, and Flux uses it to manage Helm charts and deploy applications.

Prometheus

Flux integrates with Prometheus for monitoring and alerting, making it important for developers to understand how to use Prometheus for observability.

GitOps

GitOps is a DevOps practice that uses Git as the single source of truth for infrastructure configuration. Developers should learn the principles of GitOps and how Flux implements it.

Kustomize

Kustomize is a tool for managing Kubernetes configuration files, and Flux uses it to apply patches and manage Kubernetes manifests.

Alpine Linux

Flux uses Alpine Linux as the base image for its containers, so developers should be familiar with Alpine Linux and its package manager, apk.

Go

Flux is written in Go, so developers should have a good understanding of the Go programming language and its ecosystem.

Docker

Flux uses Docker for containerization, so developers should be familiar with Docker and containerization concepts.

YAML

Flux uses YAML for defining Kubernetes manifests and configuration files, so developers should be proficient in YAML syntax and structure.