v1alpha1

package
v0.0.0-...-b4e7bf2 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0, MIT Imports: 18 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the opstrace v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=opstrace.com

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

Index

Constants

This section is empty.

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "opstrace.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 ClickHouseCRSpec

type ClickHouseCRSpec struct {
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// This spec is actually a copy of the one provided in Clickhouse operator with changes made for optional fields.
	// +optional
	Spec *ClickHouseSpec `json:"spec,omitempty"`
}

func (*ClickHouseCRSpec) DeepCopy

func (in *ClickHouseCRSpec) DeepCopy() *ClickHouseCRSpec

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

func (*ClickHouseCRSpec) DeepCopyInto

func (in *ClickHouseCRSpec) DeepCopyInto(out *ClickHouseCRSpec)

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

type ClickHouseComponentsSpec

type ClickHouseComponentsSpec struct {
	// +optional
	Service Service `json:"service,omitempty"`
	// +optional
	Deployment ClickHouseCRSpec `json:"deployment,omitempty"`
	// +optional
	ServiceMonitor ServiceMonitor `json:"serviceMonitor,omitempty"`
}

func (*ClickHouseComponentsSpec) DeepCopy

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

func (*ClickHouseComponentsSpec) DeepCopyInto

func (in *ClickHouseComponentsSpec) DeepCopyInto(out *ClickHouseComponentsSpec)

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

type ClickHouseOverridesSpec

type ClickHouseOverridesSpec struct {
	// +optional
	Components ClickHouseComponentsSpec `json:"components,omitempty"`

	// +optional
	ClickHouseCloudDSN *v1.SecretKeySelector `json:"clickHouseCloudDSN,omitempty"`
}

func (*ClickHouseOverridesSpec) DeepCopy

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

func (*ClickHouseOverridesSpec) DeepCopyInto

func (in *ClickHouseOverridesSpec) DeepCopyInto(out *ClickHouseOverridesSpec)

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

type ClickHouseSpec

type ClickHouseSpec struct {
	// Image is the ClickHouse docker image to be used for nodes.
	// +optional
	Image string `json:"image,omitempty"`

	// Replicas is the number of desired nodes to run.
	// The instance will always be deployed in distributed mode, even if replicas=1.
	// Optional to discriminate between explicit zero and not set.
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// ServerResourceRequirements is the description of resource requests & limits
	// for the ClickHouse server application container.
	// +optional
	ServerResourceRequirements *v1.ResourceRequirements `json:"resources,omitempty"`

	// StorageSize is the amount of block storage capacity to allocate per replica.
	// +optional
	StorageSize resource.Quantity `json:"storageSize,omitempty"`

	// NodeSelector applies pod template NodeSelector to the ClickHouse StatefulSets.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	// +mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Affinity has any restrictions on replica placement in the cluster.
	// This is copied through to the nodes.
	// +optional
	Affinity *v1.Affinity `json:"affinity,omitempty"`

	// Tolerations are optional pod template Tolerations for ClickHouse StatefulSets.
	// More info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
	// +optional
	Tolerations []v1.Toleration `json:"tolerations,omitempty"`

	// StorageClass is the storage class to use for data volumes
	// +optional
	StorageClass *string `json:"storageClass,omitempty"`

	// InternalSSL is a flag to enable ssl between server/clients of the Clickhouse deployment.
	// Defaults to false. Assumes that certmanager is installed in the cluster.
	// +optional
	// +kubebuilder:default=false
	InternalSSL *bool `json:"internalSSL,omitempty"`

	// AdminUsers contains one or more admin users (access_management=1) to create in the instance.
	// Additional non-admin users may be added via ClickHouse APIs using these credentials.
	// +optional
	AdminUsers []clickhousev1alpha1.ClickHouseAdmin `json:"adminUsers,omitempty"`

	// ObjectStorage is the configuration for the object storage that will be used by ClickHouse.
	// +optional
	ObjectStorage *clickhousev1alpha1.ClickHouseObjectStorage `json:"objectStorage,omitempty"`
}

ClickHouseSpec defines the desired state of ClickHouse. This is copied from gitlab.com/gitlab-org/opstrace/opstrace/clickhouse-operator/api/v1alpha1/clickhouse_types.go with changes made to have all fields optional with omitempty for overrides.

func (*ClickHouseSpec) DeepCopy

func (in *ClickHouseSpec) DeepCopy() *ClickHouseSpec

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

func (*ClickHouseSpec) DeepCopyInto

func (in *ClickHouseSpec) DeepCopyInto(out *ClickHouseSpec)

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

type Cluster

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

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

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:scope="Cluster" Cluster is the Schema for the Clusters API.

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) Namespace

func (c *Cluster) Namespace() string

Cluster is a cluster-scoped resource so this method returns the namespace for cluster resources to be deployed to.

type ClusterList

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

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:subresource:status 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 ClusterOverridesSpec

type ClusterOverridesSpec struct {
	// +optional
	ClickHouseOperator *KustomizeOverridesSpec `json:"clickhouseOperator"`
	// +optional
	ClickHouse ClickHouseOverridesSpec `json:"clickhouse"`
	// +optional
	JaegerOperator *KustomizeOverridesSpec `json:"jaegerOperator"`
	// +optional
	CertManager *KustomizeOverridesSpec `json:"certManager"`
	// +optional
	PrometheusOperator *KustomizeOverridesSpec `json:"prometheusOperator"`
	// +optional
	Prometheus *KustomizeOverridesSpec `json:"prometheus"`
	// +optional
	RedisOperator *KustomizeOverridesSpec `json:"redisOperator"`
	// +optional
	Redis *KustomizeOverridesSpec `json:"redis"`
	// +optional
	ExternalDNS *KustomizeOverridesSpec `json:"externalDNS"`
	// +optional
	Gatekeeper *KustomizeOverridesSpec `json:"gatekeeper"`
	// +optional
	IngressController *KustomizeOverridesSpec `json:"ingressController"`
	// +optional
	ErrorTrackingAPI *KustomizeOverridesSpec `json:"errorTrackingAPI"`
	// +optional
	Reloader *KustomizeOverridesSpec `json:"reloader"`
	// +optional
	Monitoring *KustomizeOverridesSpec `json:"monitoring"`
	// +optional
	Storage *KustomizeOverridesSpec `json:"storage"`
	// +optional
	TraceQueryAPI *KustomizeOverridesSpec `json:"traceQueryAPI"`
	// +optional
	ProvisioningAPI *KustomizeOverridesSpec `json:"provisioningAPI"`
	// +optional
	OpenTelemetryOperator *KustomizeOverridesSpec `json:"openTelemetryOperator"`
	// +optional
	QueryAPI *KustomizeOverridesSpec `json:"queryAPI"`
}

func (*ClusterOverridesSpec) DeepCopy

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

func (*ClusterOverridesSpec) DeepCopyInto

func (in *ClusterOverridesSpec) DeepCopyInto(out *ClusterOverridesSpec)

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

type ClusterSpec

