krar is a simple chart for refreshing images using floating tags on selected resources. Can be considered as a lightweight Keel alternative.
The main use case is when your Kubernetes cluster is running applications/services using major or minor image versions (floating tags) you want up to date.
[!WARNING] Triggering that restart affects resource availability if:
- There is only one replica of the resource,
- The image version is too open and brings breaking changes risk (like
latest
or usually major versions).
[!IMPORTANT] Only resources with
imagePullPolicy
set toAlways
will work.
It’s possible to define multiple jobs to handle resources to restart in specific ways.
krar doesn’t log events clearly nor annotate restart resources yet.
No dependency required.
""
, "apps"
(deployments, daemonsets, statefulsets only)With default values, you can add the following label on your Deployment
, DaemonSet
and StatefulSet
resources:
krar.slash-mnt.com/rollout-policy: once-a-month
to allow auto rollout using the job named once-a-month
.
Example:
# From https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
krar.slash-mnt.com/rollout-policy: once-a-month
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80