Documentation ¶
Index ¶
- Constants
- Variables
- func AtLeast(t *testing.T, version semver.Version)
- func CleanupOIDCBucketObjects(log logr.Logger, s3Client *s3.S3, bucketName, issuerURL string)
- func CorrelateDaemonSet(ds *appsv1.DaemonSet, nodePool *hyperv1.NodePool, dsName string)
- func DeleteNamespace(t *testing.T, ctx context.Context, client crclient.Client, namespace string) error
- func DestroyOIDCProvider(log logr.Logger, iamClient iamiface.IAMAPI, issuerURL string)
- func EnsureAPIUX(t *testing.T, ctx context.Context, hostClient crclient.Client, ...)
- func EnsureAdmissionPolicies(t *testing.T, ctx context.Context, mgmtClient crclient.Client, ...)
- func EnsureAllContainersHavePullPolicyIfNotPresent(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureAllReqServingPodsLandOnReqServingNodes(t *testing.T, ctx context.Context, client crclient.Client)
- func EnsureAllRoutesUseHCPRouter(t *testing.T, ctx context.Context, hostClient crclient.Client, ...)
- func EnsureCustomLabels(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureGuestWebhooksValidated(t *testing.T, ctx context.Context, guestClient crclient.Client)
- func EnsureHCPContainersHaveResourceRequests(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureHCPPodsAffinitiesAndTolerations(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureMachineDeploymentGeneration(t *testing.T, ctx context.Context, hostClient crclient.Client, ...)
- func EnsureNetworkPolicies(t *testing.T, ctx context.Context, c crclient.Client, ...)
- func EnsureNoCrashingPods(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureNoHCPPodsLandOnDefaultNode(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureNoPodsWithTooHighPriority(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureNodeCommunication(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureNodeCountMatchesNodePoolReplicas(t *testing.T, ctx context.Context, hostClient, guestClient crclient.Client, ...)
- func EnsureNodesLabelsAndTaints(t *testing.T, nodePool hyperv1.NodePool, nodes []corev1.Node)
- func EnsureNodesRuntime(t *testing.T, nodes []corev1.Node)
- func EnsureOAPIMountsTrustBundle(t *testing.T, ctx context.Context, mgmtClient crclient.Client, ...)
- func EnsureOAuthWithIdentityProvider(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureOnlyRequestServingPodsOnRequestServingNodes(t *testing.T, ctx context.Context, client crclient.Client)
- func EnsurePSANotPrivileged(t *testing.T, ctx context.Context, guestClient crclient.Client)
- func EnsurePayloadArchSetCorrectly(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsurePodsWithEmptyDirPVsHaveSafeToEvictAnnotations(t *testing.T, ctx context.Context, hostClient crclient.Client, hcpNs string)
- func EnsureSATokenNotMountedUnlessNecessary(t *testing.T, ctx context.Context, c crclient.Client, ...)
- func EnsureSecretEncryptedUsingKMS(t *testing.T, ctx context.Context, hostedCluster *hyperv1.HostedCluster, ...)
- func EnsureSecretEncryptedUsingKMSV1(t *testing.T, ctx context.Context, hostedCluster *hyperv1.HostedCluster, ...)
- func EnsureSecretEncryptedUsingKMSV2(t *testing.T, ctx context.Context, hostedCluster *hyperv1.HostedCluster, ...)
- func EventuallyObject[T client.Object](t *testing.T, ctx context.Context, objective string, ...)
- func EventuallyObjects[T client.Object](t *testing.T, ctx context.Context, objective string, ...)
- func GetClient() (crclient.Client, error)
- func GetConfig() (*rest.Config, error)
- func GetGuestKubeconfigHost(t *testing.T, ctx context.Context, client crclient.Client, ...) (string, error)
- func GetIAMClient(awsCreds, awsRegion string) iamiface.IAMAPI
- func GetKMSKeyArn(awsCreds, awsRegion, alias string) (*string, error)
- func GetS3Client(awsCreds, awsRegion string) *s3.S3
- func GetUserForToken(config *restclient.Config, token string) (*userv1.User, error)
- func IsLessThan(version semver.Version) bool
- func NewHypershiftTest(t *testing.T, ctx context.Context, test hypershiftTestFunc) *hypershiftTest
- func NewLogr(t *testing.T) logr.Logger
- func NewPrometheusClient(ctx context.Context) (prometheusv1.API, error)
- func NoticePreemptionOrFailedScheduling(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func RunCommandInPod(ctx context.Context, c crclient.Client, component, namespace string, ...) (string, error)
- func SetReleaseImageVersion(ctx context.Context, latestReleaseImage string, pullSecretFile string) error
- func SetupReqServingClusterNodePools(ctx context.Context, t *testing.T, ...) []*hyperv1.NodePool
- func TearDownNodePools(ctx context.Context, t *testing.T, kubeconfigPath string, ...)
- func UpdateObject[T crclient.Object](t *testing.T, ctx context.Context, client crclient.Client, original T, ...) error
- func ValidateMetrics(t *testing.T, ctx context.Context, hc *hyperv1.HostedCluster, ...)
- func ValidatePrivateCluster(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func ValidatePublicCluster(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForConditionsOnHostedControlPlane(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForGuestClient(t *testing.T, ctx context.Context, client crclient.Client, ...) crclient.Client
- func WaitForGuestKubeConfig(t *testing.T, ctx context.Context, client crclient.Client, ...) []byte
- func WaitForGuestKubeconfigHostUpdate(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForImageRollout(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForNReadyNodes(t *testing.T, ctx context.Context, client crclient.Client, n int32, ...) []corev1.Node
- func WaitForNReadyNodesWithOptions(t *testing.T, ctx context.Context, client crclient.Client, n int32, ...) []corev1.Node
- func WaitForNodePoolConfigUpdateComplete(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForNodePoolDesiredNodes(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForOAuthRouteReady(t *testing.T, ctx context.Context, client crclient.Client, ...) *routev1.Route
- func WaitForOAuthToken(t *testing.T, ctx context.Context, oauthRoute *routev1.Route, ...) string
- func WaitForOauthConfig(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForReadyNodesByNodePool(t *testing.T, ctx context.Context, client crclient.Client, ...) []corev1.Node
- type Condition
- type DefaultRemoteExecutor
- type EventuallyOption
- type EventuallyOptions
- type KubeVirtInfra
- func (k KubeVirtInfra) ComposeOVNKLayer2NAD(namespace string) (client.Object, error)
- func (k KubeVirtInfra) CreateOVNKLayer2NAD(namespace string) error
- func (k KubeVirtInfra) Ctx() context.Context
- func (k KubeVirtInfra) DiscoverClient() (crclient.Client, error)
- func (k KubeVirtInfra) HostedCluster() *hyperv1.HostedCluster
- func (k KubeVirtInfra) MGMTClient() crclient.Client
- func (k KubeVirtInfra) NADName() string
- func (k KubeVirtInfra) Namespace() string
- type NameGenerator
- type NodePoolPollOption
- type NodePoolPollOptions
- type PlatformAgnosticOptions
- type PodExecOptions
- type Predicate
- type PrometheusResponse
- type RemoteExecutor
- type StreamOptions
Constants ¶
const ( // Metrics // TODO (jparrill): We need to separate the metrics.go from the main pkg in the hypershift-operator. // Delete these references when it's done and import it from there HypershiftOperatorInfoName = "hypershift_operator_info" )
const OAuthServerConfigKey = "config.yaml"
Variables ¶
var ( // y-stream versions supported by e2e in main Version419 = semver.MustParse("4.19.0") Version418 = semver.MustParse("4.18.0") Version417 = semver.MustParse("4.17.0") Version416 = semver.MustParse("4.16.0") Version415 = semver.MustParse("4.15.0") Version414 = semver.MustParse("4.14.0") )
Functions ¶
func CleanupOIDCBucketObjects ¶ added in v0.1.4
func CorrelateDaemonSet ¶
func DeleteNamespace ¶
func DeleteNamespace(t *testing.T, ctx context.Context, client crclient.Client, namespace string) error
DeleteNamespace deletes and finalizes the given namespace, logging any failures along the way.
func DestroyOIDCProvider ¶ added in v0.1.4
func EnsureAPIUX ¶ added in v0.1.43
func EnsureAdmissionPolicies ¶ added in v0.1.44
func EnsureAllReqServingPodsLandOnReqServingNodes ¶ added in v0.1.16
func EnsureCustomLabels ¶ added in v0.1.52
func EnsureGuestWebhooksValidated ¶ added in v0.1.10
func EnsureHCPPodsAffinitiesAndTolerations ¶ added in v0.1.16
func EnsureNetworkPolicies ¶ added in v0.1.10
func EnsureNoCrashingPods ¶
func EnsureNoHCPPodsLandOnDefaultNode ¶ added in v0.1.17
func EnsureNodeCommunication ¶
func EnsureNodesLabelsAndTaints ¶ added in v0.1.10
func EnsureNodesRuntime ¶ added in v0.1.51
EnsureNodesRuntime ensures that all nodes in the NodePool have the expected runtime handlers. This is only supported on 4.18+ when the default runtime is changed to crun.
func EnsureOAPIMountsTrustBundle ¶ added in v0.1.40
func EnsureOAuthWithIdentityProvider ¶ added in v0.1.2
func EnsureOnlyRequestServingPodsOnRequestServingNodes ¶ added in v0.1.16
func EnsurePSANotPrivileged ¶ added in v0.1.10
func EnsurePayloadArchSetCorrectly ¶ added in v0.1.48
func EnsurePodsWithEmptyDirPVsHaveSafeToEvictAnnotations ¶ added in v0.1.10
func EnsureSATokenNotMountedUnlessNecessary ¶ added in v0.1.19
func EnsureSecretEncryptedUsingKMSV1 ¶ added in v0.1.43
func EnsureSecretEncryptedUsingKMSV2 ¶ added in v0.1.43
func EventuallyObject ¶ added in v0.1.38
func EventuallyObject[T client.Object](t *testing.T, ctx context.Context, objective string, getter func(context.Context) (T, error), predicates []Predicate[T], options ...EventuallyOption)
EventuallyObject polls until the predicate is fulfilled on the object.
func EventuallyObjects ¶ added in v0.1.38
func EventuallyObjects[T client.Object](t *testing.T, ctx context.Context, objective string, getter func(context.Context) ([]T, error), groupPredicates []Predicate[[]T], predicates []Predicate[T], options ...EventuallyOption)
EventuallyObjects polls until the predicate is fulfilled on each of a set of objects.
func GetGuestKubeconfigHost ¶ added in v0.1.40
func GetIAMClient ¶ added in v0.1.4
func GetKMSKeyArn ¶
func GetS3Client ¶ added in v0.1.4
func GetUserForToken ¶ added in v0.1.2
func IsLessThan ¶ added in v0.1.48
func NewHypershiftTest ¶ added in v0.1.10
func NewPrometheusClient ¶ added in v0.1.6
func NewPrometheusClient(ctx context.Context) (prometheusv1.API, error)
func RunCommandInPod ¶ added in v0.1.10
func SetReleaseImageVersion ¶ added in v0.1.48
func SetupReqServingClusterNodePools ¶ added in v0.1.17
func TearDownNodePools ¶ added in v0.1.17
func UpdateObject ¶ added in v0.1.6
func ValidateMetrics ¶ added in v0.1.10
func ValidateMetrics(t *testing.T, ctx context.Context, hc *hyperv1.HostedCluster, metricsNames []string, areMetricsExpectedToBePresent bool)
Verifies that the given metrics are defined for the given hosted cluster if areMetricsExpectedToBePresent is set to true. Verifies that the given metrics are not defined otherwise.
func ValidatePrivateCluster ¶ added in v0.1.10
func ValidatePrivateCluster(t *testing.T, ctx context.Context, client crclient.Client, hostedCluster *hyperv1.HostedCluster, clusterOpts *PlatformAgnosticOptions)
func ValidatePublicCluster ¶ added in v0.1.10
func ValidatePublicCluster(t *testing.T, ctx context.Context, client crclient.Client, hostedCluster *hyperv1.HostedCluster, clusterOpts *PlatformAgnosticOptions)
func WaitForGuestClient ¶
func WaitForGuestKubeConfig ¶
func WaitForGuestKubeconfigHostUpdate ¶ added in v0.1.40
func WaitForImageRollout ¶
func WaitForNReadyNodes ¶
func WaitForNReadyNodesWithOptions ¶ added in v0.1.40
func WaitForNodePoolConfigUpdateComplete ¶ added in v0.1.51
func WaitForNodePoolDesiredNodes ¶ added in v0.1.6
func WaitForOAuthRouteReady ¶ added in v0.1.2
func WaitForOAuthToken ¶ added in v0.1.2
func WaitForOauthConfig ¶ added in v0.1.6
func WaitForReadyNodesByNodePool ¶ added in v0.1.40
Types ¶
type Condition ¶ added in v0.1.38
type Condition struct { Type string Status metav1.ConditionStatus Reason string Message string }
Condition is a generic structure required to adapt all the different concrete condition types into one.
func Conditions ¶ added in v0.1.38
Conditions extracts conditions from the item and adapts them to the generic wrapper.
type DefaultRemoteExecutor ¶
type DefaultRemoteExecutor struct{}
DefaultRemoteExecutor is the standard implementation of remote command execution
type EventuallyOption ¶ added in v0.1.38
type EventuallyOption func(*EventuallyOptions)
EventuallyOption configures a
func WithDelayedStart ¶ added in v0.1.38
func WithDelayedStart() EventuallyOption
WithDelayedStart configures the asynchronous assertion to start immediately.
func WithFilteredConditionDump ¶ added in v0.1.38
func WithFilteredConditionDump(matchers ...Condition) EventuallyOption
WithFilteredConditionDump configures the asynchronous assertion to only dump the specified conditions.
func WithInterval ¶ added in v0.1.38
func WithInterval(interval time.Duration) EventuallyOption
WithInterval sets the polling interval.
func WithTimeout ¶ added in v0.1.38
func WithTimeout(timeout time.Duration) EventuallyOption
WithTimeout sets the polling timeout.
func WithoutConditionDump ¶ added in v0.1.38
func WithoutConditionDump() EventuallyOption
WithoutConditionDump configures the asynchronous assertion to dump conditions on failure.
type EventuallyOptions ¶ added in v0.1.38
type EventuallyOptions struct {
// contains filtered or unexported fields
}
EventuallyOptions configure asynchronous assertion behavior.
type KubeVirtInfra ¶ added in v0.1.32
type KubeVirtInfra struct {
// contains filtered or unexported fields
}
func NewKubeVirtInfra ¶ added in v0.1.32
func NewKubeVirtInfra(ctx context.Context, mgmtClient crclient.Client, hostedCluster *hyperv1.HostedCluster) KubeVirtInfra
func (KubeVirtInfra) ComposeOVNKLayer2NAD ¶ added in v0.1.32
func (k KubeVirtInfra) ComposeOVNKLayer2NAD(namespace string) (client.Object, error)
func (KubeVirtInfra) CreateOVNKLayer2NAD ¶ added in v0.1.32
func (k KubeVirtInfra) CreateOVNKLayer2NAD(namespace string) error
func (KubeVirtInfra) Ctx ¶ added in v0.1.32
func (k KubeVirtInfra) Ctx() context.Context
func (KubeVirtInfra) DiscoverClient ¶ added in v0.1.32
func (k KubeVirtInfra) DiscoverClient() (crclient.Client, error)
func (KubeVirtInfra) HostedCluster ¶ added in v0.1.32
func (k KubeVirtInfra) HostedCluster() *hyperv1.HostedCluster
func (KubeVirtInfra) MGMTClient ¶ added in v0.1.32
func (k KubeVirtInfra) MGMTClient() crclient.Client
func (KubeVirtInfra) NADName ¶ added in v0.1.32
func (k KubeVirtInfra) NADName() string
func (KubeVirtInfra) Namespace ¶ added in v0.1.32
func (k KubeVirtInfra) Namespace() string
type NameGenerator ¶
type NameGenerator interface { // GenerateName generates a valid name from the base name, adding a random suffix to the // the base. If base is valid, the returned name must also be valid. The generator is // responsible for knowing the maximum valid name length. GenerateName(base string) string }
NameGenerator generates names for objects. Some backends may have more information available to guide selection of new names and this interface hides those details.
var SimpleNameGenerator NameGenerator = simpleNameGenerator{}
SimpleNameGenerator is a generator that returns the name plus a random suffix of five alphanumerics when a name is requested. The string is guaranteed to not exceed the length of a standard Kubernetes name (63 characters)
type NodePoolPollOption ¶ added in v0.1.40
type NodePoolPollOption func(*NodePoolPollOptions)
func WithClientOptions ¶ added in v0.1.40
func WithClientOptions(clientOpts ...crclient.ListOption) NodePoolPollOption
func WithCollectionPredicates ¶ added in v0.1.40
func WithCollectionPredicates(predicates ...Predicate[[]*corev1.Node]) NodePoolPollOption
func WithPredicates ¶ added in v0.1.40
func WithPredicates(predicates ...Predicate[*corev1.Node]) NodePoolPollOption
func WithSuffix ¶ added in v0.1.40
func WithSuffix(suffix string) NodePoolPollOption
type NodePoolPollOptions ¶ added in v0.1.40
type NodePoolPollOptions struct {
// contains filtered or unexported fields
}
type PlatformAgnosticOptions ¶ added in v0.1.38
type PlatformAgnosticOptions struct { core.RawCreateOptions NonePlatform none.RawCreateOptions AWSPlatform aws.RawCreateOptions KubevirtPlatform kubevirt.RawCreateOptions AzurePlatform azure.RawCreateOptions PowerVSPlatform powervs.RawCreateOptions OpenStackPlatform openstack.RawCreateOptions }
type PodExecOptions ¶
type PodExecOptions struct { StreamOptions Command []string PodName string Namespace string ContainerName string Timeout time.Duration Executor RemoteExecutor Config *restclient.Config }
PodExecOptions declare the arguments accepted by the Exec command
func (*PodExecOptions) Run ¶
func (p *PodExecOptions) Run(ctx context.Context) error
Run executes a validated remote execution against a pod.
func (*PodExecOptions) Validate ¶
func (p *PodExecOptions) Validate() error
Validate checks that the provided exec options are specified.
type Predicate ¶ added in v0.1.38
Predicate evaluates an object. Return whether the object in question matches your predicate, the reasons why or why not, and whether an error occurred. If determining that an object does not match a predicate, a message is required. Returning an error is fatal to the asynchronous assertion using this predicate.
type PrometheusResponse ¶ added in v0.1.6
type PrometheusResponse struct {
Data prometheusResponseData `json:"data"`
}
PrometheusResponse is used to contain prometheus query results
func RunQueryAtTime ¶ added in v0.1.6
type RemoteExecutor ¶
type RemoteExecutor interface {
Execute(ctx context.Context, method string, url *url.URL, config *restclient.Config, stdin io.Reader, stdout, stderr io.Writer, tty bool) error
}
RemoteExecutor defines the interface accepted by the Exec command - provided for test stubbing
type StreamOptions ¶
type StreamOptions struct { Stdin bool TTY bool genericclioptions.IOStreams }