Uploaded image for project: 'OpenShift GitOps'
  1. OpenShift GitOps
  2. GITOPS-3122

Set up new operator controllers for development

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Major Major
    • 1.10.0
    • None
    • Operator
    • None
    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • GITOPS Sprint 243

      Story (Required)

      The goal of this story is to prepare the operator for concurrent controller development by setting the foundations for it and allowing future stories to build upon it. The task is to put a skeleton structure in place, for the outlined component controllers to be written in.

      Background (Required)

      The operator will have 9 new controllers being implemented, as outlined in the design document. These controllers can be developed concurrently and are independent of each other. However, we need to set up the basic package structure and reconcilers for these controllers before they can be developed. We also need to set up a place to add controller specific kuttl tests in a way that it is easy for the contributor and can be triggered by the CI. Finally, we also need to comment out the call to invoke existing reconciliation cycle so that individual controller implementers can focus on just their controllers, and writing tests for them, without triggering e2e tests for the rest of the code.  

      Out of scope

      Actual implementation of any of the controllers themselves.

      Approach (Required)

      • Comment out existing call to reconcileResources()
      • Set RFC3339TimeEncoder human readable timestamp format in zap logger instance
      • Set operator log level to be configurable
      • Set up controller package structure as outlined
      • Initialize a dedicated reconciler for each new controller. Create empty reconciliation function for all of them
      • Update argocd_reconciler to store instances of all other reconcilers and implement reconcileControllers() 
      • Create logger instance for argocd_controller in new format
      • Create new directory for adding controller specific kuttl tests
      • Update hack/test.sh to ignore current test suite and only call new controller test directory

      Dependencies

      none

      Acceptance Criteria (Mandatory)

      • All listed steps are carried out
      • no existing tests are triggered by CI 

      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

              jrao@redhat.com Jaideep Rao
              jrao@redhat.com Jaideep Rao
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: