Documentation ¶
Index ¶
- Constants
- Variables
- func CleanupOIDCBucketObjects(log logr.Logger, s3Client *s3.S3, bucketName, issuerURL string)
- func CorrelateDaemonSet(ds *appsv1.DaemonSet, nodePool *hyperv1.NodePool, dsName string)
- func CreateCluster(t *testing.T, ctx context.Context, client crclient.Client, ...) *hyperv1.HostedCluster
- 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 EnsureAPIBudget(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureAllContainersHavePullPolicyIfNotPresent(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureAllRoutesUseHCPRouter(t *testing.T, ctx context.Context, hostClient crclient.Client, ...)
- func EnsureHCPContainersHaveResourceRequests(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureMachineDeploymentGeneration(t *testing.T, ctx context.Context, hostClient crclient.Client, ...)
- func EnsureNoCrashingPods(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 EnsureOAuthWithIdentityProvider(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func EnsureSecretEncryptedUsingKMS(t *testing.T, ctx context.Context, hostedCluster *hyperv1.HostedCluster, ...)
- func GetClient() (crclient.Client, error)
- func GetConfig() (*rest.Config, error)
- func GetIAMClient(awsCreds, awsRegion string) iamiface.IAMAPI
- func GetKMSKeyArn(awsCreds, awsRegion string) (*string, error)
- func GetS3Client(awsCreds, awsRegion string) *s3.S3
- func GetUserForToken(config *restclient.Config, token string) (*userv1.User, error)
- 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 UpdateObject[T crclient.Object](t *testing.T, ctx context.Context, client crclient.Client, original T, ...) error
- 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, error)
- 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 WaitForNReadyNodesByNodePool(t *testing.T, ctx context.Context, client crclient.Client, n int32, ...) []corev1.Node
- func WaitForNodePoolConditionsNotToBePresent(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForNodePoolDesiredNodes(t *testing.T, ctx context.Context, client crclient.Client, ...)
- func WaitForNodePoolVersion(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, ...)
- type DefaultRemoteExecutor
- type NameGenerator
- type PodExecOptions
- type PrometheusResponse
- type RemoteExecutor
- type StreamOptions
Constants ¶
const (
KMS_KEY_ALIAS = "alias/hypershift-ci"
)
const OAuthServerConfigKey = "config.yaml"
Variables ¶
var ( // 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" )
Functions ¶
func CleanupOIDCBucketObjects ¶ added in v0.1.4
func CorrelateDaemonSet ¶
func CreateCluster ¶
func CreateCluster(t *testing.T, ctx context.Context, client crclient.Client, opts *core.CreateOptions, platform hyperv1.PlatformType, artifactDir string, serviceAccountSigningKey []byte) *hyperv1.HostedCluster
CreateCluster creates a new namespace and a HostedCluster in that namespace using the provided options.
CreateCluster will install a teardown handler into the provided test T by calling T.Cleanup() with a function that destroys the cluster. This function will block until teardown completes. No explicit cluster cleanup logic is expected of the caller. Note that the teardown function explicitly ignores interruption and tries forever to do its work, the rationale being that we should do everything with can to release external resources with whatever time we have before being forcibly terminated.
This function is intended (for now) to be the preferred default way of creating a hosted cluster during a test.
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 EnsureAPIBudget ¶
func EnsureNoCrashingPods ¶
func EnsureNodeCommunication ¶
func EnsureOAuthWithIdentityProvider ¶ added in v0.1.2
func GetIAMClient ¶ added in v0.1.4
func GetKMSKeyArn ¶
func GetS3Client ¶ added in v0.1.4
func GetUserForToken ¶ added in v0.1.2
func NewPrometheusClient ¶ added in v0.1.6
func NewPrometheusClient(ctx context.Context) (prometheusv1.API, error)
func UpdateObject ¶ added in v0.1.6
func WaitForGuestClient ¶
func WaitForGuestKubeConfig ¶
func WaitForImageRollout ¶
func WaitForNReadyNodes ¶
func WaitForNodePoolConditionsNotToBePresent ¶
func WaitForNodePoolConditionsNotToBePresent(t *testing.T, ctx context.Context, client crclient.Client, nodePool *hyperv1.NodePool, conditions ...string)
WaitForNodePoolConditionsNotToBePresent blocks until the given conditions are not present in the NodePool.
func WaitForNodePoolDesiredNodes ¶ added in v0.1.6
func WaitForNodePoolVersion ¶
func WaitForNodePoolVersion(t *testing.T, ctx context.Context, client crclient.Client, nodePool *hyperv1.NodePool, version string)
WaitForNodePoolVersion blocks until the NodePool status indicates the given version. If the context is closed before the version is observed, the given test will get an error.
func WaitForOAuthRouteReady ¶ added in v0.1.2
func WaitForOAuthToken ¶ added in v0.1.2
func WaitForOauthConfig ¶ added in v0.1.6
Types ¶
type DefaultRemoteExecutor ¶
type DefaultRemoteExecutor struct{}
DefaultRemoteExecutor is the standard implementation of remote command execution
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 PodExecOptions ¶
type PodExecOptions struct { StreamOptions Command []string PodName string Namespace string ContainerName string Executor RemoteExecutor Config *restclient.Config }
PodExecOptions declare the arguments accepted by the Exec command
func (*PodExecOptions) Run ¶
func (p *PodExecOptions) Run() 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 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(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 }