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

Implement the keycloak package

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • None
    • Operator
    • None
    • 8
    • False
    • Hide

      None

      Show
      None
    • False
    • GITOPS Sprint 3245, GITOPS Sprint 3246, GitOps Crimson - Sprint 3259

      Story (Required)

      The purpose of this story is to implement the new keycloak package. We need it because it will bring the keycloak code into alignment with the described operator redesign. This story will represent the end-to-end effort involved in writing thekeycloak package, including unit tests and kuttl tests (potentially)

      Background (Required)

      The idea behind this story is to create a self-contained sub-controller package for keycloak, 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 keycloak resources into this package. This firmly establishes a clear responsibility on this package, and makes it the one that issues all commands on keycloak resources. This establishes clear input/output expectations from this package and allows for comprehensive testing. 
      The keycloak package will be nested under the sso package

      Out of scope

      n/a

      Approach (Required)

      • set-up keycloak sub-controller with apt lso-controller log context
      • consolidate helper functions related to controller resources into appropriate util.go/resource file
      • Make sure k8s/openshift implementations are properly abstracted away
      • 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
      • 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/appcontroller 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)

      • keycloak package is implmented end-to-end
      • unit tests added for each function
      • kuttl tests added for keycloak 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

              aveerama@redhat.com Abhishek Veeramalla (Inactive)
              jrao@redhat.com Jaideep Rao
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: