<a id="changelog"></a>

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

Each revision is versioned by the date of the revision.

## 2026-10-19

### Changed

- Moved the documentation tooling to the centrally managed `platform-engineering-documentation-files` Copier template and added a scheduled workflow that keeps it in sync. There is no change to the charms.

## 2026-10-14

### Changed

- Reorganized the how-to and reference landing pages into functional sections, clarified the alert-forwarding prerequisite, and improved navigation.

## 2026-10-05

### Changed

- Migrated the `falco-operator` and `falcosidekick-k8s-operator` Terraform modules to the CC008
  Charm Terraform Standard.
  - Renamed `versions.tf` to `terraform.tf` in both modules.
  - Replaced the combined `app_name`/`requires`/`provides` outputs with the CC008 `application`,
    `provides` and `requires` outputs; `application` now exposes the full `juju_application`
    object instead of just its name.
  - Added the missing `provides.cos_agent` output to the `falco-operator` module and the missing
    `provides.grafana_dashboard` and `provides.metrics_endpoint` outputs to the
    `falcosidekick-k8s-operator` module, matching the relations declared in their `charmcraft.yaml`.
  - Added the `resources` input variable to the `falcosidekick-k8s-operator` module to allow
    pinning the `falcosidekick-image` OCI resource.
  - Changed the default value of `base` from `"ubuntu@24.04"` to `null` and of `constraints` from
    `""` to `null` in both modules, and made `app_name`, `channel` and `model_uuid` non-nullable,
    as required by CC008.
  - Added a `MAJOR_VERSION` file to each module to drive the new `terraform_modules_release`
    workflow.
  - Added `terraform_modules_compliance.yaml` and `generate_terraform_docs.yaml` CI workflows, and
    updated `test_terraform_modules.yaml` (renamed from `test_terraform_module.yaml`) and the new
    `terraform_modules_release.yaml` workflow to cover both module directories.

## 2026-09-09

- Reworked the documentation home page around integrations, operations, design, and security, and documented the available metrics endpoints.

## 2026-06-18

- Migrate the RTD documentation URL under the Canonical domain.

## 2026-05-10

### Changed

- Fix the “falcosidekick behind ingress” use case.

## 2026-03-11

### Changed

- Fix the promotion workflows.

## 2026-02-23

### Changed

- Fix ingress integration for Falco sidekick.

## 2026-02-23

### Removed

- Terraform product for Falco sidekick.

## 2026-02-19

### Added

- Terraform product for Falco sidekick.

## 2026-02-11

### Added

- COS (Canonical Observability Stack) integration support
  - Falco operator: Added `cos-agent` relation for metrics collection through Grafana Agent
  - Falcosidekick K8s operator: Added `grafana-dashboard` relation for pre-configured dashboards
  - Falcosidekick K8s operator: Added `metrics-endpoint` relation for Prometheus metrics scraping
  - Falcosidekick K8s operator: Added `logging` relation for internal application logs forwarding to Loki
  - Basic prometheus alert rules for both charms

### Updated

- Documentation to include new COS integration

## 2026-01-30

Comprehensive documentation overhaul following Diátaxis framework.

### Added

- Tutorial documentation for end-to-end Falco and Falcosidekick deployment
  - Deploy Falco operator tutorial
  - Deploy Falcosidekick K8s operator tutorial
  - End-to-end deployment tutorial connecting Falco with Falcosidekick
- How-to guides for operational tasks
  - Integrate with Canonical Observability Stack (COS)
  - Configure custom Git repository for Falco rules and configurations
  - Configure TLS termination with ingress using gateway-api-integrator and Lego
  - Troubleshoot common issues across both charms
- Explanation documentation
  - Charm design patterns and module organization
  - Architecture diagrams showing component relationships and data flow
- Reference documentation for Falcosidekick-k8s operator
  - Configurations, actions, and integrations reference pages

### Changed

