SkillAgentSearch skills...

Echoperator

🤖 Simple Kubernetes operator built from scratch with client-go

Install / Use

/learn @mmontes11/Echoperator

README

🤖 echoperator

CI Release Go Report Card Go Reference Artifact HUB License: MIT

Simple Kubernetes operator built from scratch with client-go.

Kubernetes operator pattern implementation using the client-go library. Altough there are a bunch of frameworks for doing this (kubebuilder, operator framework ...), this example operator uses the tools provided by client-go for simplicity and flexibility reasons.

Medium article that explains how to build this operator step by step.

Features

  • Simple example to understand how a Kubernetes operator works.
  • Manages Echo CRDs for executing an echo inside a pod.
  • Manages ScheduledEcho CRDs for scheduling the execution of an echo inside a pod.
  • High Availability operator using Kubernetes lease objects.
  • Prometheus metrics.
  • Helm chart.

Versioning

|Echo|ScheduledEcho|Job|CronJob|Lease|Kubernetes| |----|-------------|---|-------|-----|----------| |v1alpha1|v1alpha1|v1|v1|v1|v1.21.x|

Installation

helm repo add mmontes https://mmontes11.github.io/charts
helm install echoperator mmontes/echoperator

Custom Resource Definitions (CRDs)

The helm chart installs automatically the Custom Resource Definitions needed for this operator to work. However, if you wanted to install them manually, you can find them in the helm chart repo.

Example use cases

Hello world
  • Client creates a hello world Echo CRD.
  • Operator receives a Echo added event.
  • Operator reads the message property from the Echo and creates a Job resource.
  • The Job resource creates a Pod that performs a echo command with the message property.
Scheduled hello world
  • Client creates a hello world ScheduledEcho CRD.
  • Operator receives a ScheduledEcho added event.
  • Operator reads the message and schedule property from the ScheduledEcho and creates a CronJob.
  • The CronJob schedules a Job creation using the schedule property.
  • When scheduled, the Job resource creates a Pod that performs a echo command with the message property.
View on GitHub
GitHub Stars44
CategoryDevelopment
Updated7mo ago
Forks8

Languages

Go

Security Score

87/100

Audited on Aug 15, 2025

No findings