v1alpha1

package
v0.4.0-alpha3 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the zora v1alpha1 API group +kubebuilder:object:generate=true +groupName=zora.undistro.io

Index

Constants

View Source
const (
	LabelEnvironment = "zora.undistro.io/environment"

	ClusterReady               = "Ready"
	ClusterDiscovered          = "Discovered"
	ClusterResourcesDiscovered = "ResourcesDiscovered"
)
View Source
const (
	SeverityUnknown ClusterIssueSeverity = "Unknown"
	SeverityLow     ClusterIssueSeverity = "Low"
	SeverityMedium  ClusterIssueSeverity = "Medium"
	SeverityHigh    ClusterIssueSeverity = "High"

	LabelScanID   = "scanID"
	LabelCluster  = "cluster"
	LabelSeverity = "severity"
	LabelIssueID  = "id"
	LabelCategory = "category"
	LabelPlugin   = "plugin"
)

Variables

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

	// SchemeGroupVersion is a copy of GroupVersion, used by client-gen
	SchemeGroupVersion = GroupVersion

	// 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 Cluster

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

	Spec   ClusterSpec   `json:"spec,omitempty"`
	Status ClusterStatus `json:"status,omitempty"`
}

Cluster is the Schema for the clusters API +genclient +genclient:onlyVerbs=list,get +genclient:noStatus

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

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

func (*Cluster) DeepCopyObject

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

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

func (*Cluster) KubeconfigRefKey

func (in *Cluster) KubeconfigRefKey() *types.NamespacedName

func (*Cluster) SetStatus

func (in *Cluster) SetStatus(statusType string, status bool, reason, msg string)

type ClusterIssue

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

	Spec   ClusterIssueSpec   `json:"spec,omitempty"`
	Status ClusterIssueStatus `json:"status,omitempty"`
}

ClusterIssue is the Schema for the clusterissues API +genclient +genclient:noStatus

func (*ClusterIssue) DeepCopy

func (in *ClusterIssue) DeepCopy() *ClusterIssue

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

func (*ClusterIssue) DeepCopyInto

func (in *ClusterIssue) DeepCopyInto(out *ClusterIssue)

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

func (*ClusterIssue) DeepCopyObject

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

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

type ClusterIssueList

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

ClusterIssueList contains a list of ClusterIssue

func (*ClusterIssueList) DeepCopy

func (in *ClusterIssueList) DeepCopy() *ClusterIssueList

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

func (*ClusterIssueList) DeepCopyInto

func (in *ClusterIssueList) DeepCopyInto(out *ClusterIssueList)

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

func (*ClusterIssueList) DeepCopyObject

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

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

type ClusterIssueSeverity

type ClusterIssueSeverity string

type ClusterIssueSpec

type ClusterIssueSpec struct {
	Cluster        string               `json:"cluster"`
	ID             string               `json:"id"`
	Message        string               `json:"message"`
	Severity       ClusterIssueSeverity `json:"severity"`
	Category       string               `json:"category,omitempty"`
	Resources      map[string][]string  `json:"resources,omitempty"`
	TotalResources int                  `json:"totalResources,omitempty"`
	Url            string               `json:"url,omitempty"`
}

ClusterIssueSpec defines the desired state of ClusterIssue

func (*ClusterIssueSpec) DeepCopy

func (in *ClusterIssueSpec) DeepCopy() *ClusterIssueSpec

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

func (*ClusterIssueSpec) DeepCopyInto

func (in *ClusterIssueSpec) DeepCopyInto(out *ClusterIssueSpec)

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

type ClusterIssueStatus

type ClusterIssueStatus struct {
}

ClusterIssueStatus defines the observed state of ClusterIssue

func (*ClusterIssueStatus) DeepCopy

func (in *ClusterIssueStatus) DeepCopy() *ClusterIssueStatus

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

func (*ClusterIssueStatus) DeepCopyInto

func (in *ClusterIssueStatus) DeepCopyInto(out *ClusterIssueStatus)

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

type ClusterList

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

ClusterList contains a list of Cluster

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

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

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

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

func (*ClusterList) DeepCopyObject

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

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

type ClusterScan

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

	Spec   ClusterScanSpec   `json:"spec,omitempty"`
	Status ClusterScanStatus `json:"status,omitempty"`
}

ClusterScan is the Schema for the clusterscans API +genclient +genclient:onlyVerbs=list,get +genclient:noStatus

func (*ClusterScan) ClusterKey