- Updated repository documentation (e.g. [README.md](http://README.md), [CONTRIBUTING.md](http://CONTRIBUTING.md)) to reflect new structure
- Move how-to/back-up-restore.md to docs/reference/back-up-restore.md

## 2026-01-28

Add ingress relation for falcosidekick-k8s-operator. With ingress, the certificates relation is not mandatory, the TLS
terminates at the gateway.

### Added

- Observe and handle ingress relation changed and broken
- Make certificate relation and ingress relation mutually exclusive

### Changed

- Certificate relation changes to optional
- Update terraform module to include ingress relation

## 2026-01-16

Add certificate interface to support falcosidekick-k8s to obtain a certificate from a provider. If falcosidekick-k8s
obtains a certificate, it will start the server with TLS enabled. In additional to that, a HTTP server on port 2810 will
be serving for `/healthz` and `/ping` for internal health check.

### Added

- Add certificate lib and interface to falcosidekick-k8s-operator
- Add logic to handle certificate relation related events to falcosidekick-k8s-operator
  - Observed certificate relation changed and broken event to reconcile the state and update falcosidekick service
  - Refresh the certificate state when the falcosidekick-k8s charm change config
  - Blocked the charm is certificates relation does not exist

### Removed

- Health check for falcosidekick
  - This has been proven to be very flaky

## 2026-01-10

Add integration between falco-operator and falcosidekick-k8s-operator using http_endpoint interface.

### Added

- Add http_endpoint interface to falco-operator
- Add http_endpoint interface to falcosidekick-k8s-operator
- Add relation logic in falco-operator to connect to falcosidekick-k8s-operator

### Changed

- Refactor falcosidekick-k8s-operator to not use `relations.py` module
- Fix terraform module tests and [README.md](http://README.md)
- Update terraform module to include additional relations

## 2026-01-07

Customize RTD configuration.

### Changed

- Update `docs/conf.py` to customize RTD configuration
- Update `workflows/docs.yaml` to check for markdown files other than `docs`

## 2026-01-06

Update terraform modules.

### Changed

- Update terraform Juju provider to version >= 1.1.1
- Update terraform module for falco-operator
  - Update the channel for the falco-operator to “0.42/stable”
  - Update terraform tests to check for expected outputs
  - Update [README.md](http://README.md) for falco-operator terraform module
- Update terraform module for falcosidekick-k8s-operator
  - Update the channel for the falcosidekick-k8s-operator to “2/stable”
  - Update terraform tests to check for expected outputs
  - Update [README.md](http://README.md) for falcosidekick-k8s-operator terraform module

## 2026-01-05

Add documentation workflows and RTD set up.

## 2025-12-29

Add integration between falcosidekick-k8s-operator and loki-k8s-operator.

### Added

- Add relation between falcosidekick-k8s-operator and loki-k8s-operator for log forwarding.

## 2025-12-22

Add port configuration option for falcosidekick-k8s-operator.

### Added

- Add `port` configuration option to falcosidekick-k8s-operator

### Changed

- Update charm logic to support configurable listen port

## 2025-12-10

Add `./falcosidekick-k8s-operator` to the monorepo.

### Added

- Add falcosidekick rock image definition to monorepo.
- Add falcosidekick-k8s-operator to monorepo.

### Changed

- Update CI workflows to support `./falcosidekick-k8s-operator` directory.

## 2025-12-10

Migrate the repository to a monorepo structure.

## 2025-12-05

Add configuration for falco.

### Added

- Config option for falco operator that allows setting custom falco configuration
- Unit tests for operator functionality

## 2025-12-04

Create initial version of Falco operator.

### Added

- Initial version of Falco operator implementation
- Unit test functional test for the Falco operator
- Build and release workflow for Falco binary used in this charm
- Renovate configuration for Falco dependency management
- Updated `RELEASE.md` documentation

## 2025-11-25

Set up initial Falco operator project.

### Changed

- Updated `charmcraft.yaml` with Falco-specific configuration
- Updated `README.md` with minimal Falco operator information
- Updated `CONTRIBUTING.md` with minimal documentation
- Updated Python dependencies in `pyproject.toml` and `uv.lock`
- Clean up charm implementation from the template
- Clean up docs content from initial template placeholder