type ClusterSpec struct {
	// Optional namespace for deploying cluster resources (tenants will still have separate namespaces).
	// Defaults to the default namespace
	// +optional
	Namespace string `json:"namespace"`
	// Target environment (aws, gcp, kind)
	Target common.EnvironmentTarget `json:"target"`
	// GitLab instance integration config
	GitLab GitLabSpec `json:"gitlab"`
	// Cluster-wide image pull secrets (NOTE: Not plumbed to all components yet)
	ImagePullSecrets []v1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// DNS configuration
	// +optional
	DNS DNSSpec `json:"dns"`
	// Set overrides for components and config
	// +optional
	Overrides ClusterOverridesSpec `json:"overrides"`
	// Setup features for cluster and its resources
	// +optional
	Features map[string]string `json:"features,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.

func (*ClusterSpec) GetHost

func (t *ClusterSpec) GetHost() string

return host part of domain. Returns the same value for gob.local or gob.local:9443

func (*ClusterSpec) GetHostURL

func (t *ClusterSpec) GetHostURL() string

func (*ClusterSpec) UseExternalDNS

func (t *ClusterSpec) UseExternalDNS() bool

check if we should configure externalDNS.

type ClusterStatus

type ClusterStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Inventory contains the list of Kubernetes resource object references that have been successfully applied.
	// +optional
	Inventory map[string]*v1beta2.ResourceInventory `json:"inventory,omitempty"`

	// LastMigrationApplied refers to the version of the migrations last applied successfully
	// +optional
	LastMigrationApplied *string `json:"lastMigrationApplied,omitempty"`

	// LastCloudMigrationApplied refers to version of the migrations last applied for cloud instance.
	// +optional
	LastCloudMigrationApplied *string `json:"lastCloudMigrationApplied,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.

type ComponentsSpec

type ComponentsSpec struct {
	// +optional
	Ingress Ingress `json:"ingress"`
	// +optional
	Service Service `json:"service"`
	// +optional
	Deployment Deployment `json:"deployment"`
	// +optional
	StatefulSet StatefulSet `json:"statefulset"`
	// +optional
	ServiceMonitor ServiceMonitor `json:"serviceMonitor"`
}

func (*ComponentsSpec) DeepCopy

func (in *ComponentsSpec) DeepCopy() *ComponentsSpec

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

func (*ComponentsSpec) DeepCopyInto

func (in *ComponentsSpec) DeepCopyInto(out *ComponentsSpec)

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

type DNSSpec

type DNSSpec struct {
	// Certificate Issuer (letsencrypt-prod or letsencrypt-staging)
	CertificateIssuer string `json:"certificateIssuer,omitempty"`
	// Cluster domain e.g. observe.gitlab.com
	Domain *string `json:"domain,omitempty"`
	// Used to configure a DNS01 challenge provider to be used when solving DNS01
	// challenges.
	// Only one DNS provider may be configured per solver.
	// +optional
	DNS01Challenge cmacme.ACMEChallengeSolverDNS01 `json:"dns01Challenge,omitempty"`
	// ACMEEmail is the email address to be associated with the ACME account.
	// It will be used to contact you in case of issues with your account or certificates,
	// including expiry notification emails. This field may be updated after the account is
	// initially registered
	// +optional
	ACMEEmail string `json:"acmeEmail,omitempty"`
	// ACMEServer is the URL used to access the ACME server's 'directory' endpoint.
	// For example, for Let's Encrypt's staging endpoint,
	// you would use: "https://acme-staging-v02.api.letsencrypt.org/directory".
	// Only ACME v2 endpoints (i.e. RFC 8555) are supported.
	ACMEserver *string `json:"acmeServer,omitempty"`
	// ExternalDNS provider config
	// +optional
	ExternalDNSProvider ExternalDNSProviderSpec `json:"externalDNSProvider,omitempty"`
	// GCPCertManagerServiceAccount is the service account for managing DNS on GCP.
	// This field is only relevant if the Domain specified is hosted in GCP.
	// +optional
	GCPCertManagerServiceAccount *string `json:"gcpCertManagerServiceAccount,omitempty"`
	// If specified and supported by the platform, this will restrict traffic through
	// the cloud-provider load-balancer will be restricted to the specified client IPs.
	// This field will be ignored if the cloud-provider does not support the feature."
	// More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
	// +optional
	FirewallSourceIPsAllowed []string `json:"firewallSourceIPsAllowed"`
}

func (*DNSSpec) DeepCopy

func (in *DNSSpec) DeepCopy() *DNSSpec

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

func (*DNSSpec) DeepCopyInto

func (in *DNSSpec) DeepCopyInto(out *DNSSpec)

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

type Deployment

type Deployment struct {
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Spec *DeploymentSpec `json:"spec,omitempty"`
}

Deployment provides a means to configure the deployment.

func (*Deployment) DeepCopy

func (in *Deployment) DeepCopy() *Deployment

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

func (*Deployment) DeepCopyInto

func (in *Deployment) DeepCopyInto(out *Deployment)

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

type DeploymentSpec

type DeploymentSpec struct {
	// Number of desired pods. This is a pointer to distinguish between explicit
	// zero and not specified. Defaults to 1.
	// +optional
	Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"`

	// Label selector for pods. Existing ReplicaSets whose pods are
	// selected by this will be the ones affected by this deployment.
	// It must match the pod template's labels.
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"`

	// Template describes the pods that will be created.
	// +optional
	Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"`

	// The deployment strategy to use to replace existing pods with new ones.
	// +optional
	// +patchStrategy=retainKeys
	Strategy appsv1.DeploymentStrategy `json:"strategy,omitempty" patchStrategy:"retainKeys" protobuf:"bytes,4,opt,name=strategy"`

	// Minimum number of seconds for which a newly created pod should be ready
	// without any of its container crashing, for it to be considered available.
	// Defaults to 0 (pod will be considered available as soon as it is ready)
	// +optional
	MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,5,opt,name=minReadySeconds"`

	// The number of old ReplicaSets to retain to allow rollback.
	// This is a pointer to distinguish between explicit zero and not specified.
	// Defaults to 10.
	// +optional
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,6,opt,name=revisionHistoryLimit"`

	// Indicates that the deployment is paused.
	// +optional
	Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"`

	// The maximum time in seconds for a deployment to make progress before it
	// is considered to be failed. The deployment controller will continue to
	// process failed deployments and a condition with a ProgressDeadlineExceeded
	// reason will be surfaced in the deployment status. Note that progress will
	// not be estimated during the time a deployment is paused. Defaults to 600s.
	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"`
}

////////////////////////////// Below is all copied from k8s.io/api/apps/v1 and changed all fields to be optional with omitempty for overrides. ///////////////////////////// DeploymentSpec is the specification of the desired behavior of the Deployment.

func (*DeploymentSpec) DeepCopy

func (in *DeploymentSpec) DeepCopy() *DeploymentSpec

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

func (*DeploymentSpec) DeepCopyInto

func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec)

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

type ExternalDNSCloudflareSpec

type ExternalDNSCloudflareSpec struct {
	// Reference to a Secret object containing auth credentials for your Cloudflare DNS setup
	// (see: https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#creating-cloudflare-credentials)
	CFAuthSecret v1.LocalObjectReference `json:"cloudflareSecret"`
	// Zone ID to restrict management to a specific zone
	// +optional
	ZoneID *string `json:"zoneId,omitempty"`
}

func (*ExternalDNSCloudflareSpec) DeepCopy

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

func (*ExternalDNSCloudflareSpec) DeepCopyInto

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

type ExternalDNSGCPSpec

type ExternalDNSGCPSpec struct {
	// Service account name in GCP IAM to use for managing dns zone
	DNSServiceAccountName string `json:"dnsServiceAccountName"`

	// ManagedZoneName is the name of the managed zone to use for DNS records.
	// If not specified, the zone name will be derived from the cluster domain.
	// +optional
	ManagedZoneName *string `json:"managedZoneName,omitempty"`
}

func (*ExternalDNSGCPSpec) DeepCopy

func (in *ExternalDNSGCPSpec) DeepCopy() *ExternalDNSGCPSpec

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

func (*ExternalDNSGCPSpec) DeepCopyInto

func (in *ExternalDNSGCPSpec) DeepCopyInto(out *ExternalDNSGCPSpec)

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

type ExternalDNSProviderSpec

type ExternalDNSProviderSpec struct {
	// +optional
	GCP *ExternalDNSGCPSpec `json:"gcp,omitempty"`
	// +optional
	Cloudflare *ExternalDNSCloudflareSpec `json:"cloudflare,omitempty"`
}

func (*ExternalDNSProviderSpec) DeepCopy

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

func (*ExternalDNSProviderSpec) DeepCopyInto

func (in *ExternalDNSProviderSpec) DeepCopyInto(out *ExternalDNSProviderSpec)

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

type GeneralOverridesSpec

type GeneralOverridesSpec struct {
	// +optional
	Components ComponentsSpec `json:"components"`
}

func (*GeneralOverridesSpec) DeepCopy

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

func (*GeneralOverridesSpec) DeepCopyInto

func (in *GeneralOverridesSpec) DeepCopyInto(out *GeneralOverridesSpec)

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

type GitLabNamespace

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

	Spec   GitLabNamespaceSpec   `json:"spec,omitempty"`
	Status GitLabNamespaceStatus `json:"status,omitempty"`
}

