Skip to content

Commit 79cf228

Browse files
Add distinct owners files to reflect the shared ownership of the repo
* L4, NEG, PSC are owned by one team * L7 is owned by one team
1 parent 1d50340 commit 79cf228

File tree

30 files changed

+198
-16
lines changed

30 files changed

+198
-16
lines changed

OWNERS

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,8 @@
11
approvers:
2-
- aojea
3-
- thockin
4-
- bowei
5-
- mrhohn
6-
- swetharepakula
7-
- panslava
8-
- cezarygerard
9-
- kl52752
10-
- spencerhance
11-
- code-elinka
12-
- mmamczur
13-
- gauravkghildiyal
14-
- tortillazhawaii
15-
- felipeyepez
2+
- general-maintainers
3+
- l7-owners
4+
- l4-neg-psc-owners
165
reviewers:
17-
- aojea
18-
- sawsa307
6+
- general-maintainers
7+
- l7-owners
8+
- l4-neg-psc-owners

OWNERSHIP_README.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
### Code Ownership Structure
2+
3+
This document outlines the ownership structure for directories within `pkg/` and `cmd/glbc/`. Ownership is categorized into three groups: L7, L4_NEG_PSC, and Shared. The designated owners for each category can be found in the `L7_OWNERS`, `L4_NEG_PSC_OWNERS` and `OWNERS` files respectively.
4+
5+
#### 1. L7 Ownership
6+
7+
These directories contain code exclusive to the L7 Ingress controller.
8+
9+
* **`pkg/apis/backendconfig`**: Defines the `BackendConfig` CRD for L7 features.
10+
* **`pkg/apis/frontendconfig`**: Defines the `FrontendConfig` CRD for L7 frontend configurations.
11+
* **`pkg/backendconfig`**: Implements the `BackendConfig` CRD logic.
12+
* **`pkg/controller`**: Contains the core reconciliation loop for the L7 Ingress controller.
13+
* **`pkg/frontendconfig`**: Implements the `FrontendConfig` CRD logic.
14+
* **`pkg/healthchecks`**, **`pkg/healthchecksprovider`**: Manages generic health check resources.
15+
* **`pkg/metrics`**: Exposes L7 Prometheus metrics.
16+
* **`pkg/translator`**: Translates Ingress/Service state into L7 load balancer configurations.
17+
* **`pkg/utils/healthcheck`**: Used by `pkg/healthchecks` and `pkg/translator`.
18+
19+
#### 2. L4_NEG_PSC Ownership
20+
21+
These directories contain code exclusive to the L4 (Internal Load Balancer), NEG (Network Endpoint Group), and PSC (Private Service Connect) controllers.
22+
23+
* **`pkg/apis/serviceattachment`**: Defines the `ServiceAttachment` CRD for PSC.
24+
* **`pkg/apis/svcneg`**: Defines APIs for Service NEGs, used by L4/NEG controllers.
25+
* **`pkg/apis/providerconfig`**: Contains shared API types for cloud provider configuration.
26+
* **`pkg/healthchecksl4`**: Manages health checks specifically for L4 load balancers.
27+
* **`pkg/l4lb`**: Contains the core implementation of the L4 ILB controller.
28+
* **`pkg/neg`**: Home of the NEG controller.
29+
* **`pkg/multiproject`**: Shared logic for multi-project support.
30+
* **`pkg/providerconfig`**: Shared cloud provider configuration.
31+
* **`pkg/network`**: Provides network-related utilities for L4/NEG controllers.
32+
* **`pkg/psc`**: Implements the Private Service Connect controller.
33+
* **`pkg/serviceattachment`**: Implements the `ServiceAttachment` CRD logic.
34+
* **`pkg/svcneg`**: Implements the Service NEG controller for L4 and standalone NEGs.
35+
* **`pkg/utils/serviceattachment`**: Used by `pkg/psc`.
36+
37+
#### 3. Shared Ownership
38+
39+
These directories contain shared components, utilities, and abstractions used by all controllers.
40+
41+
* **`cmd/glbc`** and **`cmd/glbc/app`**: Main entrypoint for the controller binary.
42+
* **`pkg/address`**: Manages shared IP address resources.
43+
* **`pkg/annotations`**: Manages annotations for both Ingress and Service resources.
44+
* **`pkg/backends`**: Provides common abstractions for managing backend services.
45+
* **`pkg/backoff`**, **`pkg/ratelimit`**, **`pkg/throttling`**: Shared utilities for managing API calls.
46+
* **`pkg/common`**: Collections of common data structures and helper functions.
47+
* **`pkg/composite`**: Shared utilities for handling composite Google Cloud resources.
48+
* **`pkg/context`**: Manages the shared controller context.
49+
* **`pkg/crd`**: Shared logic for interacting with CRDs.
50+
* **`pkg/e2e`**, **`pkg/fuzz`**, **`pkg/test`**: Shared testing infrastructure.
51+
* **`pkg/events`**, **`pkg/recorders`**: Provides a standardized way to emit Kubernetes events.
52+
* **`pkg/experimental`**: Contains experimental features not tied to a specific controller.
53+
* **`pkg/firewalls`**: Manages firewall rules.
54+
* **`pkg/flags`**: Defines and parses command-line flags.
55+
* **`pkg/forwardingrules`**: Manages forwarding rules.
56+
* **`pkg/instancegroups`**: Manages instance groups.
57+
* **`pkg/klog`**: A shared logging wrapper.
58+
* **`pkg/loadbalancers`**: Manages load balancer resources for both Ingress
59+
and L4 controllers.
60+
* **`pkg/nodetopology`**: Shared logic for node topology.
61+
* **`pkg/storage`**: Shared storage utilities.
62+
* **`pkg/sync`**: Contains the shared sync loop implementation.
63+
* **`pkg/systemhealth`**: Shared system health monitoring.
64+
* **`pkg/validation`**: Shared resource validation logic.
65+
* **`pkg/version`**: Provides shared controller version information.
66+
* **`pkg/utils/common`**: Used by both L4 and L7 controllers.
67+
* **`pkg/utils/descutils`**: Used by `pkg/utils/healthcheck` (L7) and `pkg/utils/serviceattachment` (L4).
68+
* **`pkg/utils/endpointslices`**: Used by `pkg/neg` (L4) and `pkg/controller/translator` (L7).
69+
* **`pkg/utils/namer`**: Used by a wide variety of L4 and L7 components.
70+
* **`pkg/utils/patch`**: Used by `pkg/neg` (L4), `pkg/psc` (L4), and `pkg/l4lb` (L4), and also by the shared `pkg/utils/common`.
71+
* **`pkg/utils/slice`**: Used by `pkg/psc` (L4), `pkg/loadbalancers` (L7), and `pkg/firewalls` (shared).
72+
* **`pkg/utils/zonegetter`**: Used by `pkg/neg` (L4), `pkg/l4lb` (L4), and `pkg/controller` (L7).
73+
74+
#### 4. Updating Owners
75+
76+
When an owners file is updated, please refer to this README to help understand which set of owners files need to be updated.

