v1alpha1

package
v0.14.0 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the meows v1alpha1 API group +kubebuilder:object:generate=true +groupName=meows.cybozu.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "meows.cybozu.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type NotificationConfig added in v0.6.0

type NotificationConfig struct {
	// Configuration of the Slack notification.
	// +optional
	Slack SlackConfig `json:"slack,omitempty"`

	// Extension time.
	// If this field is omitted, users cannot extend the runner pods.
	// +optional
	ExtendDuration string `json:"extendDuration,omitempty"`
}

func (*NotificationConfig) DeepCopy added in v0.6.0

func (in *NotificationConfig) DeepCopy() *NotificationConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NotificationConfig.

func (*NotificationConfig) DeepCopyInto added in v0.6.0

func (in *NotificationConfig) DeepCopyInto(out *NotificationConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ObjectMeta

type ObjectMeta struct {
	// Labels is a map of string keys and values.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations is a map of string keys and values.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

ObjectMeta is metadata of objects. This is partially copied from metav1.ObjectMeta.

func (*ObjectMeta) DeepCopy

func (in *ObjectMeta) DeepCopy() *ObjectMeta

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.

func (*ObjectMeta) DeepCopyInto

func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RunnerContainerSpec added in v0.6.0

type RunnerContainerSpec struct {
	// Docker image name for the runner container.
	// +optional
	Image string `json:"image,omitempty"`

	// Image pull policy for the runner container.
	// +optional
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// Security options for the runner container.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// List of sources to populate environment variables in the runner container.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

	// List of environment variables to set in the runner container.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Compute Resources required by the runner container.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Pod volumes to mount into the runner container's filesystem.
	// +optional
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}

func (*RunnerContainerSpec) DeepCopy added in v0.6.0

func (in *RunnerContainerSpec) DeepCopy() *RunnerContainerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerContainerSpec.

func (*RunnerContainerSpec) DeepCopyInto added in v0.6.0

func (in *RunnerContainerSpec) DeepCopyInto(out *RunnerContainerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RunnerPodTemplateSpec added in v0.6.0

type RunnerPodTemplateSpec struct {

	// Standard object's metadata.  Only `annotations` and `labels` are valid.
	// +optional
	ObjectMeta `json:"metadata"`

	// Runner container's spec.
	// +optional
	RunnerContainer RunnerContainerSpec `json:"runnerContainer,omitempty"`

	// ImagePullSecrets is a list of secret names in the same namespace to use for pulling any of the images.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// List of volumes that can be mounted by containers belonging to the pod.
	// +optional
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// NodeSelector is a selector which must be true for the runner pod to fit on a node.
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Name of the service account that the Pod use.
	// +kubebuilder:default="default"
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted to the pod.
	// +optional
	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty"`

	// If specified, the runner pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
}

func (*RunnerPodTemplateSpec) DeepCopy added in v0.6.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerPodTemplateSpec.

func (*RunnerPodTemplateSpec) DeepCopyInto added in v0.6.0

func (in *RunnerPodTemplateSpec) DeepCopyInto(out *RunnerPodTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RunnerPool

type RunnerPool struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RunnerPoolSpec   `json:"spec"`
	Status RunnerPoolStatus `json:"status,omitempty"`
}

RunnerPool is the Schema for the runnerpools API

func (*RunnerPool) DeepCopy

func (in *RunnerPool) DeepCopy() *RunnerPool

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerPool.

func (*RunnerPool) DeepCopyInto

func (in *RunnerPool) DeepCopyInto(out *RunnerPool)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RunnerPool) DeepCopyObject

func (in *RunnerPool) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*RunnerPool) Default

func (r *RunnerPool) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*RunnerPool) GetOwner added in v0.6.0

func (r *RunnerPool) GetOwner() string

func (*RunnerPool) GetRepository added in v0.6.0

func (r *RunnerPool) GetRepository() string

func (*RunnerPool) GetRunnerDeploymentName

func (r *RunnerPool) GetRunnerDeploymentName() string

GetRunnerDeploymentName returns the Deployment name for runners.

func (*RunnerPool) GetRunnerSecretName added in v0.4.0

func (r *RunnerPool) GetRunnerSecretName() string

func (*RunnerPool) IsOrgLevel added in v0.4.0

func (r *RunnerPool) IsOrgLevel() bool

func (*RunnerPool) SetupWebhookWithManager

func (r *RunnerPool) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*RunnerPool) ValidateCreate

func (r *RunnerPool) ValidateCreate() (warnings admission.Warnings, err error)

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*RunnerPool) ValidateDelete

func (r *RunnerPool) ValidateDelete() (warnings admission.Warnings, err error)

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*RunnerPool) ValidateUpdate

func (r *RunnerPool) ValidateUpdate(old runtime.Object) (warnings admission.Warnings, err error)

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type RunnerPoolList

type RunnerPoolList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RunnerPool `json:"items"`
}

RunnerPoolList contains a list of RunnerPool

func (*RunnerPoolList) DeepCopy

func (in *RunnerPoolList) DeepCopy() *RunnerPoolList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerPoolList.

func (*RunnerPoolList) DeepCopyInto

func (in *RunnerPoolList) DeepCopyInto(out *RunnerPoolList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RunnerPoolList) DeepCopyObject

func (in *RunnerPoolList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RunnerPoolSpec

type RunnerPoolSpec struct {
	// Repository name. If this field is specified, meows registers pods as repository-level runners.
	// +optional
	Repository string `json:"repository,omitempty"`

	// Organization name. If this field is specified, meows registers pods as organization-level runners.
	// +optional
	Organization string `json:"organization,omitempty"`

	// CredentialSecretName is a Secret name that contains a GitHub Credential.
	// If this field is omitted or the empty string (`""`) is specified, meows uses the default secret name (`meows-github-cred`).
	// +optional
	CredentialSecretName string `json:"credentialSecretName,omitempty"`

	// Number of desired runner pods to accept a new job. Defaults to 1.
	// +kubebuilder:default=1
	// +optional
	Replicas int32 `json:"replicas,omitempty"`

	// Number of desired runner pods to keep. Defaults to 0.
	// If this field is 0, it will keep the number of pods specified in replicas.
	// +kubebuilder:default=0
	// +optional
	MaxRunnerPods int32 `json:"maxRunnerPods,omitempty"`

	// WorkVolume is the volume source for the working directory.
	// If pod is not given a volume definition, it uses an empty dir.
	// +optional
	WorkVolume *corev1.VolumeSource `json:"workVolume,omitempty"`

	// Command that runs when the runner pods will be created.
	// +optional
	SetupCommand []string `json:"setupCommand,omitempty"`

	// Deadline for the Pod to be recreated.
	// +kubebuilder:default="24h"
	// +optional
	RecreateDeadline string `json:"recreateDeadline,omitempty"`

	// Configuration of the notification.
	// +optional
	Notification NotificationConfig `json:"notification,omitempty"`

	// Template describes the runner pods that will be created.
	// +optional
	Template RunnerPodTemplateSpec `json:"template,omitempty"`

	// DenyDisruption protects busy runner Pods by PDB.
	// +optional
	DenyDisruption bool `json:"denyDisruption,omitempty"`
}

RunnerPoolSpec defines the desired state of RunnerPool

func (*RunnerPoolSpec) DeepCopy

func (in *RunnerPoolSpec) DeepCopy() *RunnerPoolSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerPoolSpec.

func (*RunnerPoolSpec) DeepCopyInto

func (in *RunnerPoolSpec) DeepCopyInto(out *RunnerPoolSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RunnerPoolStatus

type RunnerPoolStatus struct {
	// Bound is true when the child Deployment is created.
	// +optional
	Bound bool `json:"bound,omitempty"`
}

RunnerPoolStatus defines status of RunnerPool

func (*RunnerPoolStatus) DeepCopy

func (in *RunnerPoolStatus) DeepCopy() *RunnerPoolStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunnerPoolStatus.

func (*RunnerPoolStatus) DeepCopyInto

func (in *RunnerPoolStatus) DeepCopyInto(out *RunnerPoolStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SlackConfig added in v0.6.0

type SlackConfig struct {
	// Flag to toggle Slack notifications sends or not.
	// +optional
	Enable bool `json:"enable,omitempty"`

	// Slack channel which the job results are reported.
	// If this field is omitted, the default channel specified in slack-agent options will be used.
	// +optional
	Channel string `json:"channel,omitempty"`

	// Service name of Slack agent.
	// If this field is omitted, the default name (`slack-agent.meows.svc`) will be used.
	// +optional
	AgentServiceName string `json:"agentServiceName,omitempty"`
}

func (*SlackConfig) DeepCopy added in v0.6.0

func (in *SlackConfig) DeepCopy() *SlackConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlackConfig.

func (*SlackConfig) DeepCopyInto added in v0.6.0

func (in *SlackConfig) DeepCopyInto(out *SlackConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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