diff --git a/README.md b/README.md index 930906ce..7a9e0a25 100644 --- a/README.md +++ b/README.md @@ -165,3 +165,20 @@ You'll need to set the env var `JIRA_TOKEN` to your personal API token 1. Move any configuration for renamed components 2. Delete the obsolete `pkg/components/` directory 3. Remove references to removed components from `pkg/registry`. + +# Component Readiness Variant Mapping + +Variant mapping maps a particular job variant to a Jira component. This helps us map +a column on Component Readiness dashboard to its proper owners. Variant mapping is not +enabled by default. One can use ```--map-variant=true``` (or simply ```--map-variant```) to enable it. + +## Add Variant Mapping to components + +To add variant mapping to one particular component, all you need to do is to initialize +Variants slice in your component definition. For example, the following was added to +pkg/components/cloudcompute/vsphereprovider/component.go to map Platform:vsphere to +component "Cloud Compute / vSphere Provider" + +``` + Variants: []string{"Platform:vsphere"}, +``` diff --git a/data/openshift-gce-devel/ci_analysis_qe/variant_mapping.json b/data/openshift-gce-devel/ci_analysis_qe/variant_mapping.json new file mode 100644 index 00000000..d1845c48 --- /dev/null +++ b/data/openshift-gce-devel/ci_analysis_qe/variant_mapping.json @@ -0,0 +1,20 @@ +[ + { + "APIVersion": "v1", + "Kind": "VariantOwnership", + "Product": "OpenShift", + "JiraProject": "OCPBUGS", + "JiraComponent": "Cloud Compute / vSphere Provider", + "VariantName": "Platform", + "VariantValue": "vsphere" + }, + { + "APIVersion": "v1", + "Kind": "VariantOwnership", + "Product": "OpenShift", + "JiraProject": "OCPBUGS", + "JiraComponent": "Bare Metal Hardware Provisioning", + "VariantName": "Platform", + "VariantValue": "metal" + } +] diff --git a/data/openshift-gce-devel/ci_analysis_us/variant_mapping.json b/data/openshift-gce-devel/ci_analysis_us/variant_mapping.json index 0ae499e1..05870ac3 100644 --- a/data/openshift-gce-devel/ci_analysis_us/variant_mapping.json +++ b/data/openshift-gce-devel/ci_analysis_us/variant_mapping.json @@ -7,5 +7,14 @@ "JiraComponent": "Bare Metal Hardware Provisioning", "VariantName": "Platform", "VariantValue": "metal" + }, + { + "APIVersion": "v1", + "Kind": "VariantOwnership", + "Product": "OpenShift", + "JiraProject": "OCPBUGS", + "JiraComponent": "Cloud Compute / vSphere Provider", + "VariantName": "Platform", + "VariantValue": "vsphere" } ] diff --git a/hack/cronjob-update-mapping.sh b/hack/cronjob-update-mapping.sh index fb65564b..806ca29d 100755 --- a/hack/cronjob-update-mapping.sh +++ b/hack/cronjob-update-mapping.sh @@ -16,11 +16,11 @@ git checkout -b update # Generate and push mapping ## OCP Engineering Mappings -ci-test-mapping map --mode=bigquery --push-to-bigquery +ci-test-mapping map --mode=bigquery --push-to-bigquery --map-variant ## QE Mappings ci-test-mapping map --mode=bigquery --push-to-bigquery \ --bigquery-dataset ci_analysis_qe --bigquery-project openshift-gce-devel \ - --table-junit junit --table-mapping component_mapping --config "" + --table-junit junit --table-mapping component_mapping --config "" --map-variant if git diff --quiet then diff --git a/pkg/components/bpfman/capabilities.go b/pkg/components/bpfman/capabilities.go new file mode 100644 index 00000000..0474bd32 --- /dev/null +++ b/pkg/components/bpfman/capabilities.go @@ -0,0 +1,12 @@ +package bpfman + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/bpfman/component.go b/pkg/components/bpfman/component.go new file mode 100644 index 00000000..7bee3bbf --- /dev/null +++ b/pkg/components/bpfman/component.go @@ -0,0 +1,54 @@ +package bpfman + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var BpfmanComponent = Component{ + Component: &config.Component{ + Name: "bpfman", + Operators: []string{}, + DefaultJiraComponent: "bpfman", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/cloudcompute/vsphereprovider/capabilities.go b/pkg/components/cloudcompute/vsphereprovider/capabilities.go new file mode 100644 index 00000000..4343c6a1 --- /dev/null +++ b/pkg/components/cloudcompute/vsphereprovider/capabilities.go @@ -0,0 +1,12 @@ +package cloudcomputevsphereprovider + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/cloudcompute/vsphereprovider/component.go b/pkg/components/cloudcompute/vsphereprovider/component.go new file mode 100644 index 00000000..dc8fb3c7 --- /dev/null +++ b/pkg/components/cloudcompute/vsphereprovider/component.go @@ -0,0 +1,55 @@ +package cloudcomputevsphereprovider + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var VSphereProviderComponent = Component{ + Component: &config.Component{ + Name: "Cloud Compute / vSphere Provider", + Operators: []string{}, + DefaultJiraComponent: "Cloud Compute / vSphere Provider", + Variants: []string{"Platform:vsphere"}, + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/hypershift/aro/capabilities.go b/pkg/components/hypershift/aro/capabilities.go new file mode 100644 index 00000000..20f9ee95 --- /dev/null +++ b/pkg/components/hypershift/aro/capabilities.go @@ -0,0 +1,12 @@ +package hypershiftaro + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/hypershift/aro/component.go b/pkg/components/hypershift/aro/component.go new file mode 100644 index 00000000..9e01f1c3 --- /dev/null +++ b/pkg/components/hypershift/aro/component.go @@ -0,0 +1,54 @@ +package hypershiftaro + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var AROComponent = Component{ + Component: &config.Component{ + Name: "HyperShift / ARO", + Operators: []string{}, + DefaultJiraComponent: "HyperShift / ARO", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/hypershift/openstack/capabilities.go b/pkg/components/hypershift/openstack/capabilities.go new file mode 100644 index 00000000..3eb47b1b --- /dev/null +++ b/pkg/components/hypershift/openstack/capabilities.go @@ -0,0 +1,12 @@ +package hypershiftopenstack + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/hypershift/openstack/component.go b/pkg/components/hypershift/openstack/component.go new file mode 100644 index 00000000..e3dd445f --- /dev/null +++ b/pkg/components/hypershift/openstack/component.go @@ -0,0 +1,54 @@ +package hypershiftopenstack + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var OpenStackComponent = Component{ + Component: &config.Component{ + Name: "HyperShift / OpenStack", + Operators: []string{}, + DefaultJiraComponent: "HyperShift / OpenStack", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/hypershift/rosa/capabilities.go b/pkg/components/hypershift/rosa/capabilities.go new file mode 100644 index 00000000..ff59a471 --- /dev/null +++ b/pkg/components/hypershift/rosa/capabilities.go @@ -0,0 +1,12 @@ +package hypershiftrosa + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/hypershift/rosa/component.go b/pkg/components/hypershift/rosa/component.go new file mode 100644 index 00000000..b6bca5bb --- /dev/null +++ b/pkg/components/hypershift/rosa/component.go @@ -0,0 +1,54 @@ +package hypershiftrosa + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var ROSAComponent = Component{ + Component: &config.Component{ + Name: "HyperShift / ROSA", + Operators: []string{}, + DefaultJiraComponent: "HyperShift / ROSA", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/insightsruntimeextractor/capabilities.go b/pkg/components/insightsruntimeextractor/capabilities.go new file mode 100644 index 00000000..f1bde34f --- /dev/null +++ b/pkg/components/insightsruntimeextractor/capabilities.go @@ -0,0 +1,12 @@ +package insightsruntimeextractor + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/insightsruntimeextractor/component.go b/pkg/components/insightsruntimeextractor/component.go new file mode 100644 index 00000000..c9e6f3b2 --- /dev/null +++ b/pkg/components/insightsruntimeextractor/component.go @@ -0,0 +1,54 @@ +package insightsruntimeextractor + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var InsightsRuntimeExtractorComponent = Component{ + Component: &config.Component{ + Name: "insights-runtime-extractor", + Operators: []string{}, + DefaultJiraComponent: "insights-runtime-extractor", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/installer/vsphere/capabilities.go b/pkg/components/installer/vsphere/capabilities.go new file mode 100644 index 00000000..4ab26a12 --- /dev/null +++ b/pkg/components/installer/vsphere/capabilities.go @@ -0,0 +1,12 @@ +package installervsphere + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/installer/vsphere/component.go b/pkg/components/installer/vsphere/component.go new file mode 100644 index 00000000..f0a7285c --- /dev/null +++ b/pkg/components/installer/vsphere/component.go @@ -0,0 +1,54 @@ +package installervsphere + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var VSphereComponent = Component{ + Component: &config.Component{ + Name: "Installer / vSphere", + Operators: []string{}, + DefaultJiraComponent: "Installer / vSphere", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/ksanstorage/capabilities.go b/pkg/components/ksanstorage/capabilities.go new file mode 100644 index 00000000..85150b5c --- /dev/null +++ b/pkg/components/ksanstorage/capabilities.go @@ -0,0 +1,12 @@ +package ksanstorage + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/ksanstorage/component.go b/pkg/components/ksanstorage/component.go new file mode 100644 index 00000000..5302037a --- /dev/null +++ b/pkg/components/ksanstorage/component.go @@ -0,0 +1,54 @@ +package ksanstorage + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var KSANStorageComponent = Component{ + Component: &config.Component{ + Name: "kSAN Storage", + Operators: []string{}, + DefaultJiraComponent: "kSAN Storage", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/lightspeed/capabilities.go b/pkg/components/lightspeed/capabilities.go new file mode 100644 index 00000000..2af97aba --- /dev/null +++ b/pkg/components/lightspeed/capabilities.go @@ -0,0 +1,12 @@ +package lightspeed + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/lightspeed/component.go b/pkg/components/lightspeed/component.go new file mode 100644 index 00000000..aa71537c --- /dev/null +++ b/pkg/components/lightspeed/component.go @@ -0,0 +1,54 @@ +package lightspeed + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var LightspeedComponent = Component{ + Component: &config.Component{ + Name: "Lightspeed", + Operators: []string{}, + DefaultJiraComponent: "Lightspeed", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/networking/frrk8s/capabilities.go b/pkg/components/networking/frrk8s/capabilities.go new file mode 100644 index 00000000..a890ca64 --- /dev/null +++ b/pkg/components/networking/frrk8s/capabilities.go @@ -0,0 +1,12 @@ +package networkingfrrk8s + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/networking/frrk8s/component.go b/pkg/components/networking/frrk8s/component.go new file mode 100644 index 00000000..69f89ae0 --- /dev/null +++ b/pkg/components/networking/frrk8s/component.go @@ -0,0 +1,54 @@ +package networkingfrrk8s + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var FRRK8sComponent = Component{ + Component: &config.Component{ + Name: "Networking / FRR-K8s", + Operators: []string{}, + DefaultJiraComponent: "Networking / FRR-K8s", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/oc/nodeimage/capabilities.go b/pkg/components/oc/nodeimage/capabilities.go new file mode 100644 index 00000000..c0411b5f --- /dev/null +++ b/pkg/components/oc/nodeimage/capabilities.go @@ -0,0 +1,12 @@ +package ocnodeimage + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/oc/nodeimage/component.go b/pkg/components/oc/nodeimage/component.go new file mode 100644 index 00000000..29ceb3e7 --- /dev/null +++ b/pkg/components/oc/nodeimage/component.go @@ -0,0 +1,54 @@ +package ocnodeimage + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var NodeImageComponent = Component{ + Component: &config.Component{ + Name: "oc / node-image", + Operators: []string{}, + DefaultJiraComponent: "oc / node-image", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/ocmirror/capabilities.go b/pkg/components/ocmirror/capabilities.go new file mode 100644 index 00000000..acc0b13a --- /dev/null +++ b/pkg/components/ocmirror/capabilities.go @@ -0,0 +1,12 @@ +package ocmirror + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/ocmirror/component.go b/pkg/components/ocmirror/component.go new file mode 100644 index 00000000..c5371df4 --- /dev/null +++ b/pkg/components/ocmirror/component.go @@ -0,0 +1,54 @@ +package ocmirror + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var OcMirrorComponent = Component{ + Component: &config.Component{ + Name: "oc-mirror", + Operators: []string{}, + DefaultJiraComponent: "oc-mirror", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/components/twonode/arbiter/capabilities.go b/pkg/components/twonode/arbiter/capabilities.go new file mode 100644 index 00000000..6cc4659b --- /dev/null +++ b/pkg/components/twonode/arbiter/capabilities.go @@ -0,0 +1,12 @@ +package twonodearbiter + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/util" +) + +func identifyCapabilities(test *v1.TestInfo) []string { + capabilities := util.DefaultCapabilities(test) + + return capabilities +} diff --git a/pkg/components/twonode/arbiter/component.go b/pkg/components/twonode/arbiter/component.go new file mode 100644 index 00000000..9bed86b6 --- /dev/null +++ b/pkg/components/twonode/arbiter/component.go @@ -0,0 +1,54 @@ +package twonodearbiter + +import ( + v1 "github.com/openshift-eng/ci-test-mapping/pkg/api/types/v1" + "github.com/openshift-eng/ci-test-mapping/pkg/config" +) + +type Component struct { + *config.Component +} + +var ArbiterComponent = Component{ + Component: &config.Component{ + Name: "TwoNode / Arbiter", + Operators: []string{}, + DefaultJiraComponent: "TwoNode / Arbiter", + Matchers: []config.ComponentMatcher{}, + }, +} + +func (c *Component) IdentifyTest(test *v1.TestInfo) (*v1.TestOwnership, error) { + if matcher := c.FindMatch(test); matcher != nil { + jira := matcher.JiraComponent + if jira == "" { + jira = c.DefaultJiraComponent + } + return &v1.TestOwnership{ + Name: test.Name, + Component: c.Name, + JIRAComponent: jira, + Priority: matcher.Priority, + Capabilities: append(matcher.Capabilities, identifyCapabilities(test)...), + }, nil + } + + return nil, nil +} + +func (c *Component) StableID(test *v1.TestInfo) string { + // Look up the stable name for our test in our renamed tests map. + if stableName, ok := c.TestRenames[test.Name]; ok { + return stableName + } + return test.Name +} + +func (c *Component) JiraComponents() (components []string) { + components = []string{c.DefaultJiraComponent} + for _, m := range c.Matchers { + components = append(components, m.JiraComponent) + } + + return components +} diff --git a/pkg/registry/registry.go b/pkg/registry/registry.go index 6f90abae..4f16af5e 100644 --- a/pkg/registry/registry.go +++ b/pkg/registry/registry.go @@ -11,6 +11,7 @@ import ( baremetalhardwareprovisioningironic "github.com/openshift-eng/ci-test-mapping/pkg/components/baremetalhardwareprovisioning/ironic" baremetalhardwareprovisioningosimageprovider "github.com/openshift-eng/ci-test-mapping/pkg/components/baremetalhardwareprovisioning/osimageprovider" "github.com/openshift-eng/ci-test-mapping/pkg/components/bmerevents" + "github.com/openshift-eng/ci-test-mapping/pkg/components/bpfman" "github.com/openshift-eng/ci-test-mapping/pkg/components/build" "github.com/openshift-eng/ci-test-mapping/pkg/components/certmanager" "github.com/openshift-eng/ci-test-mapping/pkg/components/climanager" @@ -30,6 +31,7 @@ import ( cloudcomputeopenstackprovider "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudcompute/openstackprovider" cloudcomputeovirtprovider "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudcompute/ovirtprovider" cloudcomputeunknown "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudcompute/unknown" + cloudcomputevsphereprovider "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudcompute/vsphereprovider" "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudcredentialoperator" cloudnativeeventscloudeventproxy "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudnativeevents/cloudeventproxy" cloudnativeeventscloudnativeevents "github.com/openshift-eng/ci-test-mapping/pkg/components/cloudnativeevents/cloudnativeevents" @@ -57,11 +59,15 @@ import ( "github.com/openshift-eng/ci-test-mapping/pkg/components/hive" "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift" hypershiftagent "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift/agent" + hypershiftaro "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift/aro" hypershiftocpvirtualization "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift/ocpvirtualization" + hypershiftopenstack "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift/openstack" + hypershiftrosa "github.com/openshift-eng/ci-test-mapping/pkg/components/hypershift/rosa" "github.com/openshift-eng/ci-test-mapping/pkg/components/ibmrokstoolkit" "github.com/openshift-eng/ci-test-mapping/pkg/components/imageregistry" "github.com/openshift-eng/ci-test-mapping/pkg/components/imagestreams" "github.com/openshift-eng/ci-test-mapping/pkg/components/insightsoperator" + "github.com/openshift-eng/ci-test-mapping/pkg/components/insightsruntimeextractor" installeragentbasedinstallation "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/agentbasedinstallation" installeralibabacloud "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/alibabacloud" installerassistedinstaller "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/assistedinstaller" @@ -74,14 +80,17 @@ import ( installeropenshiftonrhv "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/openshiftonrhv" installerpowervs "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/powervs" installersinglenodeopenshift "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/singlenodeopenshift" + installervsphere "github.com/openshift-eng/ci-test-mapping/pkg/components/installer/vsphere" "github.com/openshift-eng/ci-test-mapping/pkg/components/isvoperators" "github.com/openshift-eng/ci-test-mapping/pkg/components/jenkins" "github.com/openshift-eng/ci-test-mapping/pkg/components/kmm" + "github.com/openshift-eng/ci-test-mapping/pkg/components/ksanstorage" "github.com/openshift-eng/ci-test-mapping/pkg/components/kubeapiserver" "github.com/openshift-eng/ci-test-mapping/pkg/components/kubecontrollermanager" "github.com/openshift-eng/ci-test-mapping/pkg/components/kubescheduler" "github.com/openshift-eng/ci-test-mapping/pkg/components/kubestorageversionmigrator" "github.com/openshift-eng/ci-test-mapping/pkg/components/lcaoperator" + "github.com/openshift-eng/ci-test-mapping/pkg/components/lightspeed" "github.com/openshift-eng/ci-test-mapping/pkg/components/logging" "github.com/openshift-eng/ci-test-mapping/pkg/components/logicalvolumemanagerstorage" "github.com/openshift-eng/ci-test-mapping/pkg/components/lowlatencyvalidationtooling" @@ -106,6 +115,7 @@ import ( networkingclusternetworkoperator "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/clusternetworkoperator" networkingdns "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/dns" networkingdpu "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/dpu" + networkingfrrk8s "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/frrk8s" networkingingressnodefirewall "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/ingressnodefirewall" networkingkubernetesnmstate "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/kubernetesnmstate" networkingkubernetesnmstateoperator "github.com/openshift-eng/ci-test-mapping/pkg/components/networking/kubernetesnmstateoperator" @@ -146,9 +156,11 @@ import ( "github.com/openshift-eng/ci-test-mapping/pkg/components/observabilityui" "github.com/openshift-eng/ci-test-mapping/pkg/components/oc" occlustercompare "github.com/openshift-eng/ci-test-mapping/pkg/components/oc/clustercompare" + ocnodeimage "github.com/openshift-eng/ci-test-mapping/pkg/components/oc/nodeimage" ococmirror "github.com/openshift-eng/ci-test-mapping/pkg/components/oc/ocmirror" ocupdate "github.com/openshift-eng/ci-test-mapping/pkg/components/oc/update" "github.com/openshift-eng/ci-test-mapping/pkg/components/occompliance" + "github.com/openshift-eng/ci-test-mapping/pkg/components/ocmirror" "github.com/openshift-eng/ci-test-mapping/pkg/components/olm" olmoperatorhub "github.com/openshift-eng/ci-test-mapping/pkg/components/olm/operatorhub" olmregistry "github.com/openshift-eng/ci-test-mapping/pkg/components/olm/registry" @@ -197,6 +209,7 @@ import ( "github.com/openshift-eng/ci-test-mapping/pkg/components/testframework" testframeworkopenstack "github.com/openshift-eng/ci-test-mapping/pkg/components/testframework/openstack" "github.com/openshift-eng/ci-test-mapping/pkg/components/testinfrastructure" + twonodearbiter "github.com/openshift-eng/ci-test-mapping/pkg/components/twonode/arbiter" "github.com/openshift-eng/ci-test-mapping/pkg/components/unknown" "github.com/openshift-eng/ci-test-mapping/pkg/components/windowscontainers" ) @@ -405,6 +418,19 @@ func NewComponentRegistry() *Registry { r.Register("sandboxed-containers", &sandboxedcontainers.SandboxedContainersComponent) r.Register("secondary-scheduler-operator", &secondaryscheduleroperator.SecondarySchedulerOperatorComponent) r.Register("service-ca", &serviceca.ServiceCaComponent) + r.Register("bpfman", &bpfman.BpfmanComponent) + r.Register("Cloud Compute / vSphere Provider", &cloudcomputevsphereprovider.VSphereProviderComponent) + r.Register("HyperShift / ARO", &hypershiftaro.AROComponent) + r.Register("HyperShift / OpenStack", &hypershiftopenstack.OpenStackComponent) + r.Register("HyperShift / ROSA", &hypershiftrosa.ROSAComponent) + r.Register("insights-runtime-extractor", &insightsruntimeextractor.InsightsRuntimeExtractorComponent) + r.Register("Installer / vSphere", &installervsphere.VSphereComponent) + r.Register("kSAN Storage", &ksanstorage.KSANStorageComponent) + r.Register("Lightspeed", &lightspeed.LightspeedComponent) + r.Register("Networking / FRR-K8s", &networkingfrrk8s.FRRK8sComponent) + r.Register("oc / node-image", &ocnodeimage.NodeImageComponent) + r.Register("oc-mirror", &ocmirror.OcMirrorComponent) + r.Register("TwoNode / Arbiter", &twonodearbiter.ArbiterComponent) // New components go here return &r