...

Source file src/github.com/openshift/api/config/v1/feature_gates.go

Documentation: github.com/openshift/api/config/v1

     1  package v1
     2  
     3  // FeatureGateDescription is a golang-only interface used to contains details for a feature gate.
     4  type FeatureGateDescription struct {
     5  	// FeatureGateAttributes is the information that appears in the API
     6  	FeatureGateAttributes FeatureGateAttributes
     7  
     8  	// OwningJiraComponent is the jira component that owns most of the impl and first assignment for the bug.
     9  	// This is the team that owns the feature long term.
    10  	OwningJiraComponent string
    11  	// ResponsiblePerson is the person who is on the hook for first contact.  This is often, but not always, a team lead.
    12  	// It is someone who can make the promise on the behalf of the team.
    13  	ResponsiblePerson string
    14  	// OwningProduct is the product that owns the lifecycle of the gate.
    15  	OwningProduct OwningProduct
    16  }
    17  
    18  type OwningProduct string
    19  
    20  var (
    21  	ocpSpecific = OwningProduct("OCP")
    22  	kubernetes  = OwningProduct("Kubernetes")
    23  )
    24  
    25  var (
    26  	FeatureGateGatewayAPI = FeatureGateName("GatewayAPI")
    27  	gateGatewayAPI        = FeatureGateDescription{
    28  		FeatureGateAttributes: FeatureGateAttributes{
    29  			Name: FeatureGateGatewayAPI,
    30  		},
    31  		OwningJiraComponent: "Routing",
    32  		ResponsiblePerson:   "miciah",
    33  		OwningProduct:       ocpSpecific,
    34  	}
    35  
    36  	FeatureGateOpenShiftPodSecurityAdmission = FeatureGateName("OpenShiftPodSecurityAdmission")
    37  	openShiftPodSecurityAdmission            = FeatureGateDescription{
    38  		FeatureGateAttributes: FeatureGateAttributes{
    39  			Name: FeatureGateOpenShiftPodSecurityAdmission,
    40  		},
    41  		OwningJiraComponent: "auth",
    42  		ResponsiblePerson:   "stlaz",
    43  		OwningProduct:       ocpSpecific,
    44  	}
    45  
    46  	FeatureGateRetroactiveDefaultStorageClass = FeatureGateName("RetroactiveDefaultStorageClass")
    47  	retroactiveDefaultStorageClass            = FeatureGateDescription{
    48  		FeatureGateAttributes: FeatureGateAttributes{
    49  			Name: FeatureGateRetroactiveDefaultStorageClass,
    50  		},
    51  		OwningJiraComponent: "storage",
    52  		ResponsiblePerson:   "RomanBednar",
    53  		OwningProduct:       kubernetes,
    54  	}
    55  
    56  	FeatureGateExternalCloudProvider = FeatureGateName("ExternalCloudProvider")
    57  	externalCloudProvider            = FeatureGateDescription{
    58  		FeatureGateAttributes: FeatureGateAttributes{
    59  			Name: FeatureGateExternalCloudProvider,
    60  		},
    61  		OwningJiraComponent: "cloud-provider",
    62  		ResponsiblePerson:   "jspeed",
    63  		OwningProduct:       ocpSpecific,
    64  	}
    65  
    66  	FeatureGateExternalCloudProviderAzure = FeatureGateName("ExternalCloudProviderAzure")
    67  	externalCloudProviderAzure            = FeatureGateDescription{
    68  		FeatureGateAttributes: FeatureGateAttributes{
    69  			Name: FeatureGateExternalCloudProviderAzure,
    70  		},
    71  		OwningJiraComponent: "cloud-provider",
    72  		ResponsiblePerson:   "jspeed",
    73  		OwningProduct:       ocpSpecific,
    74  	}
    75  
    76  	FeatureGateExternalCloudProviderGCP = FeatureGateName("ExternalCloudProviderGCP")
    77  	externalCloudProviderGCP            = FeatureGateDescription{
    78  		FeatureGateAttributes: FeatureGateAttributes{
    79  			Name: FeatureGateExternalCloudProviderGCP,
    80  		},
    81  		OwningJiraComponent: "cloud-provider",
    82  		ResponsiblePerson:   "jspeed",
    83  		OwningProduct:       ocpSpecific,
    84  	}
    85  
    86  	FeatureGateCSIDriverSharedResource = FeatureGateName("CSIDriverSharedResource")
    87  	csiDriverSharedResource            = FeatureGateDescription{
    88  		FeatureGateAttributes: FeatureGateAttributes{
    89  			Name: FeatureGateCSIDriverSharedResource,
    90  		},
    91  		OwningJiraComponent: "builds",
    92  		ResponsiblePerson:   "adkaplan",
    93  		OwningProduct:       ocpSpecific,
    94  	}
    95  
    96  	FeatureGateBuildCSIVolumes = FeatureGateName("BuildCSIVolumes")
    97  	buildCSIVolumes            = FeatureGateDescription{
    98  		FeatureGateAttributes: FeatureGateAttributes{
    99  			Name: FeatureGateBuildCSIVolumes,
   100  		},
   101  		OwningJiraComponent: "builds",
   102  		ResponsiblePerson:   "adkaplan",
   103  		OwningProduct:       ocpSpecific,
   104  	}
   105  
   106  	FeatureGateNodeSwap = FeatureGateName("NodeSwap")
   107  	nodeSwap            = FeatureGateDescription{
   108  		FeatureGateAttributes: FeatureGateAttributes{
   109  			Name: FeatureGateNodeSwap,
   110  		},
   111  		OwningJiraComponent: "node",
   112  		ResponsiblePerson:   "ehashman",
   113  		OwningProduct:       kubernetes,
   114  	}
   115  
   116  	FeatureGateMachineAPIProviderOpenStack = FeatureGateName("MachineAPIProviderOpenStack")
   117  	machineAPIProviderOpenStack            = FeatureGateDescription{
   118  		FeatureGateAttributes: FeatureGateAttributes{
   119  			Name: FeatureGateMachineAPIProviderOpenStack,
   120  		},
   121  		OwningJiraComponent: "openstack",
   122  		ResponsiblePerson:   "egarcia",
   123  		OwningProduct:       ocpSpecific,
   124  	}
   125  
   126  	FeatureGateInsightsConfigAPI = FeatureGateName("InsightsConfigAPI")
   127  	insightsConfigAPI            = FeatureGateDescription{
   128  		FeatureGateAttributes: FeatureGateAttributes{
   129  			Name: FeatureGateInsightsConfigAPI,
   130  		},
   131  		OwningJiraComponent: "insights",
   132  		ResponsiblePerson:   "tremes",
   133  		OwningProduct:       ocpSpecific,
   134  	}
   135  
   136  	FeatureGateMatchLabelKeysInPodTopologySpread = FeatureGateName("MatchLabelKeysInPodTopologySpread")
   137  	matchLabelKeysInPodTopologySpread            = FeatureGateDescription{
   138  		FeatureGateAttributes: FeatureGateAttributes{
   139  			Name: FeatureGateMatchLabelKeysInPodTopologySpread,
   140  		},
   141  		OwningJiraComponent: "scheduling",
   142  		ResponsiblePerson:   "ingvagabund",
   143  		OwningProduct:       kubernetes,
   144  	}
   145  
   146  	FeatureGatePDBUnhealthyPodEvictionPolicy = FeatureGateName("PDBUnhealthyPodEvictionPolicy")
   147  	pdbUnhealthyPodEvictionPolicy            = FeatureGateDescription{
   148  		FeatureGateAttributes: FeatureGateAttributes{
   149  			Name: FeatureGatePDBUnhealthyPodEvictionPolicy,
   150  		},
   151  		OwningJiraComponent: "apps",
   152  		ResponsiblePerson:   "atiratree",
   153  		OwningProduct:       kubernetes,
   154  	}
   155  
   156  	FeatureGateDynamicResourceAllocation = FeatureGateName("DynamicResourceAllocation")
   157  	dynamicResourceAllocation            = FeatureGateDescription{
   158  		FeatureGateAttributes: FeatureGateAttributes{
   159  			Name: FeatureGateDynamicResourceAllocation,
   160  		},
   161  		OwningJiraComponent: "scheduling",
   162  		ResponsiblePerson:   "jchaloup",
   163  		OwningProduct:       kubernetes,
   164  	}
   165  
   166  	FeatureGateAdmissionWebhookMatchConditions = FeatureGateName("AdmissionWebhookMatchConditions")
   167  	admissionWebhookMatchConditions            = FeatureGateDescription{
   168  		FeatureGateAttributes: FeatureGateAttributes{
   169  			Name: FeatureGateAdmissionWebhookMatchConditions,
   170  		},
   171  		OwningJiraComponent: "kube-apiserver",
   172  		ResponsiblePerson:   "benluddy",
   173  		OwningProduct:       kubernetes,
   174  	}
   175  
   176  	FeatureGateAzureWorkloadIdentity = FeatureGateName("AzureWorkloadIdentity")
   177  	azureWorkloadIdentity            = FeatureGateDescription{
   178  		FeatureGateAttributes: FeatureGateAttributes{
   179  			Name: FeatureGateAzureWorkloadIdentity,
   180  		},
   181  		OwningJiraComponent: "cloud-credential-operator",
   182  		ResponsiblePerson:   "abutcher",
   183  		OwningProduct:       ocpSpecific,
   184  	}
   185  )
   186  

View as plain text