GitLabNamespace is the Schema for the gitlabnamespaces API.

func (*GitLabNamespace) DeepCopy

func (in *GitLabNamespace) DeepCopy() *GitLabNamespace

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

func (*GitLabNamespace) DeepCopyInto

func (in *GitLabNamespace) DeepCopyInto(out *GitLabNamespace)

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

func (*GitLabNamespace) DeepCopyObject

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

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

func (*GitLabNamespace) IsTopLevel

func (c *GitLabNamespace) IsTopLevel() bool

Returns true if this namespace represents the toplevel/root namespace, i.e. this group is equivalent to the tenant.

func (*GitLabNamespace) Namespace

func (c *GitLabNamespace) Namespace() string

We create a Kubernetes namespace that maps to the top level GitLab namespace.

type GitLabNamespaceList

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

GitLabNamespaceList contains a list of GitLabNamespace.

func (*GitLabNamespaceList) DeepCopy

func (in *GitLabNamespaceList) DeepCopy() *GitLabNamespaceList

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

func (*GitLabNamespaceList) DeepCopyInto

func (in *GitLabNamespaceList) DeepCopyInto(out *GitLabNamespaceList)

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

func (*GitLabNamespaceList) DeepCopyObject

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

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

type GitLabNamespaceSpec

type GitLabNamespaceSpec struct {
	ID int64 `json:"id"`
	// The top level namespace in GitLab
	TopLevelNamespaceID int64  `json:"top_level_namespace_id"`
	Name                string `json:"name"`
	Path                string `json:"path"`
	FullPath            string `json:"full_path"`
	AvatarURL           string `json:"avatar_url"`
	WebURL              string `json:"web_url"`
	// Set overrides for components and config
	// +optional
	Overrides TenantOverridesSpec `json:"overrides"`
	// Setup features for group and its resources
	// +optional
	Features map[string]string `json:"features,omitempty"`
}

GitLabNamespaceSpec defines the desired state of GitLabNamespace.

func (*GitLabNamespaceSpec) DeepCopy

func (in *GitLabNamespaceSpec) DeepCopy() *GitLabNamespaceSpec

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

func (*GitLabNamespaceSpec) DeepCopyInto

func (in *GitLabNamespaceSpec) DeepCopyInto(out *GitLabNamespaceSpec)

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

type GitLabNamespaceStatus

type GitLabNamespaceStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Inventory contains the list of Kubernetes resource object references that have been successfully applied.
	// +optional
	Inventory map[string]*v1beta2.ResourceInventory `json:"inventory,omitempty"`
}

GitLabNamespaceStatus defines the observed state of GitLabNamespace.

func (*GitLabNamespaceStatus) DeepCopy

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

func (*GitLabNamespaceStatus) DeepCopyInto

func (in *GitLabNamespaceStatus) DeepCopyInto(out *GitLabNamespaceStatus)

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

type GitLabObservabilityTenant

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

	Spec   GitLabObservabilityTenantSpec   `json:"spec,omitempty"`
	Status GitLabObservabilityTenantStatus `json:"status,omitempty"`
}

GitLabObservabilityTenant is the Schema for the GitLabObservabilityTenants API.

func (*GitLabObservabilityTenant) DeepCopy

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

func (*GitLabObservabilityTenant) DeepCopyInto

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

func (*GitLabObservabilityTenant) DeepCopyObject

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

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

func (*GitLabObservabilityTenant) Namespace

func (t *GitLabObservabilityTenant) Namespace() string

type GitLabObservabilityTenantList

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

GitLabObservabilityTenantList contains a list of GitLabObservabilityTenant.

func (*GitLabObservabilityTenantList) DeepCopy

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

func (*GitLabObservabilityTenantList) DeepCopyInto

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

func (*GitLabObservabilityTenantList) DeepCopyObject

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

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

type GitLabObservabilityTenantOverridesSpec

type GitLabObservabilityTenantOverridesSpec struct {
	// +optional
	OTELCollector *KustomizeOverridesSpec `json:"otelcollector,omitempty"`
}

func (*GitLabObservabilityTenantOverridesSpec) DeepCopy

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

func (*GitLabObservabilityTenantOverridesSpec) DeepCopyInto

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

type GitLabObservabilityTenantSpec

type GitLabObservabilityTenantSpec struct {
	// top level namespace in GitLab to which this tenant belongs
	TopLevelNamespaceID int64 `json:"topLevelNamespaceID"`
	// cluster to which this tenant belongs
	// +optional
	Cluster *string `json:"cluster,omitempty"`
	// set overrides for all tenant components and their configuration
	// +optional
	Overrides GitLabObservabilityTenantOverridesSpec `json:"overrides,omitempty"`
}

func (*GitLabObservabilityTenantSpec) DeepCopy

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

func (*GitLabObservabilityTenantSpec) DeepCopyInto

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

type GitLabObservabilityTenantStatus

type GitLabObservabilityTenantStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// Inventory contains the list of Kubernetes resource object references that have been successfully applied.
	// +optional
	Inventory map[string]*v1beta2.ResourceInventory `json:"inventory,omitempty"`
}

func (*GitLabObservabilityTenantStatus) DeepCopy

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

func (*GitLabObservabilityTenantStatus) DeepCopyInto

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

type GitLabSpec

type GitLabSpec struct {
	InstanceURL string                  `json:"instanceUrl"`
	AuthSecret  v1.LocalObjectReference `json:"authSecret"`
}

func (*GitLabSpec) DeepCopy

func (in *GitLabSpec) DeepCopy() *GitLabSpec

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

func (*GitLabSpec) DeepCopyInto

func (in *GitLabSpec) DeepCopyInto(out *GitLabSpec)

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

func (*GitLabSpec) TrimInstanceURL

func (g *GitLabSpec) TrimInstanceURL() string

Trims trailing slash from InstanceURL

type Ingress

type Ingress struct {
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Spec *netv1.IngressSpec `json:"spec,omitempty"`
}

Ingress provides a means to configure the ingress created.

func (*Ingress) DeepCopy

func (in *Ingress) DeepCopy() *Ingress

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

func (*Ingress) DeepCopyInto

func (in *Ingress) DeepCopyInto(out *Ingress)

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

type KustomizeOverridesSpec

type KustomizeOverridesSpec struct {
	// CommonLabels to add to all objects and selectors.
	CommonLabels map[string]string `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`

	// Labels to add to all objects but not selectors. Follows schema of
	// sigs.k8s.io/kustomize/api/types/labels.Label
	Labels []types.Label `json:"labels,omitempty" yaml:"labels,omitempty"`

	// CommonAnnotations to add to all objects.
	CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`

	// Patches is a list of patches, where each one can be either a
	// Strategic Merge Patch or a JSON patch.
	// Each patch can be applied to multiple target objects.
	Patches []types.Patch `json:"patches,omitempty" yaml:"patches,omitempty"`

	// Images is a list of (image name, new name, new tag or digest)
	// for changing image names, tags or digests. This can also be achieved with a
	// patch, but this operator is simpler to specify.
	Images []types.Image `json:"images,omitempty" yaml:"images,omitempty"`

	// Replicas is a list of {resourcename, count} that allows for simpler replica
	// specification. This can also be done with a patch.
	Replicas []types.Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`
}

func (*KustomizeOverridesSpec) DeepCopy

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

func (*KustomizeOverridesSpec) DeepCopyInto

func (in *KustomizeOverridesSpec) DeepCopyInto(out *KustomizeOverridesSpec)

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

type LogLevel

type LogLevel string

LogLevel defines verbosity for cluster wide logging. Supported values are "info", "warn", "debug", "error". Default is "info" +kubebuilder:validation:Enum=trace;debug;error;warn;info

type ProjectConfig

type ProjectConfig struct {
	metav1.TypeMeta `json:",inline"`

	// ControllerManagerConfigurationSpec returns the configurations for controllers
	cfg.ControllerManagerConfigurationSpec `json:",inline"`
	// Set Log level, default is "info"
	// +optional
	LogLevel LogLevel `json:"logLevel"`
}

ProjectConfig is the Schema for the projectconfigs API +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true

func (*ProjectConfig) DeepCopy

func (in *ProjectConfig) DeepCopy() *ProjectConfig

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

func (*ProjectConfig) DeepCopyInto

func (in *ProjectConfig) DeepCopyInto(out *ProjectConfig)

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

func (*ProjectConfig) DeepCopyObject

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

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

type Service

type Service struct {
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Spec *v1.ServiceSpec `json:"spec,omitempty"`
}

Service provides a means to configure the service.

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

type ServiceMonitor

type ServiceMonitor struct {
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Spec *ServiceMonitorSpec `json:"spec,omitempty"`
}

func (*ServiceMonitor) DeepCopy

func (in *ServiceMonitor) DeepCopy() *ServiceMonitor

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

func (*ServiceMonitor) DeepCopyInto

func (in *ServiceMonitor) DeepCopyInto(out *ServiceMonitor)

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

type ServiceMonitorSpec

type ServiceMonitorSpec struct {
	// Chooses the label of the Kubernetes `Endpoints`.
	// Its value will be used for the `job`-label's value of the created metrics.
	//
	// Default & fallback value: the name of the respective Kubernetes `Endpoint`.
	// +optional
	JobLabel string `json:"jobLabel,omitempty"`
	// TargetLabels transfers labels from the Kubernetes `Service` onto the created metrics.
	// +optional
	TargetLabels []string `json:"targetLabels,omitempty"`
	// PodTargetLabels transfers labels on the Kubernetes `Pod` onto the created metrics.
	// +optional
	PodTargetLabels []string `json:"podTargetLabels,omitempty"`
	// A list of endpoints allowed as part of this ServiceMonitor.
	// +optional
	Endpoints []monitoring.Endpoint `json:"endpoints,omitempty"`
	// Selector to select Endpoints objects.
	// +optional
	Selector metav1.LabelSelector `json:"selector,omitempty"`
	// Selector to select which namespaces the Kubernetes Endpoints objects are discovered from.
	// +optional
	NamespaceSelector monitoring.NamespaceSelector `json:"namespaceSelector,omitempty"`
	// SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
	// +optional
	SampleLimit uint64 `json:"sampleLimit,omitempty"`
	// TargetLimit defines a limit on the number of scraped targets that will be accepted.
	// +optional
	TargetLimit uint64 `json:"targetLimit,omitempty"`
	// Per-scrape limit on number of labels that will be accepted for a sample.
	// Only valid in Prometheus versions 2.27.0 and newer.
	// +optional
	LabelLimit uint64 `json:"labelLimit,omitempty"`
	// Per-scrape limit on length of labels name that will be accepted for a sample.
	// Only valid in Prometheus versions 2.27.0 and newer.
	// +optional
	LabelNameLengthLimit uint64 `json:"labelNameLengthLimit,omitempty"`
	// Per-scrape limit on length of labels value that will be accepted for a sample.
	// Only valid in Prometheus versions 2.27.0 and newer.
	// +optional
	LabelValueLengthLimit uint64 `json:"labelValueLengthLimit,omitempty"`
}

////////////////////////////// Below is all copied from github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1 and changed all fields to be optional with omitempty for overrides. ///////////////////////////// ServiceMonitorSpec contains specification parameters for a ServiceMonitor.

func (*ServiceMonitorSpec) DeepCopy

func (in *ServiceMonitorSpec) DeepCopy() *ServiceMonitorSpec

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

func (*ServiceMonitorSpec) DeepCopyInto

func (in *ServiceMonitorSpec) DeepCopyInto(out *ServiceMonitorSpec)

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

type StatefulSet

type StatefulSet struct {
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// +optional
	Spec *StatefulSetSpec `json:"spec,omitempty"`
}

StatefulSet provides a means to configure the deployment.

func (*StatefulSet) DeepCopy

func (in *StatefulSet) DeepCopy() *StatefulSet

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

func (*StatefulSet) DeepCopyInto

func (in *StatefulSet) DeepCopyInto(out *StatefulSet)

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

type StatefulSetSpec

