-
Story
-
Resolution: Done
-
Major
-
None
-
None
Story (Required)
The purpose of this story is to implement the new notifications-controller package. We need it because it will bring the notifications-controller code into alignment with the described operator redesign. This story will represent the end-to-end effort involved in writing the notifications-controller package, including unit tests and kuttl tests (potentially)
Background (Required)
The idea behind this story is to create a self-contained controller package for the notifications-controller, that can be developed independently of the rest of the operator codebase. This includes consolidating all constants, helper functions, reconciliation functions etc that act upon notifications-controller resources into this package. This firmly establishes a clear responsibility on this package, and makes it the one that issues all commands on notifications-controller resources. This establishes clear input/output expectations from this package and allows for comprehensive testing.
Out of scope
n/a
Approach (Required)
- set-up notifications-controller with apt log context
- consolidate helper functions related to controller resources into appropriate util.go/resource file
- create dedicated constants.go file for controller constants
- identify list of all resources this controller needs to manage
- implement reconciliation functions for all concerned controller resources
- implement overall reconciliation function for controller
- create separate function to trigger deletion of all resources (if required)
- Write unit tests for all functions
- Write controller specific kuttl tests if applicable and place under test/controller/app-controller
use https://github.com/jaideepr97/argocd-operator-rewrite/tree/main/controllers/argocd/notifications for reference
Use best practices outlined in design doc to make error handling & logging decisions
Dependencies
https://issues.redhat.com/browse/GITOPS-3117
https://issues.redhat.com/browse/GITOPS-3118
https://issues.redhat.com/browse/GITOPS-3119
https://issues.redhat.com/browse/GITOPS-3120
https://issues.redhat.com/browse/GITOPS-3121
https://issues.redhat.com/browse/GITOPS-3122
Acceptance Criteria (Mandatory)
- notifications-controller package is implmented end-to-end
- unit tests added for each function
- kuttl tests added for notifications-controller specific scenarios that don't involve other controllers
INVEST Checklist
Dependencies identified
Blockers noted and expected delivery timelines set
Design is implementable
Acceptance criteria agreed upon
Story estimated
Legend
Unknown
Verified
Unsatisfied
Done Checklist
- Code is completed, reviewed, documented and checked in
- Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
- Continuous Delivery pipeline(s) is able to proceed with new code included
- Customer facing documentation, API docs etc. are produced/updated, reviewed and published
- Acceptance criteria are met
- is blocked by
-
GITOPS-3117 Create permissions package
-
- Closed
-
-
GITOPS-3118 Create monitoring package
-
- Closed
-
-
GITOPS-3119 Create networking package
-
- Closed
-
-
GITOPS-3120 Create workloads package
-
- Closed
-
-
GITOPS-3121 Create cluster package
-
- Closed
-
-
GITOPS-3122 Set up new operator controllers for development
-
- Closed
-