func (in *ClusterScan) ClusterKey() types.NamespacedName

func (*ClusterScan) DeepCopy

func (in *ClusterScan) DeepCopy() *ClusterScan

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

func (*ClusterScan) DeepCopyInto

func (in *ClusterScan) DeepCopyInto(out *ClusterScan)

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

func (*ClusterScan) DeepCopyObject

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

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

func (*ClusterScan) SetReadyStatus

func (in *ClusterScan) SetReadyStatus(status bool, reason, msg string)

type ClusterScanList

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

ClusterScanList contains a list of ClusterScan

func (*ClusterScanList) DeepCopy

func (in *ClusterScanList) DeepCopy() *ClusterScanList

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

func (*ClusterScanList) DeepCopyInto

func (in *ClusterScanList) DeepCopyInto(out *ClusterScanList)

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

func (*ClusterScanList) DeepCopyObject

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

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

type ClusterScanSpec

type ClusterScanSpec struct {
	// ClusterRef is a reference to a Cluster in the same namespace
	ClusterRef corev1.LocalObjectReference `json:"clusterRef"`

	// This flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	Suspend *bool `json:"suspend,omitempty"`

	// Schedule contains scan repetition and start time data.
	Schedule *Schedule `json:"schedule"`

	// The list of Plugin references that are used to scan the referenced Cluster.  Defaults to 'popeye'
	Plugins []PluginReference `json:"plugins,omitempty"`

	// SuccessfulScansHistoryLimit specifies the amount of successfully
	// completed scan Jobs to be kept in the cluster. This field is analogous
	// to <Cronjob.Spec.SuccessfulJobsHistoryLimit> from the <batch> package.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=3
	SuccessfulScansHistoryLimit *int32 `json:"successfulScansHistoryLimit,omitempty"`

	// FailedScansHistoryLimit specifies the amount of failed scan Jobs to be
	// kept in the cluster. This field is analogous to
	// <Cronjob.Spec.FailedScansHistoryLimit> from the <batch> package.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:default=1
	FailedScansHistoryLimit *int32 `json:"failedScansHistoryLimit,omitempty"`
}

ClusterScanSpec defines the desired state of ClusterScan

func (*ClusterScanSpec) DeepCopy

func (in *ClusterScanSpec) DeepCopy() *ClusterScanSpec

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

func (*ClusterScanSpec) DeepCopyInto

func (in *ClusterScanSpec) DeepCopyInto(out *ClusterScanSpec)

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

type ClusterScanStatus

type ClusterScanStatus struct {
	apis.Status `json:",inline"`

	// Information of the last scans of plugins
	Plugins map[string]*PluginScanStatus `json:"plugins,omitempty"`

	// Comma separated list of plugins
	PluginNames string `json:"pluginNames,omitempty"`

	// Suspend field value from ClusterScan spec
	Suspend bool `json:"suspend"`

	// Information when was the last time the job was scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`

	// Information when was the last time the job was finished.
	LastFinishedTime *metav1.Time `json:"lastFinishedTime,omitempty"`

	// Status of the last finished scan. Complete or Failed
	LastFinishedStatus string `json:"lastFinishedStatus,omitempty"`

	// Status of the last scan. Active, Complete or Failed
	LastStatus string `json:"lastStatus,omitempty"`

	// Information when was the last time the job successfully completed.
	LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"`

	// Time when the next job will schedule.
	NextScheduleTime *metav1.Time `json:"nextScheduleTime,omitempty"`

	// Total of ClusterIssues reported in the last successful scan
	TotalIssues *int `json:"totalIssues,omitempty"`
}

ClusterScanStatus defines the observed state of ClusterScan

func (*ClusterScanStatus) DeepCopy

func (in *ClusterScanStatus) DeepCopy() *ClusterScanStatus

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

func (*ClusterScanStatus) DeepCopyInto

func (in *ClusterScanStatus) DeepCopyInto(out *ClusterScanStatus)

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

func (*ClusterScanStatus) GetPluginStatus

func (in *ClusterScanStatus) GetPluginStatus(name string) *PluginScanStatus

GetPluginStatus returns a PluginScanStatus of a plugin

func (*ClusterScanStatus) LastScanIDs

func (in *ClusterScanStatus) LastScanIDs(successful bool) []string

LastScanIDs returns a list of all the last scan IDs

func (*ClusterScanStatus) SyncStatus

func (in *ClusterScanStatus) SyncStatus()

SyncStatus fills ClusterScan status and time fields based on PluginStatus

type ClusterSpec

type ClusterSpec struct {
	// KubeconfigRef is a reference to a secret in the same namespace that contains the kubeconfig data
	KubeconfigRef *corev1.LocalObjectReference `json:"kubeconfigRef,omitempty"`
}

ClusterSpec defines the desired state of Cluster

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

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

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

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

type ClusterStatus

type ClusterStatus struct {
	apis.Status           `json:",inline"`
	discovery.ClusterInfo `json:",inline"`

	// KubernetesVersion is the server's kubernetes version (git version).
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`

	// Usage and available resources
	Resources discovery.ClusterResources `json:"resources,omitempty"`

	// Usage of memory in quantity and percentage
	MemoryUsage string `json:"memoryUsage,omitempty"`

	// Quantity of memory available in Mi
	MemoryAvailable string `json:"memoryAvailable,omitempty"`

	// Usage of CPU in quantity and percentage
	CPUUsage string `json:"cpuUsage,omitempty"`

	// Quantity of CPU available
	CPUAvailable string `json:"cpuAvailable,omitempty"`

	// Timestamp representing the server time of the last reconciliation
	LastReconciliationTime metav1.Time `json:"lastReconciliationTime,omitempty"`
}

ClusterStatus defines the observed state of Cluster

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

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

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

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

func (*ClusterStatus) SetResources

func (in *ClusterStatus) SetResources(res discovery.ClusterResources)

SetResources format and fill temporary fields about resources

type DayOfWeek

type DayOfWeek int

DayOfWeek represents the days of week, from Sunday to Saturday. +kubebuilder:validation:Minimum=0 +kubebuilder:validation:Maximum=6

type Plugin

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

	Spec   PluginSpec   `json:"spec,omitempty"`
	Status PluginStatus `json:"status,omitempty"`
}

Plugin is the Schema for the plugins API

func (*Plugin) DeepCopy

func (in *Plugin) DeepCopy() *Plugin

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

func (*Plugin) DeepCopyInto

func (in *Plugin) DeepCopyInto(out *Plugin)

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

func (*Plugin) DeepCopyObject

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

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

type PluginList

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

PluginList contains a list of Plugin

func (*PluginList) DeepCopy

func (in *PluginList) DeepCopy() *PluginList

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

func (*PluginList) DeepCopyInto

func (in *PluginList) DeepCopyInto(out *PluginList)

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

func (*PluginList) DeepCopyObject

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

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

type PluginReference

type PluginReference struct {
	// Name is unique within a namespace to reference a Plugin resource.
	Name string `json:"name"`

	// Namespace defines the space within which the Plugin name must be unique.
	Namespace string `json:"namespace,omitempty"`

	// This flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	Suspend *bool `json:"suspend,omitempty"`

	// Schedule contains scan repetition and start time data.
	Schedule *Schedule `json:"schedule,omitempty"`

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

func (*PluginReference) DeepCopy

func (in *PluginReference) DeepCopy() *PluginReference

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

func (*PluginReference) DeepCopyInto

func (in *PluginReference) DeepCopyInto(out *PluginReference)

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

func (*PluginReference) PluginKey

func (in *PluginReference) PluginKey(defaultNamespace string) types.NamespacedName

type PluginScanStatus

type PluginScanStatus struct {
	// Information when was the last time the job was scheduled.
	LastScheduleTime *metav1.Time `json:"lastScheduleTime,omitempty"`

	// Information when was the last time the job was finished.
	LastFinishedTime *metav1.Time `json:"lastFinishedTime,omitempty"`

	// Information when was the last time the job successfully completed.
	LastSuccessfulTime *metav1.Time `json:"lastSuccessfulTime,omitempty"`

	// Time when the next job will schedule.
	NextScheduleTime *metav1.Time `json:"nextScheduleTime,omitempty"`

	// ID of the last plugin scan
	LastScanID string `json:"lastScanID,omitempty"`

	// ID of the last successful plugin scan
	LastSuccessfulScanID string `json:"lastSuccessfulScanID,omitempty"`

	// Status of the last plugin scan. Active, Complete or Failed
	LastStatus string `json:"lastStatus,omitempty"`

	// Status of the last finished plugin scan. Complete or Failed
	LastFinishedStatus string `json:"lastFinishedStatus,omitempty"`

	// LastErrorMsg contains a plugin error message from the last failed scan.
	LastErrorMsg string `json:"lastErrorMsg,omitempty"`

	// IssueCount holds the sum of ClusterIssues found in the last successful
	// scan.
	IssueCount *int `json:"issueCount,omitempty"`

	// Suspend field value from ClusterScan spec.plugins.*.suspend
	Suspend bool `json:"suspend,omitempty"`
}

+k8s:deepcopy-gen=true

func (*PluginScanStatus) DeepCopy

func (in *PluginScanStatus) DeepCopy() *PluginScanStatus

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

func (*PluginScanStatus) DeepCopyInto

func (in *PluginScanStatus) DeepCopyInto(out *PluginScanStatus)

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

type PluginSpec

type PluginSpec struct {
	// Docker image name.
	// More info: https://kubernetes.io/docs/concepts/containers/images
	Image string `json:"image"`

	// Entrypoint array. Not executed within a shell.
	// The docker image's ENTRYPOINT is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
	// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
	// produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
	// of whether the variable exists or not. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	Command []string `json:"command,omitempty"`

	// Arguments to the entrypoint.
	// The docker image's CMD is used if this is not provided.
	// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
	// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
	// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
	// produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
	// of whether the variable exists or not. Cannot be updated.
	// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
	Args []string `json:"args,omitempty"`

	// List of sources to populate environment variables in the container.
	// The keys defined within a source must be a C_IDENTIFIER. All invalid keys
	// will be reported as an event when the container is starting. When a key exists in multiple
	// sources, the value associated with the last source will take precedence.
	// Values defined by an Env with a duplicate key will take precedence.
	// Cannot be updated.
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

	// List of environment variables to set in the container.
	// Cannot be updated.
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Compute Resources required by this container.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Image pull policy.
	// One of Always, Never, IfNotPresent.
	// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
	// Cannot be updated.
	// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

PluginSpec defines the desired state of Plugin

func (*PluginSpec) DeepCopy

func (in *PluginSpec) DeepCopy() *PluginSpec

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

func (*PluginSpec) DeepCopyInto

func (in *PluginSpec) DeepCopyInto(out *PluginSpec)

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

func (*PluginSpec) GetImagePullPolicy

func (in *PluginSpec) GetImagePullPolicy() corev1.PullPolicy

type PluginStatus

type PluginStatus struct {
}

PluginStatus defines the observed state of Plugin

func (*PluginStatus) DeepCopy

func (in *PluginStatus) DeepCopy() *PluginStatus

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

func (*PluginStatus) DeepCopyInto

func (in *PluginStatus) DeepCopyInto(out *PluginStatus)

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

type Schedule

type Schedule struct {
	// HourlyRep contains the hourly rate by which the scan will repeat.
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=23
	HourlyRep int `json:"hourlyRep,omitempty"`
	// DaysOfWeek stores the days of week in which the scan will execute. An
	// empty array indicates the entire week.
	// +kubebuilder:validation:MaxItems=7
	DaysOfWeek []DayOfWeek `json:"daysOfWeek,omitempty"`
	// StartTime holds the hour and minute in which the scan will start on its
	// first execution. The time should be specified in UTC.
	// +kubebuilder:validation:Pattern=`^(2[0-3]|[0-1]?[0-9]):[0-5]?[0-9]$`
	StartTime *string `json:"startTime,omitempty"`
}

Schedule represents a scan timetable with repetition and start time data.

func (*Schedule) CronExpr

func (r *Schedule) CronExpr() string

CronExpr transforms the scan schedule data on a Cron expression. If the receiver is nil, it'll return an empty string.

func (*Schedule) DayOfWeekSeries

func (r *Schedule) DayOfWeekSeries() string

DayOfWeekSeries prepares the days of week in which the scan will execute formatted as the week field of a Cron expression. If the receiver is nil, it'll return an empty string.

func (*Schedule) DeepCopy

func (in *Schedule) DeepCopy() *Schedule

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

func (*Schedule) DeepCopyInto

func (in *Schedule) DeepCopyInto(out *Schedule)

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

func (*Schedule) HourlyRepSeries

func (r *Schedule) HourlyRepSeries() string

HourlyRepSeries returns the scan's hourly scheduling formatted as the hour field of a Cron expression. If the receiver is nil, it'll return an empty string.

func (*Schedule) SplitStartTime

func (r *Schedule) SplitStartTime() (int, int)

SplitStartTime returns the hour and minute of the Schedule's start time entry, as integers. In case the field is not set or the receiver, it'll return the current hour and minute.

Jump to

Keyboard shortcuts

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