Documentation ¶
Index ¶
- Constants
- Variables
- func CleanupGeneratedResources(ctx context.Context, cluster clusters.Cluster, creatorID string) error
- func GenerateBashJob(image, imageTag string, commands ...string) (*corev1.ConfigMap, *batchv1.Job)
- func GenerateNamespace(ctx context.Context, cluster clusters.Cluster, creatorID string) (*corev1.Namespace, error)
- func NewClientConfigForRestConfig(name string, restcfg *rest.Config) *clientcmdapi.Config
- func NewContainer(name, image string, port int32) corev1.Container
- func NewDeploymentForContainer(c corev1.Container) *appsv1.Deployment
- func NewIngressForContainerWithDeploymentAndService(kubernetesVersion semver.Version, c corev1.Container, ...) (*appsv1.Deployment, *corev1.Service, runtime.Object)
- func NewIngressForService(path string, annotations map[string]string, s *corev1.Service) *netv1.Ingress
- func NewIngressForServiceWithClusterVersion(kubernetesVersion semver.Version, path string, annotations map[string]string, ...) runtime.Object
- func NewKubeConfigForRestConfig(name string, restcfg *rest.Config) ([]byte, error)
- func NewLegacyIngressForService(path string, annotations map[string]string, s *corev1.Service) *netv1beta1.Ingress
- func NewServiceForDeployment(d *appsv1.Deployment, serviceType corev1.ServiceType) *corev1.Service
- func TempKubeconfig(cluster clusters.Cluster) (*os.File, error)
Constants ¶
const ( // TestResourceLabel is a label used on any resources to indicate that they // were created as part of a testing run and can be cleaned up in bulk based // on the value provided to the label. TestResourceLabel = "created-by-ktf" )
Variables ¶
var ( // DefaultRequiredCompletionsForJobs indicates the number of Pod // completions that will be required by default for any generated // Job resources. DefaultRequiredCompletionsForJobs int32 = 1 )
Functions ¶
func CleanupGeneratedResources ¶ added in v0.6.1
func CleanupGeneratedResources(ctx context.Context, cluster clusters.Cluster, creatorID string) error
CleanupGeneratedResources cleans up all resources created by the given creator ID.
func GenerateBashJob ¶ added in v0.7.0
GenerateBashJob will create a ConfigMap and a Job that can be deployed to run a bash script given the container image you want the job to run and the shell commands you want the job to execute as arguments. By default this will only generate a single container, and you can provide env vars to be loaded into it.
func GenerateNamespace ¶ added in v0.6.1
func GenerateNamespace(ctx context.Context, cluster clusters.Cluster, creatorID string) (*corev1.Namespace, error)
GenerateNamespace creates a transient testing namespace given the cluster to create it on and a creator ID. The namespace will be given a UUID for a name, and the creatorID will be applied to the TestResourceLabel for automated cleanup.
func NewClientConfigForRestConfig ¶ added in v0.3.0
func NewClientConfigForRestConfig(name string, restcfg *rest.Config) *clientcmdapi.Config
NewClientConfigForRestConfig provides the *clientcmdapi.Config for a cluster given a valid *rest.Config for the target cluster.
func NewContainer ¶
NewContainer creates a minimal and opinionated corev1.Container object for testing
func NewDeploymentForContainer ¶
func NewDeploymentForContainer(c corev1.Container) *appsv1.Deployment
NewDeploymentForContainer creates a minimal and opinionated *appsv1.Deployment object for testing based on a provided corev1.Container.
func NewIngressForContainerWithDeploymentAndService ¶ added in v0.8.0
func NewIngressForContainerWithDeploymentAndService( kubernetesVersion semver.Version, c corev1.Container, serviceType corev1.ServiceType, annotations map[string]string, path string, ) (*appsv1.Deployment, *corev1.Service, runtime.Object)
NewIngressForContainerWithDeploymentAndService generates a Deployment, Service, and Ingress given a container. The idea is that if you have a container that provides an HTTP endpoint, this function can be used to generate everything you need to deploy to the cluster to start accessing that HTTP server from outside the cluster via Ingress. This effectively just compiles together multiple generators for convenience, look at the individual generators used here if you're looking for something more granular.
func NewIngressForService ¶
func NewIngressForService(path string, annotations map[string]string, s *corev1.Service) *netv1.Ingress
NewIngressForService provides a basic and opinionated *netv1.Ingress object for the provided *corev1.Service to expose it via an ingress controller for testing purposes.
func NewIngressForServiceWithClusterVersion ¶ added in v0.6.1
func NewIngressForServiceWithClusterVersion(kubernetesVersion semver.Version, path string, annotations map[string]string, s *corev1.Service) runtime.Object
NewIngressForServiceWithClusterVersion provides an Ingress record for the provided service, but uses a provided Kubernetes cluster version to determine which Ingress version to provide (provides latest available for release).
func NewKubeConfigForRestConfig ¶ added in v0.3.0
NewKubeConfigForRestConfig provides the bytes for a kubeconfig file for use by kubectl or helm given a valid *rest.Config for the target cluster.
func NewLegacyIngressForService ¶ added in v0.3.0
func NewLegacyIngressForService(path string, annotations map[string]string, s *corev1.Service) *netv1beta1.Ingress
NewLegacyIngressForService provides a basic and opinionated *netv1beta1.Ingress object for the provided *corev1.Service to expose it via an ingress controller for testing purposes.
func NewServiceForDeployment ¶
func NewServiceForDeployment(d *appsv1.Deployment, serviceType corev1.ServiceType) *corev1.Service
NewServiceForDeployment provides a minimal and opinionated service to expose the provided *appsv1.Deployment for testing purposes.
Types ¶
This section is empty.