type StatefulSetSpec struct {
	// replicas is the desired number of replicas of the given Template.
	// These are replicas in the sense that they are instantiations of the
	// same Template, but individual replicas also have a consistent identity.
	// If unspecified, defaults to 1.
	// TODO: Consider a rename of this field.
	// +optional
	Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"`

	// selector is a label query over pods that should match the replica count.
	// It must match the pod template's labels.
	// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
	// +optional
	Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"`

	// template is the object that describes the pod that will be created if
	// insufficient replicas are detected. Each pod stamped out by the StatefulSet
	// will fulfill this Template, but have a unique identity from the rest
	// of the StatefulSet.
	// +optional
	Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"`

	// volumeClaimTemplates is a list of claims that pods are allowed to reference.
	// The StatefulSet controller is responsible for mapping network identities to
	// claims in a way that maintains the identity of a pod. Every claim in
	// this list must have at least one matching (by name) volumeMount in one
	// container in the template. A claim in this list takes precedence over
	// any volumes in the template, with the same name.
	// TODO: Define the behavior if a claim already exists with the same name.
	// +optional
	VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty" protobuf:"bytes,4,rep,name=volumeClaimTemplates"`

	// serviceName is the name of the service that governs this StatefulSet.
	// This service must exist before the StatefulSet, and is responsible for
	// the network identity of the set. Pods get DNS/hostnames that follow the
	// pattern: pod-specific-string.serviceName.default.svc.cluster.local
	// where "pod-specific-string" is managed by the StatefulSet controller.
	// +optional
	ServiceName string `json:"serviceName" protobuf:"bytes,5,opt,name=serviceName"`

	// podManagementPolicy controls how pods are created during initial scale up,
	// when replacing pods on nodes, or when scaling down. The default policy is
	// `OrderedReady`, where pods are created in increasing order (pod-0, then
	// pod-1, etc) and the controller will wait until each pod is ready before
	// continuing. When scaling down, the pods are removed in the opposite order.
	// The alternative policy is `Parallel` which will create pods in parallel
	// to match the desired scale without waiting, and on scale down will delete
	// all pods at once.
	// +optional
	PodManagementPolicy appsv1.PodManagementPolicyType `json:"podManagementPolicy,omitempty" protobuf:"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType"`

	// updateStrategy indicates the StatefulSetUpdateStrategy that will be
	// employed to update Pods in the StatefulSet when a revision is made to
	// Template.
	// +optional
	UpdateStrategy appsv1.StatefulSetUpdateStrategy `json:"updateStrategy,omitempty" protobuf:"bytes,7,opt,name=updateStrategy"`

	// revisionHistoryLimit is the maximum number of revisions that will
	// be maintained in the StatefulSet's revision history. The revision history
	// consists of all revisions not represented by a currently applied
	// StatefulSetSpec version. The default value is 10.
	// +optional
	RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,8,opt,name=revisionHistoryLimit"`

	// Minimum number of seconds for which a newly created pod should be ready
	// without any of its container crashing for it to be considered available.
	// Defaults to 0 (pod will be considered available as soon as it is ready)
	// This is an alpha field and requires enabling StatefulSetMinReadySeconds feature gate.
	// +optional
	MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,9,opt,name=minReadySeconds"`

	// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent
	// volume claims created from volumeClaimTemplates. By default, all persistent
	// volume claims are created as needed and retained until manually deleted. This
	// policy allows the lifecycle to be altered, for example by deleting persistent
	// volume claims when their stateful set is deleted, or when their pod is scaled
	// down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled,
	// which is alpha.  +optional
	PersistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy `json:"persistentVolumeClaimRetentionPolicy,omitempty" protobuf:"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy"`
}

A StatefulSetSpec is the specification of a StatefulSet.

func (*StatefulSetSpec) DeepCopy

func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec

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

func (*StatefulSetSpec) DeepCopyInto

func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec)

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

type TenantOverridesSpec

type TenantOverridesSpec struct {
	// +optional
	Operator GeneralOverridesSpec `json:"operator"`
}

func (*TenantOverridesSpec) DeepCopy

func (in *TenantOverridesSpec) DeepCopy() *TenantOverridesSpec

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

func (*TenantOverridesSpec) DeepCopyInto

func (in *TenantOverridesSpec) DeepCopyInto(out *TenantOverridesSpec)

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