autodiscover

package
v0.0.0-...-f479502 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2025 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Overview

Copyright (C) 2020-2022 Red Hat, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copyright (C) 2020-2024 Red Hat, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copyright (C) 2022-2024 Red Hat, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copyright (C) 2022-2024 Red Hat, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Copyright (C) 2020-2024 Red Hat, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Index

Constants

View Source
const (
	// NonOpenshiftClusterVersion is a fake version number for non openshift clusters (kind/minikube)
	NonOpenshiftClusterVersion = "0.0.0"
)

Variables

View Source
var SriovNetworkGVR = schema.GroupVersionResource{
	Group:    "sriovnetwork.openshift.io",
	Version:  "v1",
	Resource: "sriovnetworks",
}

SriovNetworkGVR defines the GroupVersionResource for SriovNetwork

View Source
var SriovNetworkNodePolicyGVR = schema.GroupVersionResource{
	Group:    "sriovnetwork.openshift.io",
	Version:  "v1",
	Resource: "sriovnetworknodepolicies",
}

SriovNetworkNodePolicyGVR defines the GroupVersionResource for SriovNetworkNodePolicy

Functions

func CountPodsByStatus

func CountPodsByStatus(allPods []corev1.Pod) map[string]int

func CreateLabels

func CreateLabels(labelStrings []string) (labelObjects []labelObject)

func FindCrObjectByNameByNamespace

func FindCrObjectByNameByNamespace(scalesGetter scale.ScalesGetter, ns, name string, groupResourceSchema schema.GroupResource) (*scalingv1.Scale, error)

func FindDeploymentByNameByNamespace

func FindDeploymentByNameByNamespace(appClient appv1client.AppsV1Interface, namespace, name string) (*appsv1.Deployment, error)

func FindPodsByLabels

func FindPodsByLabels(oc corev1client.CoreV1Interface, labels []labelObject, namespaces []string) (runningPods, allPods []corev1.Pod)

func FindStatefulsetByNameByNamespace

func FindStatefulsetByNameByNamespace(appClient appv1client.AppsV1Interface, namespace, name string) (*appsv1.StatefulSet, error)

func FindTestCrdNames

func FindTestCrdNames(clusterCrds []*apiextv1.CustomResourceDefinition, crdFilters []configuration.CrdFilter) (targetCrds []*apiextv1.CustomResourceDefinition)

FindTestCrdNames gets a list of CRD names based on configured groups.

Types

type DiscoveredTestData

type DiscoveredTestData struct {
	Env                          configuration.TestParameters
	PodStates                    PodStates
	Pods                         []corev1.Pod
	AllPods                      []corev1.Pod
	ProbePods                    []corev1.Pod
	CSVToPodListMap              map[types.NamespacedName][]*corev1.Pod
	OperandPods                  []*corev1.Pod
	ResourceQuotaItems           []corev1.ResourceQuota
	PodDisruptionBudgets         []policyv1.PodDisruptionBudget
	NetworkPolicies              []networkingv1.NetworkPolicy
	Crds                         []*apiextv1.CustomResourceDefinition
	Namespaces                   []string
	AllNamespaces                []string
	AbnormalEvents               []corev1.Event
	Csvs                         []*olmv1Alpha.ClusterServiceVersion
	AllCrds                      []*apiextv1.CustomResourceDefinition
	AllCsvs                      []*olmv1Alpha.ClusterServiceVersion
	AllInstallPlans              []*olmv1Alpha.InstallPlan
	AllCatalogSources            []*olmv1Alpha.CatalogSource
	AllPackageManifests          []*olmPkgv1.PackageManifest
	ClusterOperators             []configv1.ClusterOperator
	SriovNetworks                []unstructured.Unstructured
	SriovNetworkNodePolicies     []unstructured.Unstructured
	AllSriovNetworks             []unstructured.Unstructured
	AllSriovNetworkNodePolicies  []unstructured.Unstructured
	NetworkAttachmentDefinitions []nadClient.NetworkAttachmentDefinition
	Deployments                  []appsv1.Deployment
	StatefulSet                  []appsv1.StatefulSet
	PersistentVolumes            []corev1.PersistentVolume
	PersistentVolumeClaims       []corev1.PersistentVolumeClaim
	ClusterRoleBindings          []rbacv1.ClusterRoleBinding
	RoleBindings                 []rbacv1.RoleBinding // Contains all rolebindings from all namespaces
	Roles                        []rbacv1.Role        // Contains all roles from all namespaces
	Services                     []*corev1.Service
	AllServices                  []*corev1.Service
	ServiceAccounts              []*corev1.ServiceAccount
	AllServiceAccounts           []*corev1.ServiceAccount
	Hpas                         []*scalingv1.HorizontalPodAutoscaler
	Subscriptions                []olmv1Alpha.Subscription
	AllSubscriptions             []olmv1Alpha.Subscription
	HelmChartReleases            map[string][]*release.Release
	K8sVersion                   string
	OpenshiftVersion             string
	OCPStatus                    string
	Nodes                        *corev1.NodeList
	IstioServiceMeshFound        bool
	ValidProtocolNames           []string
	StorageClasses               []storagev1.StorageClass
	ServicesIgnoreList           []string
	ScaleCrUnderTest             []ScaleObject
	ExecutedBy                   string
	PartnerName                  string
	CollectorAppPassword         string
	CollectorAppEndpoint         string
	ConnectAPIKey                string
	ConnectProjectID             string
	ConnectAPIBaseURL            string
	ConnectAPIProxyURL           string
	ConnectAPIProxyPort          string
}

func DoAutoDiscover

func DoAutoDiscover(config *configuration.TestConfiguration) DiscoveredTestData

DoAutoDiscover finds objects under test

type PodStates

type PodStates struct {
	BeforeExecution map[string]int
	AfterExecution  map[string]int
}

type ScaleObject

type ScaleObject struct {
	Scale               *scalingv1.Scale
	GroupResourceSchema schema.GroupResource
}

func GetScaleCrUnderTest

func GetScaleCrUnderTest(namespaces []string, crds []*apiextv1.CustomResourceDefinition) []ScaleObject

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL