Skip to main content

Extra Objects

Artifact Hub

extraObjects

Render additional Kubernetes objects verbatim.

Rendered by: templates/extras.yaml

This is useful for adding CRDs / custom resources (or any other extra objects) that are not covered by the chart values.

Example 1: Traefik IngressRoute

extraObjects:
- apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: my-app
spec:
entryPoints:
- websecure
routes:
- match: Host(`my-app.example.com`)
kind: Rule
services:
- name: my-app
port: 80
tls:
secretName: my-app-tls

Example 2: KEDA ScaledObject for Event-Driven Autoscaling

KEDA allows you to scale workloads based on external metrics.

KEDA with RabbitMQ Queue

containers:
- image: myapp/worker
imageTag: "1.0.0"

extraObjects:
- apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: rabbitmq-scaledobject
spec:
scaleTargetRef:
name: my-release-name # Should match your Helm release name
minReplicaCount: 1
maxReplicaCount: 10
triggers:
- type: rabbitmq
metadata:
queueName: my-queue
mode: QueueLength
value: "5"
host: amqp://guest:password@rabbitmq.default.svc.cluster.local:5672/

KEDA with Cron Schedule

containers:
- image: myapp/batch-processor
imageTag: "1.0.0"

extraObjects:
- apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: cron-scaledobject
spec:
scaleTargetRef:
name: my-release-name
minReplicaCount: 0
maxReplicaCount: 5
triggers:
- type: cron
metadata:
timezone: America/New_York
start: 0 8 * * * # Scale up at 8 AM
end: 0 18 * * * # Scale down at 6 PM
desiredReplicas: "5"
info

To use KEDA, install it first: helm install keda kedacore/keda --namespace keda --create-namespace