Uploaded image for project: 'Red Hat OpenShift Control Planes'
  1. Red Hat OpenShift Control Planes
  2. CNTRLPLANE-1621

Add Service CA Operator extended QE tests based on Ginkgo

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • service-ca
    • None
    • Improvement
    • False
    • Hide

      None

      Show
      None
    • False
    • None

      • What does it do

      This changes are made to enable the portability of the extended QE test suites(Based on Ginkgo) and the creation of test suites(Based on Ginkgo) to our repo to be consumed by upstream CI for OCL component readiness.

      During the implementation of the code, we used a library to solve some external dependencies. For these dependencies, we have three approaches:

      1. Using github.com/openshift/origin/test/extended/util in the project directly.

      2. The ported code is the bare minimum required to run the selected tests (choosen by this spike). The code has been also updated to match the Golang capabilities our version has, to align it with our linting rules and to try to minimize the amount of external dependencies.

      3. Create a separate module for the code of Method two, and then use it in the project::go get github.com/<yourname>/origin-util@latest

      Here We adopted the third one,because method one:

      • Dependency Bloat & Conflicts: This is the biggest problem. openshift/origin is a massive repository with a huge number of its own dependencies. Adding it to your go.mod can:
      • Pull in hundreds of transitive dependencies, making your module much larger and slower to manage.
      • Create version conflicts. origin might require a version of a k8s.io library that is incompatible with the one service-ca-operator needs, leading to "dependency hell."

      method tow:
      There is a lack of reusability, decentralized, error-prone, high long-term cost and each component needs to maintain a copy.

      That why we choice method three. However, there is a compromise here. Since I don't have the authority to establish an official library, I can only use my personal library to verify feasibility

      • How to verify it

      Spin up a cluster
      Ensure all tests are listed, run the command ./service-ca-operator-tests-ext list
      Ensure all tests are passed. run the command ./service-ca-operator-tests-ext run-suite "openshift/service-ca-operator/conformance/parallel"

      • Description for the changelog
        feat: Add e2e tests for Service CA Operator
      • Add end-to-end tests to verify the functionality of the Service CA Operator.
      • The tests check for the health of the operator and its managed resources.
      • The tests also verify the CA bundle injection feature.
      • Update the testing framework to use the origin-util library.
      • Update vendor dependencies to support the new testing framework.

              Unassigned Unassigned
              wk2019 Ke Wang
              None
              None
              None
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: