Skip to content

Commit c01a7bf

Browse files
jan--fdependabot[bot]PeterYurkovichfaloxalanconway
authored
Sync main (#960)
* fix: fix linter issues and add CI check for linter changes (#887) Since we call `golang-lint --fix` we should check if the linter has fixed anything. Signed-off-by: Jan Fajerski <[email protected]> * build(deps): bump github.com/grafana/tempo-operator (#915) Bumps [github.com/grafana/tempo-operator](https://github.com/grafana/tempo-operator) from 0.16.0 to 0.18.0. - [Release notes](https://github.com/grafana/tempo-operator/releases) - [Changelog](https://github.com/grafana/tempo-operator/blob/main/CHANGELOG.md) - [Commits](grafana/tempo-operator@v0.16.0...v0.18.0) --- updated-dependencies: - dependency-name: github.com/grafana/tempo-operator dependency-version: 0.18.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * OU-964: update incidents and TP to GA (#912) * feat: update min version for incident feature to 4.20 * feat: update incidents and tp to GA in matrix * fix: re-enable incidents on 4.19 --------- Co-authored-by: Alberto Falossi <[email protected]> * fix: set 4.19 as GA for incidents (#917) * chore: update korrel8r image to 0.8.4 for COO 1.3 (#908) * chore(release): 1.3.0 (#920) * fix: [COO-1304] Fix misspelled labels of accelerator metrics (#925) Fix misspelled labels in the common accelerator metrics dashboard. * fix: [COO-1305] Fix misspelled metric name in accelerators (#926) Fix the spelling of units of the accellerator temperature. * fix: [COO-1313] Add missing description for ObservabilityInstaller in OpenShift console (#928) 🤖 Assisted by Claude Code * sync 1.3 to main (#935) * sync code changes from main to release-1.3 (#918) * fix: fix linter issues and add CI check for linter changes (#887) Since we call `golang-lint --fix` we should check if the linter has fixed anything. Signed-off-by: Jan Fajerski <[email protected]> * build(deps): bump github.com/grafana/tempo-operator (#915) Bumps [github.com/grafana/tempo-operator](https://github.com/grafana/tempo-operator) from 0.16.0 to 0.18.0. - [Release notes](https://github.com/grafana/tempo-operator/releases) - [Changelog](https://github.com/grafana/tempo-operator/blob/main/CHANGELOG.md) - [Commits](grafana/tempo-operator@v0.16.0...v0.18.0) --- updated-dependencies: - dependency-name: github.com/grafana/tempo-operator dependency-version: 0.18.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * OU-964: update incidents and TP to GA (#912) * feat: update min version for incident feature to 4.20 * feat: update incidents and tp to GA in matrix * fix: re-enable incidents on 4.19 --------- Co-authored-by: Alberto Falossi <[email protected]> * fix: set 4.19 as GA for incidents (#917) * chore: update korrel8r image to 0.8.4 for COO 1.3 (#908) --------- Signed-off-by: Jan Fajerski <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Jan Fajerski <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Peter Yurkovich <[email protected]> Co-authored-by: Alberto Falossi <[email protected]> Co-authored-by: Alan Conway <[email protected]> * fix: reconcile incident related resources only in 4.19+ (#921) * fix: reconcile korrel8r backend only for troubleshooting plugin (#922) Signed-off-by: Gabriel Bernal <[email protected]> * feat: drop korrel8r and troubleshooting panel support before 4.19 (#929) Signed-off-by: Gabriel Bernal <[email protected]> * Sync accelerators fixes (#930) * fix: [COO-1304] Fix misspelled labels of accelerator metrics (#925) Fix misspelled labels in the common accelerator metrics dashboard. * fix: [COO-1305] Fix misspelled metric name in accelerators (#926) Fix the spelling of units of the accellerator temperature. --------- Co-authored-by: Vitaly E. <[email protected]> * fix: rename clusterrolebinding used for monitoring plugin to avoid clash (#931) * Sync release tag (#927) * fix: fix linter issues and add CI check for linter changes (#887) Since we call `golang-lint --fix` we should check if the linter has fixed anything. Signed-off-by: Jan Fajerski <[email protected]> * build(deps): bump github.com/grafana/tempo-operator (#915) Bumps [github.com/grafana/tempo-operator](https://github.com/grafana/tempo-operator) from 0.16.0 to 0.18.0. - [Release notes](https://github.com/grafana/tempo-operator/releases) - [Changelog](https://github.com/grafana/tempo-operator/blob/main/CHANGELOG.md) - [Commits](grafana/tempo-operator@v0.16.0...v0.18.0) --- updated-dependencies: - dependency-name: github.com/grafana/tempo-operator dependency-version: 0.18.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * OU-964: update incidents and TP to GA (#912) * feat: update min version for incident feature to 4.20 * feat: update incidents and tp to GA in matrix * fix: re-enable incidents on 4.19 --------- Co-authored-by: Alberto Falossi <[email protected]> * fix: set 4.19 as GA for incidents (#917) * chore: update korrel8r image to 0.8.4 for COO 1.3 (#908) * chore(release): 1.3.0 (#920) --------- Signed-off-by: Jan Fajerski <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Peter Yurkovich <[email protected]> Co-authored-by: Alberto Falossi <[email protected]> Co-authored-by: Alan Conway <[email protected]> * chore: bumpt to prometheus-operator 0.86.2 (#933) Signed-off-by: Jan Fajerski <[email protected]> --------- Signed-off-by: Jan Fajerski <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Gabriel Bernal <[email protected]> Co-authored-by: lihongyan1 <[email protected]> Co-authored-by: Jan Fajerski <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Peter Yurkovich <[email protected]> Co-authored-by: Alberto Falossi <[email protected]> Co-authored-by: Alan Conway <[email protected]> Co-authored-by: Gabriel Bernal <[email protected]> Co-authored-by: Vitaly E. <[email protected]> * build(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0 (#934) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.42.0 to 0.45.0. - [Commits](golang/crypto@v0.42.0...v0.45.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.45.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: fix a few typos in the Thanos Querier guide (#936) Signed-off-by: Simon Pasquier <[email protected]> * fix: fix & rename health-analyzer and korrel8r clusterrolebindings (#937) * docs: update UI plugins documentation (#940) * feat: allow to set replicas number for Alertmanager (#941) This commit introduces a new `replicas` field in the Alertmanager configuration to the `MonitoringStack` CRD. This makes it consistent with the Prometheus configuration and allows to run Alertmanager on single-node clusters. It also adds a `replace` directive in `go.mod` to use the local copy of `github.com/rhobs/observability-operator/pkg/apis` which simplifies the development of API changes. Signed-off-by: Simon Pasquier <[email protected]> * fix: set correct references for perses CR for correct cleanup (#942) Signed-off-by: Gabriel Bernal <[email protected]> * build(deps): bump actions/checkout from 5 to 6 (#939) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: enable watch-referenced-objects-in-all-namespaces in Prometheus operator (#945) This commit enables the `--watch-referenced-objects-in-all-namespaces` flag in the Prometheus operator deployment to ensure that the operator reconciles configurations when a secret/configmap referenced by a custom resource gets an update. Upstream issue: https://github.com/prometheus-operator/prometheus-operator/issue/6018 Signed-off-by: Simon Pasquier <[email protected]> * build(deps): bump k8s.io/apiserver from 0.34.0 to 0.34.1 (#872) Bumps [k8s.io/apiserver](https://github.com/kubernetes/apiserver) from 0.34.0 to 0.34.1. - [Commits](kubernetes/apiserver@v0.34.0...v0.34.1) --- updated-dependencies: - dependency-name: k8s.io/apiserver dependency-version: 0.34.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: support size-based retention for MonitoringStack (#946) This commit exposes a new `retentionSize` field in the MonitoringStack CRD which mimics the API already present in the Prometheus CRD. Closes #890 Signed-off-by: Simon Pasquier <[email protected]> * fix: disable unmanaged Prometheus configuration (#944) This commit adds the `--disable-unmanaged-prometheus-configuration=true` argument to the Prometheus operator deployment. Without this change and in case of a null resource selector, the Prometheus pods fail to become ready because the Prometheus configuration is left empty while the Thanos sidecar expects to find external labels. The "unmanaged configuration" mode is an old upstream "hack" which allowed users to provide their own custom Prometheus configuration for cases where it couldn't be implemented with `ServiceMonitor`. The new approach is to use the `ScrapeConfig` CRD. When a `MonitoringStack` resource is created with a null resource selector, the Prometheus configuration will contain no scrape configuration and no rules. One possible use case is to deploy a Prometheus which only ingests metrics via remote-write and/or OTLP. Closes #932 Signed-off-by: Simon Pasquier <[email protected]> * fix: [COO-1325] fix logging model field documentation (#938) Signed-off-by: Gabriel Bernal <[email protected]> * build(deps): bump k8s.io/apiextensions-apiserver from 0.34.1 to 0.34.2 (#949) Bumps [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) from 0.34.1 to 0.34.2. - [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases) - [Commits](kubernetes/apiextensions-apiserver@v0.34.1...v0.34.2) --- updated-dependencies: - dependency-name: k8s.io/apiextensions-apiserver dependency-version: 0.34.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 (#947) Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.27.0 to 1.27.1. - [Release notes](https://github.com/uber-go/zap/releases) - [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md) - [Commits](uber-go/zap@v1.27.0...v1.27.1) --- updated-dependencies: - dependency-name: go.uber.org/zap dependency-version: 1.27.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: set logger warning and image ref (#924) * test: automation to cover nill resource selector (#955) The auto covered upstream issue https://github.com/prometheus-operator/prometheus-operator/issue/6018 * COO-1384: fix(monitoringstack): correctly configure OTLP receiver (#943) * fix(monitoringstack): change how EnableOTLP is passed to Prometheus * chore: remove version inference * chore: bump p-o to v0.87.0 (#950) * chore: bump p-o to v0.87.0 Signed-off-by: Jan Fajerski <[email protected]> * fix: use monv1.Scheme struct instead of strings Signed-off-by: Jan Fajerski <[email protected]> --------- Signed-off-by: Jan Fajerski <[email protected]> * fix: github action workflow release failure (#957) #956 * Improve prometheus-operator updates (#959) * build: centralize p-o image names and tags in kustomization.yaml Signed-off-by: Jan Fajerski <[email protected]> * chore: add script to update p-o refs Signed-off-by: Jan Fajerski <[email protected]> --------- Signed-off-by: Jan Fajerski <[email protected]> * build(deps): bump github.com/operator-framework/api (#953) Bumps [github.com/operator-framework/api](https://github.com/operator-framework/api) from 0.34.0 to 0.36.0. - [Release notes](https://github.com/operator-framework/api/releases) - [Changelog](https://github.com/operator-framework/api/blob/master/RELEASE.md) - [Commits](operator-framework/api@v0.34.0...v0.36.0) --- updated-dependencies: - dependency-name: github.com/operator-framework/api dependency-version: 0.36.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/goccy/go-yaml from 1.18.0 to 1.19.0 (#952) Bumps [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) from 1.18.0 to 1.19.0. - [Release notes](https://github.com/goccy/go-yaml/releases) - [Changelog](https://github.com/goccy/go-yaml/blob/master/CHANGELOG.md) - [Commits](goccy/go-yaml@v1.18.0...v1.19.0) --- updated-dependencies: - dependency-name: github.com/goccy/go-yaml dependency-version: 1.19.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: Jan Fajerski <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Gabriel Bernal <[email protected]> Signed-off-by: Simon Pasquier <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Peter Yurkovich <[email protected]> Co-authored-by: Alberto Falossi <[email protected]> Co-authored-by: Alan Conway <[email protected]> Co-authored-by: Vitaly E. <[email protected]> Co-authored-by: Ishwar Kanse <[email protected]> Co-authored-by: Tomas Remes <[email protected]> Co-authored-by: lihongyan1 <[email protected]> Co-authored-by: Gabriel Bernal <[email protected]> Co-authored-by: Simon Pasquier <[email protected]> Co-authored-by: Ishwar Kanse <[email protected]> Co-authored-by: Daniele Rossi <[email protected]>
1 parent f62b7f3 commit c01a7bf

File tree

53 files changed

+973
-385
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+973
-385
lines changed

.github/workflows/olm-stable.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
environment: quay
1313
steps:
14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v6
1515
with:
1616
fetch-depth: 0
1717

.github/workflows/package-operator-stable.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
environment: quay
1313
steps:
14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v6
1515
with:
1616
fetch-depth: 0
1717

.github/workflows/pr-checks.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
name: Lint the commit messages
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/checkout@v5
11+
- uses: actions/checkout@v6
1212
with:
1313
fetch-depth: 0
1414
- uses: wagoid/commitlint-github-action@v6
@@ -17,14 +17,14 @@ jobs:
1717
name: Lint Github Action
1818
runs-on: ubuntu-latest
1919
steps:
20-
- uses: actions/checkout@v5
20+
- uses: actions/checkout@v6
2121
- uses: reviewdog/action-actionlint@v1
2222

2323
lint:
2424
name: Lint code
2525
runs-on: ubuntu-latest
2626
steps:
27-
- uses: actions/checkout@v5
27+
- uses: actions/checkout@v6
2828

2929
- uses: actions/setup-go@v6
3030
with:
@@ -50,7 +50,7 @@ jobs:
5050
name: Verify generated code
5151
runs-on: ubuntu-latest
5252
steps:
53-
- uses: actions/checkout@v5
53+
- uses: actions/checkout@v6
5454

5555
- uses: actions/setup-go@v6
5656
with:
@@ -63,7 +63,7 @@ jobs:
6363
runs-on: ubuntu-latest
6464
name: Validate tools cache
6565
steps:
66-
- uses: actions/checkout@v5
66+
- uses: actions/checkout@v6
6767

6868
- uses: actions/setup-go@v6
6969
with:
@@ -79,7 +79,7 @@ jobs:
7979
name: Build bundle image
8080
runs-on: ubuntu-latest
8181
steps:
82-
- uses: actions/checkout@v5
82+
- uses: actions/checkout@v6
8383

8484
- name: Setup Go environment
8585
uses: actions/setup-go@v6
@@ -98,7 +98,7 @@ jobs:
9898
name: Run end-to-end tests
9999
runs-on: ubuntu-latest
100100
steps:
101-
- uses: actions/checkout@v5
101+
- uses: actions/checkout@v6
102102

103103
- name: e2e tests through OLM
104104
uses: ./.github/e2e-tests-olm

.github/workflows/release.yaml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ on:
44
push:
55
branches: [main]
66

7+
permissions:
8+
contents: write
9+
710
jobs:
811
e2e-tests-olm:
912
runs-on: ubuntu-latest
1013
steps:
11-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v6
1215

1316
- name: e2e tests through OLM
1417
uses: ./.github/e2e-tests-olm
@@ -20,7 +23,7 @@ jobs:
2023
needs:
2124
- e2e-tests-olm
2225
steps:
23-
- uses: actions/checkout@v5
26+
- uses: actions/checkout@v6
2427
with:
2528
fetch-depth: 0
2629

@@ -83,7 +86,7 @@ jobs:
8386
if: "startsWith(github.event.head_commit.message, 'chore(release):')"
8487
steps:
8588
- name: Checkout
86-
uses: actions/checkout@v5
89+
uses: actions/checkout@v6
8790
with:
8891
fetch-depth: 0
8992
token: ${{ secrets.REPOSITORY_PUSH_TOKEN }}
@@ -130,7 +133,7 @@ jobs:
130133
environment: quay
131134
steps:
132135
- name: Checkout
133-
uses: actions/checkout@v5
136+
uses: actions/checkout@v6
134137
with:
135138
fetch-depth: 0
136139
token: ${{ secrets.REPOSITORY_PUSH_TOKEN }}

AGENTS.md

Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
## AGENTS GUIDE
2+
3+
This document is for **AI/code assistants and other automation** contributing changes to this repository.
4+
5+
The primary goal is to keep generated assets, CRDs, OLM bundles, and deployment manifests **consistent and reproducible** while making safe, reviewable edits.
6+
7+
---
8+
9+
## Project Overview
10+
11+
- **Name**: Observability Operator (`observability-operator`)
12+
- **Type**: Kubernetes operator (Go, controller-runtime) plus Kustomize/OLM packaging
13+
- **Purpose**: Manage monitoring/alerting stacks (and related observability components) via CRDs.
14+
15+
Key entry points:
16+
17+
- `cmd/operator/main.go` – operator binary entrypoint.
18+
- `pkg/apis/...` – API types and CRDs definitions.
19+
- `pkg/controllers/...` – reconcilers/controllers.
20+
- `deploy/...` – Kustomize bases for CRDs, operator deployment, OLM, package-operator, etc.
21+
- `bundle/...` – Generated OLM bundle (do not hand-edit).
22+
23+
For human-focused docs, see `README.md` and `docs/developer.md`.
24+
25+
---
26+
27+
## Conventions & Tooling
28+
29+
- **Language**: Go (see Go version in root `go.mod`).
30+
- **Build & generation**: GNU Make, controller-gen, kustomize, operator-sdk.
31+
- **Commit messages**: Follow **Conventional Commits** (see `docs/developer.md`).
32+
- **Versioning**: SemVer, automated via `make initiate-release`.
33+
34+
Important make targets:
35+
36+
- `make generate` – regenerate CRDs, RBAC, deepcopy, Kustomize outputs, and API docs.
37+
- `make test-unit` – run Go unit tests.
38+
- `make test-e2e` – run Go-based e2e tests (alternative to `./test/run-e2e.sh`).
39+
- `make operator` / `make build` – build the operator binary into `tmp/operator`.
40+
41+
Only **invoke** these commands in suggestions; do **not assume** they have been run.
42+
43+
---
44+
45+
## Repository Layout (for Agents)
46+
47+
- `cmd/` – CLI/entrypoint code.
48+
- `pkg/apis/` – custom resource APIs; changes here require `make generate`.
49+
- `pkg/controllers/` – controller logic; generally safe for targeted edits.
50+
- `deploy/`:
51+
- `crds/` – generated CRDs (kubernetes + common).
52+
- `dependencies/` – Kustomize config for dependent operators (e.g. obo-prometheus-operator).
53+
- `monitoring/`, `operator/`, `olm/`, `package-operator/` – operator deployment and packaging.
54+
- `bundle/`**generated** OLM bundle content.
55+
- `jsonnet/`, `dashboards/`, `must-gather/` – ancillary assets.
56+
- `tmp/` – build/test artifacts; never commit changes from here.
57+
58+
Prefer editing **sources** (Go, Kustomize bases, templates) rather than generated artifacts.
59+
60+
---
61+
62+
## Safe vs Unsafe Edits
63+
64+
**Prefer to edit**
65+
66+
- Go code in:
67+
- `pkg/controllers/...`
68+
- `pkg/operator/...`
69+
- `pkg/reconciler/...`
70+
- `cmd/operator/...`
71+
- API types in `pkg/apis/...` (but remember to run `make generate` afterwards).
72+
- Kustomize bases under `deploy/...`:
73+
- `deploy/dependencies/...`
74+
- `deploy/monitoring/...`
75+
- `deploy/olm/...`
76+
- `deploy/package-operator/...`
77+
- Documentation in `docs/` and `README.md`.
78+
79+
**Avoid hand-editing**
80+
81+
- `bundle/...` – OLM bundle content is generated via `make bundle`.
82+
- Generated CRDs/RBAC in:
83+
- `deploy/crds/common/...`
84+
- `deploy/crds/kubernetes/...`
85+
- `deploy/operator/observability-operator-cluster-role.yaml`
86+
- Files under `tmp/`.
87+
88+
When in doubt, look for a related **Makefile target** or a comment indicating files are generated.
89+
90+
---
91+
92+
## Common Change Patterns
93+
94+
### 1. Updating or Adding API Fields / CRDs
95+
96+
1. Modify Go API types under `pkg/apis/...`.
97+
2. Update any validation/defaulting or controller logic in `pkg/controllers/...` as needed.
98+
3. Regenerate artifacts:
99+
100+
```sh
101+
make generate
102+
```
103+
104+
4. Ensure CRDs and RBAC changes are committed alongside the Go changes.
105+
106+
### 2. Bumping the forked Prometheus Operator (obo-prometheus-operator)
107+
108+
As described in `docs/developer.md`:
109+
110+
1. Update the dependency version in:
111+
- `go.mod`
112+
- `deploy/dependencies/kustomization.yaml`
113+
2. Regenerate manifests:
114+
115+
```sh
116+
make generate
117+
```
118+
119+
3. Commit Go module + dependency + generated manifest changes together.
120+
121+
### 3. Adjusting Operator / OLM Manifests
122+
123+
- For operator deployment changes (env vars, args, resources, etc.):
124+
- Prefer editing the relevant **Kustomize bases** under `deploy/operator/`, `deploy/monitoring/`, or `deploy/dependencies/`.
125+
- For OLM bundle / CSV adjustments:
126+
- Edit Kustomize configs in `deploy/olm/` rather than direct edits in `bundle/`.
127+
- Recreate the bundle as needed with:
128+
129+
```sh
130+
make bundle
131+
```
132+
133+
- Be aware that `make bundle` may reset uncommitted changes in `bundle/` (see `Makefile`).
134+
135+
### 4. Tests & Linting
136+
137+
To keep suggestions consistent with local workflows, assume the following are used:
138+
139+
- Unit tests:
140+
141+
```sh
142+
make test-unit
143+
```
144+
145+
- End-to-end tests:
146+
147+
```sh
148+
./test/run-e2e.sh
149+
```
150+
151+
- Linting:
152+
153+
```sh
154+
make lint
155+
```
156+
157+
Proposed changes should be structured so they can pass these commands.
158+
159+
---
160+
161+
## Style & Quality Notes for Agents
162+
163+
- Follow existing **Go style** and `controller-runtime` patterns; avoid introducing new frameworks.
164+
- Keep reconciliation logic **idempotent** and resilient to partial failures.
165+
- When editing YAML, preserve:
166+
- Resource kinds, API versions, and labels/annotations used by operators/OLM.
167+
- Existing indentation and ordering where practical.
168+
- For breaking or behavioural changes, ensure commit messages (authored by humans) can use
169+
`feat:`, `fix:`, or `BREAKING CHANGE:` consistently.
170+
171+
If a change appears to impact release automation, image tags, or OLM packaging, prefer to
172+
suggest **small, focused diffs** and explicitly call out the potential impact in comments
173+
or PR descriptions for human reviewers.
174+
175+
176+

build/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ WORKDIR /workspace
55
# Copy the Go Modules manifests
66
COPY go.mod go.mod
77
COPY go.sum go.sum
8+
COPY pkg/apis/ pkg/apis/
89
# cache deps before building and copying source so that we don't need to re-download as much
910
# and so that source changes don't invalidate our downloaded layer
1011
RUN go mod download

bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
annotations:
55
controller-gen.kubebuilder.io/version: v0.19.0
66
observability.openshift.io/api-support: TechPreview
7-
operator.prometheus.io/version: 0.86.2-rhobs1
7+
operator.prometheus.io/version: 0.87.0-rhobs1
88
creationTimestamp: null
99
labels:
1010
app.kubernetes.io/part-of: observability-operator
@@ -5297,6 +5297,11 @@ spec:
52975297
message defines the notification message content.
52985298
This is the main body text of the Pushover notification.
52995299
type: string
5300+
monospace:
5301+
description: |-
5302+
monospace optional HTML/monospace formatting for the message, see https://pushover.net/api#html
5303+
html and monospace formatting are mutually exclusive.
5304+
type: boolean
53005305
priority:
53015306
description: |-
53025307
priority defines the notification priority level.
@@ -8051,7 +8056,7 @@ spec:
80518056
x-kubernetes-map-type: atomic
80528057
useFIPSSTSEndpoint:
80538058
description: |-
8054-
useFIPSSTSEndpoint defines FIPS mode for AWS STS endpoint.
8059+
useFIPSSTSEndpoint defines the FIPS mode for the AWS STS endpoint.
80558060
It requires Prometheus >= v2.54.0.
80568061
type: boolean
80578062
type: object

bundle/manifests/monitoring.rhobs_alertmanagers.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ metadata:
44
annotations:
55
controller-gen.kubebuilder.io/version: v0.19.0
66
observability.openshift.io/api-support: Experimental-SSA
7-
operator.prometheus.io/version: 0.86.2-rhobs1
7+
operator.prometheus.io/version: 0.87.0-rhobs1
88
creationTimestamp: null
99
labels:
1010
app.kubernetes.io/part-of: observability-operator

bundle/manifests/monitoring.rhobs_monitoringstacks.yaml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ spec:
5050
default: false
5151
description: Disables the deployment of Alertmanager.
5252
type: boolean
53+
replicas:
54+
default: 2
55+
description: Number of replicas/pods to deploy for Alertmanager.
56+
format: int32
57+
minimum: 0
58+
type: integer
5359
webTLSConfig:
5460
description: Configure TLS options for the Alertmanager web server.
5561
properties:
@@ -1709,10 +1715,23 @@ spec:
17091715
retention:
17101716
default: 120h
17111717
description: |-
1712-
Time duration to retain data for. Default is '120h',
1713-
and must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).
1718+
Time duration to retain data for. Default is '120h', and the value must
1719+
match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds
1720+
seconds minutes hours days weeks years).
1721+
1722+
When both retention and retentionSize are defined, whichever triggers
1723+
first will be applied.
17141724
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
17151725
type: string
1726+
retentionSize:
1727+
description: |-
1728+
retentionSize defines the maximum number of bytes used by the Prometheus
1729+
data. By default the size is unlimited.
1730+
1731+
When both retention and retentionSize are defined, whichever triggers
1732+
first will be applied.
1733+
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
1734+
type: string
17161735
tolerations:
17171736
description: Define tolerations for Monitoring Stack Pods.
17181737
items:

0 commit comments

Comments
 (0)