OWNERS_ALIASES

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
aliases:
2+
# Top-level project maintainers
3+
general-maintainers:
4+
- thockin
5+
- aojea
6+
- bowei
7+
- swetharepakula
8+
# Owners for L7 features (Ingress, BackendConfig, etc.)
9+
l7-owners:
10+
- kl52752
11+
- DamianSawicki
12+
- spencerhance
13+
# Owners for L4/NEG/PSC features
14+
l4-neg-psc-owners:
15+
- mmamczur
16+
- tortillazhawaii
17+
- felipeyepez
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# approvers for L7 features
2+
approvers:
3+
- l7-owners
4+
- general-maintainers
5+
reviewers:
6+
- l7-owners
7+
- general-maintainers

cmd/neg-e2e-test/OWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# approvers for L4/NEG/PSC features
2+
approvers:
3+
- l4-neg-psc-owners
4+
- general-maintainers
5+
reviewers:
6+
- l4-neg-psc-owners
7+
- general-maintainers

cmd/psc-e2e-test/OWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# approvers for L4/NEG/PSC features
2+
approvers:
3+
- l4-neg-psc-owners
4+
- general-maintainers
5+
reviewers:
6+
- l4-neg-psc-owners
7+
- general-maintainers

pkg/apis/backendconfig/OWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# approvers for L7 features
2+
approvers:
3+
- l7-owners
4+
- general-maintainers
5+
reviewers:
6+
- l7-owners
7+
- general-maintainers

pkg/apis/frontendconfig/OWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
file: ../../../L7_OWNERS

pkg/apis/providerconfig/OWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
file: ../../../L4_OWNERS

pkg/apis/serviceattachment/OWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
file: ../../../L4_OWNERS

0 commit comments

Comments
 (0)