Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-3123

Operator attempts to render both GA and Tech Preview API Extensions


    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • None
    • 4.12
    • config-operator
    • Important
    • None
    • Approved
    • False
    • Hide



      Description of problem:

      Support for tech preview API extensions was introduced in https://github.com/openshift/installer/pull/6336 and https://github.com/openshift/api/pull/1274 .  In the case of https://github.com/openshift/api/pull/1278 , config/v1/0000_10_config-operator_01_infrastructure-TechPreviewNoUpgrade.crd.yaml was introduced which seems to result in both 0000_10_config-operator_01_infrastructure-TechPreviewNoUpgrade.crd.yaml and 0000_10_config-operator_01_infrastructure-Default.crd.yaml being rendered by the bootstrap.  As a result, both CRDs are created during bootstrap.  However, one of them(in this case the tech preview CRD) fails to be created.  
      We may need to modify the render command to be aware of feature gates when rendering manifests during bootstrap.  Also, I'm open hearing other views on how this might work. 

      Version-Release number of selected component (if applicable):

      https://github.com/openshift/cluster-config-operator/pull/269 built and running on 4.12-ec5 

      How reproducible:


      Steps to Reproduce:

      1. bump the version of OpenShift API to one including a tech preview version of the infrastructure CRD
      2. install openshift with the infrastructure manifest modified to incorporate tech preview fields
      3. those fields will not be populated upon installation
      Also, checking the logs from bootkube will show both being installed, but one of them fails.

      Actual results:


      Expected results:


      Additional info:

      Excerpts from bootkube log
      Nov 02 20:40:01 localhost.localdomain bootkube.sh[4216]: Writing asset: /assets/config-bootstrap/manifests/0000_10_config-operator_01_infrastructure-TechPreviewNoUpgrade.crd.yaml
      Nov 02 20:40:01 localhost.localdomain bootkube.sh[4216]: Writing asset: /assets/config-bootstrap/manifests/0000_10_config-operator_01_infrastructure-Default.crd.yaml
      Nov 02 20:41:23 localhost.localdomain bootkube.sh[5710]: Created "0000_10_config-operator_01_infrastructure-Default.crd.yaml" customresourcedefinitions.v1.apiextensions.k8s.io/infrastructures.config.openshift.io -n
      Nov 02 20:41:23 localhost.localdomain bootkube.sh[5710]: Skipped "0000_10_config-operator_01_infrastructure-TechPreviewNoUpgrade.crd.yaml" customresourcedefinitions.v1.apiextensions.k8s.io/infrastructures.config.openshift.io -n  as it already exists

            lusanche@redhat.com Luis Sanchez
            rhn-support-rvanderp Richard Vanderpool
            Rahul Gangwar Rahul Gangwar
            0 Vote for this issue
            10 Start watching this issue