Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
670f2d9
fix: fix linter issues and add CI check for linter changes (#887)
jan--f Oct 29, 2025
497478a
build(deps): bump github.com/grafana/tempo-operator (#915)
dependabot[bot] Oct 29, 2025
d41cb22
OU-964: update incidents and TP to GA (#912)
PeterYurkovich Oct 30, 2025
51d4408
fix: set 4.19 as GA for incidents (#917)
PeterYurkovich Oct 30, 2025
eeaf79f
chore: update korrel8r image to 0.8.4 for COO 1.3 (#908)
alanconway Oct 30, 2025
9a4dc0f
chore(release): 1.3.0 (#920)
jan--f Nov 4, 2025
3358246
fix: [COO-1304] Fix misspelled labels of accelerator metrics (#925)
empovit Nov 6, 2025
e38a3f6
fix: [COO-1305] Fix misspelled metric name in accelerators (#926)
empovit Nov 6, 2025
d2b4b9d
fix: [COO-1313] Add missing description for ObservabilityInstaller in…
IshwarKanse Nov 10, 2025
cb47218
sync 1.3 to main (#935)
tremes Nov 20, 2025
210528d
build(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0 (#934)
dependabot[bot] Nov 20, 2025
c25cf24
docs: fix a few typos in the Thanos Querier guide (#936)
simonpasquier Nov 21, 2025
42301f7
fix: fix & rename health-analyzer and korrel8r clusterrolebindings (#…
tremes Nov 25, 2025
1d6245b
docs: update UI plugins documentation (#940)
simonpasquier Nov 26, 2025
e7a45ee
feat: allow to set replicas number for Alertmanager (#941)
simonpasquier Nov 26, 2025
8627d46
fix: set correct references for perses CR for correct cleanup (#942)
jgbernalp Nov 27, 2025
46ccb54
build(deps): bump actions/checkout from 5 to 6 (#939)
dependabot[bot] Nov 27, 2025
340137c
feat: enable watch-referenced-objects-in-all-namespaces in Prometheus…
simonpasquier Nov 28, 2025
6ec4de7
build(deps): bump k8s.io/apiserver from 0.34.0 to 0.34.1 (#872)
dependabot[bot] Nov 28, 2025
b13d7b2
feat: support size-based retention for MonitoringStack (#946)
simonpasquier Dec 2, 2025
5ef4238
fix: disable unmanaged Prometheus configuration (#944)
simonpasquier Dec 2, 2025
d638618
fix: [COO-1325] fix logging model field documentation (#938)
jgbernalp Dec 2, 2025
e9a673c
build(deps): bump k8s.io/apiextensions-apiserver from 0.34.1 to 0.34.…
dependabot[bot] Dec 2, 2025
828a2d8
build(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 (#947)
dependabot[bot] Dec 2, 2025
fd5645c
fix: set logger warning and image ref (#924)
IshwarKanse Dec 3, 2025
9ac8ef9
test: automation to cover nill resource selector (#955)
lihongyan1 Dec 4, 2025
3c84569
COO-1384: fix(monitoringstack): correctly configure OTLP receiver (#943)
too-common-name Dec 4, 2025
02e37c9
chore: bump p-o to v0.87.0 (#950)
jan--f Dec 4, 2025
3878301
fix: github action workflow release failure (#957)
lihongyan1 Dec 4, 2025
829d511
Improve prometheus-operator updates (#959)
jan--f Dec 4, 2025
e6efc6e
build(deps): bump github.com/operator-framework/api (#953)
dependabot[bot] Dec 5, 2025
ac4e4df
build(deps): bump github.com/goccy/go-yaml from 1.18.0 to 1.19.0 (#952)
dependabot[bot] Dec 5, 2025
461e47c
chore: Merge branch 'main' into sync-main
jan--f Dec 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/olm-stable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
environment: quay
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/package-operator-stable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
environment: quay
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/pr-checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
name: Lint the commit messages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v6
Expand All @@ -17,14 +17,14 @@ jobs:
name: Lint Github Action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: reviewdog/action-actionlint@v1

lint:
name: Lint code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- uses: actions/setup-go@v6
with:
Expand All @@ -50,7 +50,7 @@ jobs:
name: Verify generated code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- uses: actions/setup-go@v6
with:
Expand All @@ -63,7 +63,7 @@ jobs:
runs-on: ubuntu-latest
name: Validate tools cache
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- uses: actions/setup-go@v6
with:
Expand All @@ -79,7 +79,7 @@ jobs:
name: Build bundle image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: Setup Go environment
uses: actions/setup-go@v6
Expand All @@ -98,7 +98,7 @@ jobs:
name: Run end-to-end tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: e2e tests through OLM
uses: ./.github/e2e-tests-olm
11 changes: 7 additions & 4 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
push:
branches: [main]

permissions:
contents: write

jobs:
e2e-tests-olm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: e2e tests through OLM
uses: ./.github/e2e-tests-olm
Expand All @@ -20,7 +23,7 @@
needs:
- e2e-tests-olm
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
with:
fetch-depth: 0

Expand All @@ -36,7 +39,7 @@

- name: Set version
id: version
run: |

Check warning on line 42 in .github/workflows/release.yaml

View workflow job for this annotation

GitHub Actions / Lint Github Action

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2086:info:3:28: Double quote to prevent globbing and word splitting [shellcheck] Raw Output: i:.github/workflows/release.yaml:42:9: shellcheck reported issue in this script: SC2086:info:3:28: Double quote to prevent globbing and word splitting [shellcheck]
npx standard-version --skip.commit --skip.tag --skip.changelog
version="$(cat VERSION)-$(date +%y%m%d%H%M%S)"
echo "version=$version" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -83,7 +86,7 @@
if: "startsWith(github.event.head_commit.message, 'chore(release):')"
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.REPOSITORY_PUSH_TOKEN }}
Expand All @@ -99,7 +102,7 @@
check-latest: true

- name: Generate release notes
run: |

Check warning on line 105 in .github/workflows/release.yaml

View workflow job for this annotation

GitHub Actions / Lint Github Action

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2046:warning:5:16: Quote this to prevent word splitting [shellcheck] Raw Output: w:.github/workflows/release.yaml:105:9: shellcheck reported issue in this script: SC2046:warning:5:16: Quote this to prevent word splitting [shellcheck]
# Create the release notes for the Github release
git config user.name rhobs-release-bot
git config user.email release-bot@monitoring.rhobs.io
Expand All @@ -109,7 +112,7 @@

- name: Publish tag
id: publish_tag
run: |

Check warning on line 115 in .github/workflows/release.yaml

View workflow job for this annotation

GitHub Actions / Lint Github Action

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2086:info:4:52: Double quote to prevent globbing and word splitting [shellcheck] Raw Output: i:.github/workflows/release.yaml:115:9: shellcheck reported issue in this script: SC2086:info:4:52: Double quote to prevent globbing and word splitting [shellcheck]
# NOTE tag is created by standard-version and points to the
# chore(release): commit
git push --follow-tags
Expand All @@ -130,7 +133,7 @@
environment: quay
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.REPOSITORY_PUSH_TOKEN }}
Expand Down
176 changes: 176 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
## AGENTS GUIDE

This document is for **AI/code assistants and other automation** contributing changes to this repository.

The primary goal is to keep generated assets, CRDs, OLM bundles, and deployment manifests **consistent and reproducible** while making safe, reviewable edits.

---

## Project Overview

- **Name**: Observability Operator (`observability-operator`)
- **Type**: Kubernetes operator (Go, controller-runtime) plus Kustomize/OLM packaging
- **Purpose**: Manage monitoring/alerting stacks (and related observability components) via CRDs.

Key entry points:

- `cmd/operator/main.go` – operator binary entrypoint.
- `pkg/apis/...` – API types and CRDs definitions.
- `pkg/controllers/...` – reconcilers/controllers.
- `deploy/...` – Kustomize bases for CRDs, operator deployment, OLM, package-operator, etc.
- `bundle/...` – Generated OLM bundle (do not hand-edit).

For human-focused docs, see `README.md` and `docs/developer.md`.

---

## Conventions & Tooling

- **Language**: Go (see Go version in root `go.mod`).
- **Build & generation**: GNU Make, controller-gen, kustomize, operator-sdk.
- **Commit messages**: Follow **Conventional Commits** (see `docs/developer.md`).
- **Versioning**: SemVer, automated via `make initiate-release`.

Important make targets:

- `make generate` – regenerate CRDs, RBAC, deepcopy, Kustomize outputs, and API docs.
- `make test-unit` – run Go unit tests.
- `make test-e2e` – run Go-based e2e tests (alternative to `./test/run-e2e.sh`).
- `make operator` / `make build` – build the operator binary into `tmp/operator`.

Only **invoke** these commands in suggestions; do **not assume** they have been run.

---

## Repository Layout (for Agents)

- `cmd/` – CLI/entrypoint code.
- `pkg/apis/` – custom resource APIs; changes here require `make generate`.
- `pkg/controllers/` – controller logic; generally safe for targeted edits.
- `deploy/`:
- `crds/` – generated CRDs (kubernetes + common).
- `dependencies/` – Kustomize config for dependent operators (e.g. obo-prometheus-operator).
- `monitoring/`, `operator/`, `olm/`, `package-operator/` – operator deployment and packaging.
- `bundle/` – **generated** OLM bundle content.
- `jsonnet/`, `dashboards/`, `must-gather/` – ancillary assets.
- `tmp/` – build/test artifacts; never commit changes from here.

Prefer editing **sources** (Go, Kustomize bases, templates) rather than generated artifacts.

---

## Safe vs Unsafe Edits

**Prefer to edit**

- Go code in:
- `pkg/controllers/...`
- `pkg/operator/...`
- `pkg/reconciler/...`
- `cmd/operator/...`
- API types in `pkg/apis/...` (but remember to run `make generate` afterwards).
- Kustomize bases under `deploy/...`:
- `deploy/dependencies/...`
- `deploy/monitoring/...`
- `deploy/olm/...`
- `deploy/package-operator/...`
- Documentation in `docs/` and `README.md`.

**Avoid hand-editing**

- `bundle/...` – OLM bundle content is generated via `make bundle`.
- Generated CRDs/RBAC in:
- `deploy/crds/common/...`
- `deploy/crds/kubernetes/...`
- `deploy/operator/observability-operator-cluster-role.yaml`
- Files under `tmp/`.

When in doubt, look for a related **Makefile target** or a comment indicating files are generated.

---

## Common Change Patterns

### 1. Updating or Adding API Fields / CRDs

1. Modify Go API types under `pkg/apis/...`.
2. Update any validation/defaulting or controller logic in `pkg/controllers/...` as needed.
3. Regenerate artifacts:

```sh
make generate
```

4. Ensure CRDs and RBAC changes are committed alongside the Go changes.

### 2. Bumping the forked Prometheus Operator (obo-prometheus-operator)

As described in `docs/developer.md`:

1. Update the dependency version in:
- `go.mod`
- `deploy/dependencies/kustomization.yaml`
2. Regenerate manifests:

```sh
make generate
```

3. Commit Go module + dependency + generated manifest changes together.

### 3. Adjusting Operator / OLM Manifests

- For operator deployment changes (env vars, args, resources, etc.):
- Prefer editing the relevant **Kustomize bases** under `deploy/operator/`, `deploy/monitoring/`, or `deploy/dependencies/`.
- For OLM bundle / CSV adjustments:
- Edit Kustomize configs in `deploy/olm/` rather than direct edits in `bundle/`.
- Recreate the bundle as needed with:

```sh
make bundle
```

- Be aware that `make bundle` may reset uncommitted changes in `bundle/` (see `Makefile`).

### 4. Tests & Linting

To keep suggestions consistent with local workflows, assume the following are used:

- Unit tests:

```sh
make test-unit
```

- End-to-end tests:

```sh
./test/run-e2e.sh
```

- Linting:

```sh
make lint
```

Proposed changes should be structured so they can pass these commands.

---

## Style & Quality Notes for Agents

- Follow existing **Go style** and `controller-runtime` patterns; avoid introducing new frameworks.
- Keep reconciliation logic **idempotent** and resilient to partial failures.
- When editing YAML, preserve:
- Resource kinds, API versions, and labels/annotations used by operators/OLM.
- Existing indentation and ordering where practical.
- For breaking or behavioural changes, ensure commit messages (authored by humans) can use
`feat:`, `fix:`, or `BREAKING CHANGE:` consistently.

If a change appears to impact release automation, image tags, or OLM packaging, prefer to
suggest **small, focused diffs** and explicitly call out the potential impact in comments
or PR descriptions for human reviewers.



1 change: 1 addition & 0 deletions build/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
COPY pkg/apis/ pkg/apis/
# cache deps before building and copying source so that we don't need to re-download as much
# and so that source changes don't invalidate our downloaded layer
RUN go mod download
Expand Down
9 changes: 7 additions & 2 deletions bundle/manifests/monitoring.rhobs_alertmanagerconfigs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
observability.openshift.io/api-support: TechPreview
operator.prometheus.io/version: 0.86.2-rhobs1
operator.prometheus.io/version: 0.87.0-rhobs1
creationTimestamp: null
labels:
app.kubernetes.io/part-of: observability-operator
Expand Down Expand Up @@ -5297,6 +5297,11 @@ spec:
message defines the notification message content.
This is the main body text of the Pushover notification.
type: string
monospace:
description: |-
monospace optional HTML/monospace formatting for the message, see https://pushover.net/api#html
html and monospace formatting are mutually exclusive.
type: boolean
priority:
description: |-
priority defines the notification priority level.
Expand Down Expand Up @@ -8051,7 +8056,7 @@ spec:
x-kubernetes-map-type: atomic
useFIPSSTSEndpoint:
description: |-
useFIPSSTSEndpoint defines FIPS mode for AWS STS endpoint.
useFIPSSTSEndpoint defines the FIPS mode for the AWS STS endpoint.
It requires Prometheus >= v2.54.0.
type: boolean
type: object
Expand Down
2 changes: 1 addition & 1 deletion bundle/manifests/monitoring.rhobs_alertmanagers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
observability.openshift.io/api-support: Experimental-SSA
operator.prometheus.io/version: 0.86.2-rhobs1
operator.prometheus.io/version: 0.87.0-rhobs1
creationTimestamp: null
labels:
app.kubernetes.io/part-of: observability-operator
Expand Down
23 changes: 21 additions & 2 deletions bundle/manifests/monitoring.rhobs_monitoringstacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ spec:
default: false
description: Disables the deployment of Alertmanager.
type: boolean
replicas:
default: 2
description: Number of replicas/pods to deploy for Alertmanager.
format: int32
minimum: 0
type: integer
webTLSConfig:
description: Configure TLS options for the Alertmanager web server.
properties:
Expand Down Expand Up @@ -1709,10 +1715,23 @@ spec:
retention:
default: 120h
description: |-
Time duration to retain data for. Default is '120h',
and must match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds seconds minutes hours days weeks years).
Time duration to retain data for. Default is '120h', and the value must
match the regular expression `[0-9]+(ms|s|m|h|d|w|y)` (milliseconds
seconds minutes hours days weeks years).

When both retention and retentionSize are defined, whichever triggers
first will be applied.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
retentionSize:
description: |-
retentionSize defines the maximum number of bytes used by the Prometheus
data. By default the size is unlimited.

When both retention and retentionSize are defined, whichever triggers
first will be applied.
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
type: string
tolerations:
description: Define tolerations for Monitoring Stack Pods.
items:
Expand Down
Loading
Loading