Skip to content
This repository was archived by the owner on Aug 13, 2025. It is now read-only.

Commit 17b4f5b

Browse files
committed
refactoring
1 parent f352e1e commit 17b4f5b

22 files changed

Lines changed: 63 additions & 58 deletions

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ PLATFORMS ?= linux/arm64,linux/amd64,linux/s390x,linux/ppc64le
121121
docker-buildx: ## Build and push docker image for the manager for cross-platform support
122122
# copy existing Dockerfile and insert --platform=${BUILDPLATFORM} into Dockerfile.cross, and preserve the original Dockerfile
123123
sed -e '1 s/\(^FROM\)/FROM --platform=\$$\{BUILDPLATFORM\}/; t' -e ' 1,// s//FROM --platform=\$$\{BUILDPLATFORM\}/' Dockerfile > Dockerfile.cross
124-
- $(CONTAINER_TOOL) buildx create --name fluxcd-trigger-operator-builder
125-
$(CONTAINER_TOOL) buildx use fluxcd-trigger-operator-builder
124+
- $(CONTAINER_TOOL) buildx create --name helmrelease-trigger-operator-builder
125+
$(CONTAINER_TOOL) buildx use helmrelease-trigger-operator-builder
126126
- $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross .
127-
- $(CONTAINER_TOOL) buildx rm fluxcd-trigger-operator-builder
127+
- $(CONTAINER_TOOL) buildx rm helmrelease-trigger-operator-builder
128128
rm Dockerfile.cross
129129

130130
.PHONY: build-installer

PROJECT

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
domain: uburro.github.com
66
layout:
77
- go.kubebuilder.io/v4
8-
projectName: fluxcd-trigger-operator
9-
repo: github.com/uburro/fluxcd-trigger-operator
8+
projectName: helmrelease-trigger-operator
9+
repo: github.com/uburro/helmrelease-trigger-operator
1010
version: "3"

README.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# FluxCD Trigger Operator
1+
# HelmRelease Trigger Operator
22

33
A Kubernetes controller that automatically triggers HelmRelease reconciliation when associated ConfigMaps are updated, enabling seamless configuration-driven GitOps workflows.
44

55
## Disclaimer
66

7-
**Important:** This project is not affiliated with FluxCD or ControlPlaneIO-FluxCD. It is an independent operator designed to simplify deployments with FluxCD, specifically when using the `valuesFrom` feature in HelmRelease configurations. The FluxCD Trigger Operator provides additional functionality for triggering HelmRelease reconciliations based on ConfigMap updates, but it is not officially supported or endorsed by the FluxCD project or its maintainers.
7+
**Important:** This project is not affiliated with FluxCD or ControlPlaneIO-FluxCD. It is an independent operator designed to simplify deployments with FluxCD, specifically when using the `valuesFrom` feature in HelmRelease configurations. The HelmRelease Trigger Operator provides additional functionality for triggering HelmRelease reconciliations based on ConfigMap updates, but it is not officially supported or endorsed by the FluxCD project or its maintainers.
88

99
## Overview
1010

11-
The FluxCD Trigger Operator monitors ConfigMaps with specific labels and annotations, automatically triggering FluxCD HelmRelease reconciliation when configuration changes are detected. This enables dynamic configuration management where ConfigMap updates can immediately trigger application redeployments without manual intervention.
11+
The HelmRelease Trigger Operator monitors ConfigMaps with specific labels and annotations, automatically triggering FluxCD HelmRelease reconciliation when configuration changes are detected. This enables dynamic configuration management where ConfigMap updates can immediately trigger application redeployments without manual intervention.
1212

1313
## How It Works
1414

15-
The operator watches for ConfigMaps labeled with `github.com/uburro/fluxcd-trigger-operator: "true"` and:
15+
The operator watches for ConfigMaps labeled with `github.com/uburro/helmrelease-trigger-operator: "true"` and:
1616

