{"owner":"strimzi","repo":"strimzi-kafka-operator","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Strimzi Kafka Operator\n\nStrimzi provides a way to run Apache Kafka® clusters on Kubernetes and OpenShift using the Operator pattern.\nIt simplifies the deployment and management of Kafka clusters, including topics, users, connectors, and more.\n\nSee [README.md](README.md) for project overview, quick starts, and community information.\n\n## Architecture\n\nMulti-module Maven project.\n\n### Requirements\n\n- **Java**: Java 21\n- **Build tools**: Maven 3.5+, make, bash\n- **Helm**: Helm 3 (for Helm chart packaging and testing)\n- **Container runtime**: Docker or Podman (use `DOCKER_CMD=podman` for Podman)\n- **Kubernetes cluster**: Required for integration/system tests (minikube, kind, or remote cluster)\n\n### Key Dependencies\n\n- Kafka client and Fabric8 Kubernetes client versions: See `pom.xml`\n- Supported Kafka versions (for cluster deployment): See `kafka-versions.yaml`\n\n### Modules\n\n| Module | Purpose |\n|--------|---------|\n| `cluster-operator/` | Main operator managing Kafka clusters |\n| `topic-operator/` | Manages Kafka topics via KafkaTopic CRs |\n| `user-operator/` | Manages Kafka users and ACLs via KafkaUser CRs |\n| `api/` | CRD definitions and API models (Kafka, KafkaTopic, KafkaUser, etc.) |\n| `operator-common/` | Shared operator code and utilities |\n| `kafka-agent/` | Java agent running inside Kafka containers (broker config, metrics) |\n| `tracing-agent/` | OpenTelemetry tracing support |\n| `certificate-issuer/` | TLS certificate issuing and CA handling |\n| `kafka-init/` | Kafka container initialization logic |\n| `crd-generator/` | Generates CRDs from `api` module via Java annotations |\n| `crd-annotations/` | Annotations for CRD generation |\n| `config-model/` | Kafka configuration models utility classes |\n| `config-model-generator/` | Generates Kafka configuration models |\n| `mockkube/` | Mock Kubernetes for unit testing |\n| `test/` | Test utilities and helpers |\n| `systemtest/` | End-to-end system tests |\n\n## Contributing\n\n- **Commit sign-off (DCO)** (REQUIRED on all commits): always use `git commit -s`\n  - If forgotten: `git commit --amend -s` to fix last commit\n  - CI will fail without sign-off\n  - More info: [README.md#contributing](README.md#contributing)\n\n- **Code style**: Enforced by checkstyle (runs in CI on all PRs)\n  - Config: `.checkstyle/checkstyle.xml`\n  - Run locally: `mvn checkstyle:check@validate`\n  - CI will fail if checkstyle errors are found\n\n## Developer Notes\n\n### Common Development Tasks\n\n**Building:**\n- Build project: `make all` (compiles Java, runs tests, builds Docker images)\n- Clean build artifacts: `make clean`\n- Customize Maven behavior: Use `MVN_ARGS` environment variable\n  - Skip all tests: `MVN_ARGS=-DskipTests make all`\n  - Skip integration tests only: `MVN_ARGS=-DskipITs make all`\n- Build specific module: Run `make all` or `make clean` from module directory (`MVN_ARGS` works here too)\n\n**Testing:**\n- Unit tests only: `mvn test`\n- Unit + integration tests: `mvn verify`\n- System tests (requires Kubernetes cluster): see [TESTING.md](development-docs/TESTING.md)\n\n**CRD Changes:** If you changed anything in the `api/` module:\n1. Run `make all` in the `api/` module to update generated files\n2. Run `make crd_install` to update derived CRDs in:\n   - `api/src/test/resources/crds/`\n   - `packaging/install/cluster-operator/`\n   - `packaging/helm-charts/helm3/strimzi-kafka-operator/crds/`\n\n**Generated Code** (Never edit directly):\n- Sundrio builders/fluent classes (generated from annotations)\n- Config Model JSONs (generated from Kafka source)\n- Files in `target/` directories or marked `@Generated`\n\n**Container Images:**\n- Built via `docker-images/` Makefiles\n- Base images in `docker-images/base/`\n- Use `DOCKER_CMD=podman` to use Podman instead of Docker\n- Environment variables for custom registry:\n  - `DOCKER_ORG`: your registry organization/username (e.g., Docker Hub or Quay.io username, default: `$USER`)\n  - `DOCKER_REGISTRY`: registry to use (e.g., `docker.io`, `quay.io`, default: `docker.io`)\n  - `DOCKER_TAG`: image tag (default: `latest`)\n  - `DOCKER_ARCHITECTURE`: target architecture for container images (e.g., `amd64`, `arm64`)\n\n## Documentation\n\nUser-facing documentation is in `documentation/` folder (AsciiDoc format):\n- **Overview guide**: Key concepts and features\n- **Deploying and Managing guide**: Deployment instructions and best practices\n- **API Reference**: Detailed configuration reference\n\nFor contributing to documentation, see the documentation related [README.md](documentation/README.md).\n"},"files":{"AGENTS.md":"# Strimzi Kafka Operator\n\nStrimzi provides a way to run Apache Kafka® clusters on Kubernetes and OpenShift using the Operator pattern.\nIt simplifies the deployment and management of Kafka clusters, including topics, users, connectors, and more.\n\nSee [README.md](README.md) for project overview, quick starts, and community information.\n\n## Architecture\n\nMulti-module Maven project.\n\n### Requirements\n\n- **Java**: Java 21\n- **Build tools**: Maven 3.5+, make, bash\n- **Helm**: Helm 3 (for Helm chart packaging and testing)\n- **Container runtime**: Docker or Podman (use `DOCKER_CMD=podman` for Podman)\n- **Kubernetes cluster**: Required for integration/system tests (minikube, kind, or remote cluster)\n\n### Key Dependencies\n\n- Kafka client and Fabric8 Kubernetes client versions: See `pom.xml`\n- Supported Kafka versions (for cluster deployment): See `kafka-versions.yaml`\n\n### Modules\n\n| Module | Purpose |\n|--------|---------|\n| `cluster-operator/` | Main operator managing Kafka clusters |\n| `topic-operator/` | Manages Kafka topics via KafkaTopic CRs |\n| `user-operator/` | Manages Kafka users and ACLs via KafkaUser CRs |\n| `api/` | CRD definitions and API models (Kafka, KafkaTopic, KafkaUser, etc.) |\n| `operator-common/` | Shared operator code and utilities |\n| `kafka-agent/` | Java agent running inside Kafka containers (broker config, metrics) |\n| `tracing-agent/` | OpenTelemetry tracing support |\n| `certificate-issuer/` | TLS certificate issuing and CA handling |\n| `kafka-init/` | Kafka container initialization logic |\n| `crd-generator/` | Generates CRDs from `api` module via Java annotations |\n| `crd-annotations/` | Annotations for CRD generation |\n| `config-model/` | Kafka configuration models utility classes |\n| `config-model-generator/` | Generates Kafka configuration models |\n| `mockkube/` | Mock Kubernetes for unit testing |\n| `test/` | Test utilities and helpers |\n| `systemtest/` | End-to-end system tests |\n\n## Contributing\n\n- **Commit sign-off (DCO)** (REQUIRED on all commits): always use `git commit -s`\n  - If forgotten: `git commit --amend -s` to fix last commit\n  - CI will fail without sign-off\n  - More info: [README.md#contributing](README.md#contributing)\n\n- **Code style**: Enforced by checkstyle (runs in CI on all PRs)\n  - Config: `.checkstyle/checkstyle.xml`\n  - Run locally: `mvn checkstyle:check@validate`\n  - CI will fail if checkstyle errors are found\n\n## Developer Notes\n\n### Common Development Tasks\n\n**Building:**\n- Build project: `make all` (compiles Java, runs tests, builds Docker images)\n- Clean build artifacts: `make clean`\n- Customize Maven behavior: Use `MVN_ARGS` environment variable\n  - Skip all tests: `MVN_ARGS=-DskipTests make all`\n  - Skip integration tests only: `MVN_ARGS=-DskipITs make all`\n- Build specific module: Run `make all` or `make clean` from module directory (`MVN_ARGS` works here too)\n\n**Testing:**\n- Unit tests only: `mvn test`\n- Unit + integration tests: `mvn verify`\n- System tests (requires Kubernetes cluster): see [TESTING.md](development-docs/TESTING.md)\n\n**CRD Changes:** If you changed anything in the `api/` module:\n1. Run `make all` in the `api/` module to update generated files\n2. Run `make crd_install` to update derived CRDs in:\n   - `api/src/test/resources/crds/`\n   - `packaging/install/cluster-operator/`\n   - `packaging/helm-charts/helm3/strimzi-kafka-operator/crds/`\n\n**Generated Code** (Never edit directly):\n- Sundrio builders/fluent classes (generated from annotations)\n- Config Model JSONs (generated from Kafka source)\n- Files in `target/` directories or marked `@Generated`\n\n**Container Images:**\n- Built via `docker-images/` Makefiles\n- Base images in `docker-images/base/`\n- Use `DOCKER_CMD=podman` to use Podman instead of Docker\n- Environment variables for custom registry:\n  - `DOCKER_ORG`: your registry organization/username (e.g., Docker Hub or Quay.io username, default: `$USER`)\n  - `DOCKER_REGISTRY`: registry to use (e.g., `docker.io`, `quay.io`, default: `docker.io`)\n  - `DOCKER_TAG`: image tag (default: `latest`)\n  - `DOCKER_ARCHITECTURE`: target architecture for container images (e.g., `amd64`, `arm64`)\n\n## Documentation\n\nUser-facing documentation is in `documentation/` folder (AsciiDoc format):\n- **Overview guide**: Key concepts and features\n- **Deploying and Managing guide**: Deployment instructions and best practices\n- **API Reference**: Detailed configuration reference\n\nFor contributing to documentation, see the documentation related [README.md](documentation/README.md).\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Strimzi Kafka Operator\n\nStrimzi provides a way to run Apache Kafka® clusters on Kubernetes and OpenShift using the Operator pattern.\nIt simplifies the deployment and management of Kafka clusters, including topics, users, connectors, and more.\n\nSee [README.md](README.md) for project overview, quick starts, and community information.\n\n## Architecture\n\nMulti-module Maven project.\n\n### Requirements\n\n- **Java**: Java 21\n- **Build tools**: Maven 3.5+, make, bash\n- **Helm**: Helm 3 (for Helm chart packaging and testing)\n- **Container runtime**: Docker or Podman (use `DOCKER_CMD=podman` for Podman)\n- **Kubernetes cluster**: Required for integration/system tests (minikube, kind, or remote cluster)\n\n### Key Dependencies\n\n- Kafka client and Fabric8 Kubernetes client versions: See `pom.xml`\n- Supported Kafka versions (for cluster deployment): See `kafka-versions.yaml`\n\n### Modules\n\n| Module | Purpose |\n|--------|---------|\n| `cluster-operator/` | Main operator managing Kafka clusters |\n| `topic-operator/` | Manages Kafka topics via KafkaTopic CRs |\n| `user-operator/` | Manages Kafka users and ACLs via KafkaUser CRs |\n| `api/` | CRD definitions and API models (Kafka, KafkaTopic, KafkaUser, etc.) |\n| `operator-common/` | Shared operator code and utilities |\n| `kafka-agent/` | Java agent running inside Kafka containers (broker config, metrics) |\n| `tracing-agent/` | OpenTelemetry tracing support |\n| `certificate-issuer/` | TLS certificate issuing and CA handling |\n| `kafka-init/` | Kafka container initialization logic |\n| `crd-generator/` | Generates CRDs from `api` module via Java annotations |\n| `crd-annotations/` | Annotations for CRD generation |\n| `config-model/` | Kafka configuration models utility classes |\n| `config-model-generator/` | Generates Kafka configuration models |\n| `mockkube/` | Mock Kubernetes for unit testing |\n| `test/` | Test utilities and helpers |\n| `systemtest/` | End-to-end system tests |\n\n## Contributing\n\n- **Commit sign-off (DCO)** (REQUIRED on all commits): always use `git commit -s`\n  - If forgotten: `git commit --amend -s` to fix last commit\n  - CI will fail without sign-off\n  - More info: [README.md#contributing](README.md#contributing)\n\n- **Code style**: Enforced by checkstyle (runs in CI on all PRs)\n  - Config: `.checkstyle/checkstyle.xml`\n  - Run locally: `mvn checkstyle:check@validate`\n  - CI will fail if checkstyle errors are found\n\n## Developer Notes\n\n### Common Development Tasks\n\n**Building:**\n- Build project: `make all` (compiles Java, runs tests, builds Docker images)\n- Clean build artifacts: `make clean`\n- Customize Maven behavior: Use `MVN_ARGS` environment variable\n  - Skip all tests: `MVN_ARGS=-DskipTests make all`\n  - Skip integration tests only: `MVN_ARGS=-DskipITs make all`\n- Build specific module: Run `make all` or `make clean` from module directory (`MVN_ARGS` works here too)\n\n**Testing:**\n- Unit tests only: `mvn test`\n- Unit + integration tests: `mvn verify`\n- System tests (requires Kubernetes cluster): see [TESTING.md](development-docs/TESTING.md)\n\n**CRD Changes:** If you changed anything in the `api/` module:\n1. Run `make all` in the `api/` module to update generated files\n2. Run `make crd_install` to update derived CRDs in:\n   - `api/src/test/resources/crds/`\n   - `packaging/install/cluster-operator/`\n   - `packaging/helm-charts/helm3/strimzi-kafka-operator/crds/`\n\n**Generated Code** (Never edit directly):\n- Sundrio builders/fluent classes (generated from annotations)\n- Config Model JSONs (generated from Kafka source)\n- Files in `target/` directories or marked `@Generated`\n\n**Container Images:**\n- Built via `docker-images/` Makefiles\n- Base images in `docker-images/base/`\n- Use `DOCKER_CMD=podman` to use Podman instead of Docker\n- Environment variables for custom registry:\n  - `DOCKER_ORG`: your registry organization/username (e.g., Docker Hub or Quay.io username, default: `$USER`)\n  - `DOCKER_REGISTRY`: registry to use (e.g., `docker.io`, `quay.io`, default: `docker.io`)\n  - `DOCKER_TAG`: image tag (default: `latest`)\n  - `DOCKER_ARCHITECTURE`: target architecture for container images (e.g., `amd64`, `arm64`)\n\n## Documentation\n\nUser-facing documentation is in `documentation/` folder (AsciiDoc format):\n- **Overview guide**: Key concepts and features\n- **Deploying and Managing guide**: Deployment instructions and best practices\n- **API Reference**: Detailed configuration reference\n\nFor contributing to documentation, see the documentation related [README.md](documentation/README.md).\n","category":"root","tokens":1127}]}