1717
1. **Monitors ConfigMap Changes**: Detects create, update, and generic events on labeled ConfigMaps
1818
2. **Extracts HelmRelease References**: Uses annotations to identify the target HelmRelease
@@ -31,13 +31,13 @@ The operator watches for ConfigMaps labeled with `github.com/uburro/fluxcd-trigg
3131

3232
### Autodiscovery
3333

34-
The FluxCD Trigger Operator implements **autodiscovery** by scanning all HelmReleases in the cluster and automatically labeling those that use the `valuesFrom` feature. This ensures that HelmReleases relying on external ConfigMaps or Secrets for their values are dynamically included in the operator's reconciliation workflow.
34+
The HelmRelease Trigger Operator implements **autodiscovery** by scanning all HelmReleases in the cluster and automatically labeling those that use the `valuesFrom` feature. This ensures that HelmReleases relying on external ConfigMaps or Secrets for their values are dynamically included in the operator's reconciliation workflow.
3535

3636
#### How Autodiscovery Works:
3737
1. **HelmRelease Scanning**: The operator scans all HelmReleases in the cluster.
3838
2. **`valuesFrom` Detection**: It checks if the HelmRelease configuration includes the `valuesFrom` field, which indicates dependency on external resources like ConfigMaps or Secrets.
3939
3. **Automatic Labeling**: For HelmReleases using `valuesFrom`, the operator adds the following labels:
40-
- `"uburro.github.com/fluxcd-trigger-operator": "true"`: Marks the HelmRelease as managed by the operator.
40+
- `"uburro.github.com/helmrelease-trigger-operator": "true"`: Marks the HelmRelease as managed by the operator.
4141
- `"uburro.github.com/helmreleases-namespace": "<namespace>"`: Specifies the namespace of the HelmRelease.
4242
- `"uburro.github.com/helmreleases-name": "<name>"`: Specifies the name of the HelmRelease.
4343

@@ -57,12 +57,17 @@ The FluxCD Trigger Operator implements **autodiscovery** by scanning all HelmRel
5757
```bash
5858
kustomize build config/default | kubectl apply -f
5959
```
60+
or
61+
62+
```
63+
helm install hrto oci://ghcr.io/uburro/helmrelease-trigger-operator
64+
```
6065

6166
### Verify Installation
6267

6368
```bash
64-
kubectl get pods -n fluxcd-trigger-operator-system
65-
kubectl logs -n fluxcd-trigger-operator-system deployment/fluxcd-trigger-operator
69+
kubectl get pods -n helmrelease-trigger-operator-system
70+
kubectl logs -n helmrelease-trigger-operator-system deployment/helmrelease-trigger-operator
6671
```
6772

6873
## Configuration
@@ -74,7 +79,7 @@ ConfigMaps must have the following label to be monitored by the operator:
7479
```yaml
7580
metadata:
7681
labels:
77-
github.com/uburro/fluxcd-trigger-operator: "true"
82+
github.com/uburro/helmrelease-trigger-operator: "true"
7883
```
7984
8085
### Required ConfigMap Annotations
@@ -140,7 +145,7 @@ metadata:
140145
name: my-app-config
141146
namespace: default
142147
labels:
143-
github.com/uburro/fluxcd-trigger-operator: "true"
148+
github.com/uburro/helmrelease-trigger-operator: "true"
144149
annotations:
145150
uburro.github.com/helmreleases-name: "my-app"
146151
uburro.github.com/helmreleases-namespace: "flux-system"
@@ -174,7 +179,7 @@ metadata:
174179
name: production-config
175180
namespace: app-configs
176181
labels:
177-
github.com/uburro/fluxcd-trigger-operator: "true"
182+
github.com/uburro/helmrelease-trigger-operator: "true"
178183
annotations:
179184
uburro.github.com/helmreleases-name: "production-app"
180185
uburro.github.com/helmreleases-namespace: "production"
@@ -193,7 +198,7 @@ The operator requires the following Kubernetes permissions:
193198
apiVersion: rbac.authorization.k8s.io/v1
194199
kind: ClusterRole
195200
metadata:
196-
name: fluxcd-trigger-operator
201+
name: helmrelease-trigger-operator
197202
rules:
198203
# ConfigMap permissions
199204
- apiGroups: [""]
@@ -212,10 +217,10 @@ rules:
212217

213218
```bash
214219
# View operator logs
215-
kubectl logs -n fluxcd-trigger-operator-system deployment/fluxcd-trigger-operator
220+
kubectl logs -n helmrelease-trigger-operator-system deployment/helmrelease-trigger-operator
216221
217222
# Check if ConfigMaps are being watched
218-
kubectl get configmaps -l github.com/uburro/fluxcd-trigger-operator=true -A
223+
kubectl get configmaps -l github.com/uburro/helmrelease-trigger-operator=true -A
219224
220225
# Verify HelmRelease reconciliation
221226
kubectl get helmreleases -A
@@ -225,7 +230,7 @@ kubectl describe helmrelease my-app -n flux-system
225230
### Common Issues
226231

227232
1. **ConfigMap changes not triggering reconciliation**
228-
- Verify the ConfigMap has the required label: `github.com/uburro/fluxcd-trigger-operator: "true"`
233+
- Verify the ConfigMap has the required label: `github.com/uburro/helmrelease-trigger-operator: "true"`
229234
- Check annotations for correct HelmRelease name and namespace
230235
- Ensure the target HelmRelease exists
231236

@@ -247,7 +252,7 @@ kubectl get configmap my-app-config -o yaml
247252
kubectl get helmrelease my-app -o jsonpath='{.status.history[0]}'
248253
249254
# Monitor operator events
250-
kubectl get events -n fluxcd-trigger-operator-system
255+
kubectl get events -n helmrelease-trigger-operator-system
251256
252257
# Check if reconciliation was triggered
253258
kubectl get helmrelease my-app -o jsonpath='{.metadata.annotations.reconcile\.fluxcd\.io/forceAt}'
@@ -288,7 +293,7 @@ kubectl get helmrelease my-app -o jsonpath='{.metadata.annotations.reconcile\.fl
288293
289294
| Constant | Value | Description |
290295
|----------|-------|-------------|
291-
| `LabelConfigMapReconcilerNameSourceKey` | `github.com/uburro/fluxcd-trigger-operator` | Required label for monitoring |
296+
| `LabelConfigMapReconcilerNameSourceKey` | `github.com/uburro/helmrelease-trigger-operator` | Required label for monitoring |
292297
| `AnnotationHelmReleaseNameKey` | `uburro.github.com/helmreleases-name` | HelmRelease name annotation |
293298
| `AnnotationHelmReleaseNamespaceKey` | `uburro.github.com/helmreleases-namespace` | HelmRelease namespace annotation |
294299
| `AnnotationDigistKey` | `uburro.github.com/config-digest` | Digest tracking annotation |

cmd/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import (
4040

4141
// +kubebuilder:scaffold:imports
4242

43-
"github.com/uburro/fluxcd-trigger-operator/internal/controller"
43+
"github.com/uburro/helmrelease-trigger-operator/internal/controller"
4444

4545
helmv2 "github.com/fluxcd/helm-controller/api/v2"
4646

config/default/kustomization.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Adds namespace to all resources.
2-
namespace: fluxcd-trigger-operator-system
2+
namespace: helmrelease-trigger-operator-system
33

44
# Value of this field is prepended to the
55
# names of all resources, e.g. a deployment named
66
# "wordpress" becomes "alices-wordpress".
77
# Note that it should also match with the prefix (text before '-') of the namespace
88
# field above.
9-
namePrefix: fluxcd-trigger-operator-
9+
namePrefix: helmrelease-trigger-operator-
1010

1111
# Labels to add to all resources and selectors.
1212
#labels:

config/default/metrics_service.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: Service
33
metadata:
44
labels:
55
control-plane: controller-manager
6-
app.kubernetes.io/name: fluxcd-trigger-operator
6+
app.kubernetes.io/name: helmrelease-trigger-operator
77
app.kubernetes.io/managed-by: kustomize
88
name: controller-manager-metrics-service
99
namespace: system
@@ -15,4 +15,4 @@ spec:
1515
targetPort: 8443
1616
selector:
1717
control-plane: controller-manager
18-
app.kubernetes.io/name: fluxcd-trigger-operator
18+
app.kubernetes.io/name: helmrelease-trigger-operator

config/manager/manager.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ kind: Namespace
33
metadata:
44
labels:
55
control-plane: controller-manager
6-
app.kubernetes.io/name: fluxcd-trigger-operator
6+
app.kubernetes.io/name: helmrelease-trigger-operator
77
app.kubernetes.io/managed-by: kustomize
88
name: system
99
---
@@ -14,21 +14,21 @@ metadata:
1414
namespace: system
1515
labels:
1616
control-plane: controller-manager
17-
app.kubernetes.io/name: fluxcd-trigger-operator
17+
app.kubernetes.io/name: helmrelease-trigger-operator
1818
app.kubernetes.io/managed-by: kustomize
1919
spec:
2020
selector:
2121
matchLabels:
2222
control-plane: controller-manager
23-
app.kubernetes.io/name: fluxcd-trigger-operator
23+
app.kubernetes.io/name: helmrelease-trigger-operator
2424
replicas: 1
2525
template:
2626
metadata:
2727
annotations:
2828
kubectl.kubernetes.io/default-container: manager
2929
labels:
3030
control-plane: controller-manager
31-
app.kubernetes.io/name: fluxcd-trigger-operator
31+
app.kubernetes.io/name: helmrelease-trigger-operator
3232
spec:
3333
# TODO(user): Uncomment the following code to configure the nodeAffinity expression
3434
# according to the platforms which are supported by your solution.

config/network-policy/allow-metrics-traffic.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ apiVersion: networking.k8s.io/v1
55
kind: NetworkPolicy
66
metadata:
77
labels:
8-
app.kubernetes.io/name: fluxcd-trigger-operator
8+
app.kubernetes.io/name: helmrelease-trigger-operator
99
app.kubernetes.io/managed-by: kustomize
1010
name: allow-metrics-traffic
1111
namespace: system
1212
spec:
1313
podSelector:
1414
matchLabels:
1515
control-plane: controller-manager
16-
app.kubernetes.io/name: fluxcd-trigger-operator
16+
app.kubernetes.io/name: helmrelease-trigger-operator
1717
policyTypes:
1818
- Ingress
1919
ingress:

config/prometheus/monitor.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ kind: ServiceMonitor
44
metadata:
55
labels:
66
control-plane: controller-manager
7-
app.kubernetes.io/name: fluxcd-trigger-operator
7+
app.kubernetes.io/name: helmrelease-trigger-operator
88
app.kubernetes.io/managed-by: kustomize
99
name: controller-manager-metrics-monitor
1010
namespace: system
@@ -24,4 +24,4 @@ spec:
2424
selector:
2525
matchLabels:
2626
control-plane: controller-manager
27-
app.kubernetes.io/name: fluxcd-trigger-operator
27+
app.kubernetes.io/name: helmrelease-trigger-operator

config/rbac/leader_election_role.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1
33
kind: Role
44
metadata:
55
labels:
6-
app.kubernetes.io/name: fluxcd-trigger-operator
6+
app.kubernetes.io/name: helmrelease-trigger-operator
77
app.kubernetes.io/managed-by: kustomize
88
name: leader-election-role
99
rules:

0 commit comments

Comments
 (0)