v1alpha1

package
v0.0.0-...-dfbf655 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2025 License: AGPL-3.0, Apache-2.0, MIT Imports: 21 Imported by: 1

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the deployments v1alpha1 API group +kubebuilder:object:generate=true +groupName=deployments.plural.sh

Index

Constants

View Source
const (
	RequeueDefault = 30 * time.Minute
	WaitDefault    = 30 * time.Second
)
View Source
const (
	// GroupName uniquely identifies this API group
	GroupName = "deployments.plural.sh"
)

Variables

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

func Jitter

func Jitter(t time.Duration) time.Duration

Jitter adds a random jitter to the given duration. This helps to avoid thundering herd problems when multiple resources are reconciled at the same time. The jitter is calculated as a random value between 50% and 150% of the given duration.

Types

type AIProviderSettings

type AIProviderSettings struct {
	// Model is the LLM model name to use.
	//
	// +kubebuilder:validation:Optional
	Model *string `json:"model,omitempty"`

	// ToolModel to use for tool calling, which is less frequent and often requires more advanced reasoning
	//
	// +kubebuilder:validation:Optional
	ToolModel *string `json:"toolModel,omitempty"`

	// EmbeddingModel to use for generating embeddings
	//
	// +kubebuilder:validation:Optional
	EmbeddingModel *string `json:"embeddingModel,omitempty"`

	// BaseUrl is a custom base url to use, for reimplementations
	// of the same API scheme (for instance Together.ai uses the OpenAI API spec)
	//
	// +kubebuilder:validation:Optional
	BaseUrl *string `json:"baseUrl,omitempty"`

	// TokenSecretRef is a reference to the local secret holding the token to access
	// the configured AI provider.
	//
	// +kubebuilder:validation:Required
	TokenSecretRef corev1.SecretKeySelector `json:"tokenSecretRef"`
}

func (*AIProviderSettings) DeepCopy

func (in *AIProviderSettings) DeepCopy() *AIProviderSettings

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

func (*AIProviderSettings) DeepCopyInto

func (in *AIProviderSettings) DeepCopyInto(out *AIProviderSettings)

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

func (*AIProviderSettings) Token

func (in *AIProviderSettings) Token(ctx context.Context, c client.Client, namespace string) (string, error)

type AISettings

type AISettings struct {
	// Enabled defines whether to enable the AI integration or not.
	//
	// +kubebuilder:default=false
	// +kubebuilder:validation:Optional
	Enabled *bool `json:"enabled,omitempty"`

	// Configure the pace at which AI insight analysis should run. Useful if you want to minimize impacts on inference costs.
	//
	// +kubebuilder:validation:Optional
	AnalysisRates *AnalysisRates `json:"analysisRates,omitempty"`

	// Tools holds the configuration for the tools that can be used with the AI integration.
	//
	// +kubebuilder:validation:Optional
	Tools *Tools `json:"tools,omitempty"`

	// Provider defines which of the supported LLM providers should be used.
	//
	// +kubebuilder:validation:Enum=OPENAI;ANTHROPIC;OLLAMA;AZURE;BEDROCK;VERTEX
	// +kubebuilder:default=OPENAI
	// +kubebuilder:validation:Optional
	Provider *console.AiProvider `json:"provider,omitempty"`

	// ToolProvider to use for tool calling, in case you want to use a different LLM more optimized to those tasks
	//
	// +kubebuilder:validation:Enum=OPENAI;ANTHROPIC;OLLAMA;AZURE;BEDROCK;VERTEX
	// +kubebuilder:validation:Optional
	ToolProvider *console.AiProvider `json:"toolProvider,omitempty"`

	// EmbeddingProvider to use for generating embeddings. Oftentimes foundational
	// model providers do not have embeddings models, and it's better to simply use OpenAI.
	//
	// +kubebuilder:validation:Enum=OPENAI;ANTHROPIC;OLLAMA;AZURE;BEDROCK;VERTEX
	// +kubebuilder:validation:Optional
	EmbeddingProvider *console.AiProvider `json:"embeddingProvider,omitempty"`

	// OpenAI holds the OpenAI provider configuration.
	//
	// +kubebuilder:validation:Optional
	OpenAI *AIProviderSettings `json:"openAI,omitempty"`

	// Anthropic holds the Anthropic provider configuration.
	//
	// +kubebuilder:validation:Optional
	Anthropic *AIProviderSettings `json:"anthropic,omitempty"`

	// Ollama holds configuration for a self-hosted Ollama deployment,
	// more details available at https://github.com/ollama/ollama
	//
	// +kubebuilder:validation:Optional
	Ollama *OllamaSettings `json:"ollama,omitempty"`

	// Azure holds configuration for using AzureOpenAI to generate LLM insights
	//
	// +kubebuilder:validation:Optional
	Azure *AzureOpenAISettings `json:"azure,omitempty"`

	// Bedrock holds configuration for using AWS Bedrock to generate LLM insights
	//
	// +kubebuilder:validation:Optional
	Bedrock *BedrockSettings `json:"bedrock,omitempty"`

	// Vertex holds configuration for using GCP VertexAI to generate LLM insights
	//
	// +kubebuilder:validation:Optional
	Vertex *VertexSettings `json:"vertex,omitempty"`

	// VectorStore holds configuration for using a vector store to store embeddings.
	//
	// +kubebuilder:validation:Optional
	VectorStore *VectorStore `json:"vectorStore,omitempty"`

	// Configuration for the cloud graph store, which uses similar datastores to the vector store.
	//
	// +kubebuilder:validation:Optional
	Graph *GraphStore `json:"graph,omitempty"`
}

AISettings holds the configuration for LLM provider clients.

func (*AISettings) Attributes

func (in *AISettings) Attributes(ctx context.Context, c client.Client, namespace string) (*console.AiSettingsAttributes, error)

func (*AISettings) DeepCopy

func (in *AISettings) DeepCopy() *AISettings

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

func (*AISettings) DeepCopyInto

func (in *AISettings) DeepCopyInto(out *AISettings)

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

type AWSCloudConnection

type AWSCloudConnection struct {
	AccessKeyId     string             `json:"accessKeyId"`
	SecretAccessKey ObjectKeyReference `json:"secretAccessKey"`

	// The region this connection applies to
	// +kubebuilder:validation:Optional
	Region *string `json:"region"`

	// A list of regions this connection can query
	// +kubebuilder:validation:Optional
	Regions []string `json:"regions"`
}

AWSCloudConnection contains AWS-specific authentication configuration. Enables cloud resource discovery and analysis across AWS resources and infrastructure.

func (*AWSCloudConnection) DeepCopy

func (in *AWSCloudConnection) DeepCopy() *AWSCloudConnection

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

func (*AWSCloudConnection) DeepCopyInto

func (in *AWSCloudConnection) DeepCopyInto(out *AWSCloudConnection)

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

type AiApprovalConfiguration

type AiApprovalConfiguration struct {
	// Enabled indicates if AI approval is enabled for this stack.
	// +kubebuilder:validation:Required
	Enabled bool `json:"enabled,omitempty"`

	// Git references the Git repository containing the rules file.
	// +kubebuilder:validation:Required
	Git GitRef `json:"git"`

	// File is the name of the rules file within the Git repository.
	// +kubebuilder:validation:Required
	File string `json:"file"`

	// IgnoreCancel indicates if the cancellation of a stack run should be ignored by AI.
	// +kubebuilder:validation:Optional
	IgnoreCancel *bool `json:"ignoreCancel,omitempty"`
}

func (*AiApprovalConfiguration) Attributes

func (*AiApprovalConfiguration) DeepCopy

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

func (*AiApprovalConfiguration) DeepCopyInto

func (in *AiApprovalConfiguration) DeepCopyInto(out *AiApprovalConfiguration)

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

type AnalysisRates

type AnalysisRates struct {
	// Fast is the rate in seconds for fast analysis, eg when the prompt used has seen a material change. Example 1h
	//
	// +kubebuilder:validation:Optional
	Fast *string `json:"fast,omitempty"`

	// Slow is the rate in seconds for slow analysis, eg when the prompt used has not seen a material change. Example 2h
	//
	// +kubebuilder:validation:Optional
	Slow *string `json:"slow,omitempty"`
}

func (*AnalysisRates) Attributes

func (in *AnalysisRates) Attributes() (*console.AnalysisRatesAttributes, error)

func (*AnalysisRates) DeepCopy

func (in *AnalysisRates) DeepCopy() *AnalysisRates

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

func (*AnalysisRates) DeepCopyInto

func (in *AnalysisRates) DeepCopyInto(out *AnalysisRates)

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

type AnsibleConfiguration

type AnsibleConfiguration struct {
	// Playbook is the ansible playbook to run.
	// +kubebuilder:validation:Optional
	Playbook *string `json:"playbook,omitempty"`

	// Inventory is the ansible inventory file to use.  We recommend checking this into git alongside your playbook files, and referencing it with a relative path.
	// +kubebuilder:validation:Optional
	Inventory *string `json:"inventory,omitempty"`

	// Additional args for the ansible playbook command.
	// +kubebuilder:validation:Optional
	AdditionalArgs []*string `json:"additionalArgs,omitempty"`
}

func (*AnsibleConfiguration) DeepCopy

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

func (*AnsibleConfiguration) DeepCopyInto

func (in *AnsibleConfiguration) DeepCopyInto(out *AnsibleConfiguration)

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

type AuthAttributesGetter

type AuthAttributesGetter func(context.Context, HelmRepository) (*console.HelmAuthAttributes, error)

AuthAttributesGetter is a helper function interface that can be implemented to properly build Console API attributes for Helm repository authentication. It takes a context and HelmRepository and returns the authentication attributes needed for Console API integration, allowing for dynamic credential resolution at runtime. +kubebuilder:object:generate:=false

type AzureCloudConnection

type AzureCloudConnection struct {
	SubscriptionId string             `json:"subscriptionId"`
	TenantId       string             `json:"tenantId"`
	ClientId       string             `json:"clientId"`
	ClientSecret   ObjectKeyReference `json:"clientSecret"`
}

AzureCloudConnection contains Microsoft Azure authentication configuration. Provides credentials for discovering and querying Azure resources.

func (*AzureCloudConnection) DeepCopy

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

func (*AzureCloudConnection) DeepCopyInto

func (in *AzureCloudConnection) DeepCopyInto(out *AzureCloudConnection)

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

type AzureDevopsSettings

type AzureDevopsSettings struct {
	// The username to use for azure devops, it should be associated with the PAT you are supplying as the tokenSecretRef
	Username string `json:"username"`
	// The organization to use for azure devops
	Organization string `json:"organization"`
	// The project to use for azure devops
	Project string `json:"project"`
}

func (*AzureDevopsSettings) DeepCopy

func (in *AzureDevopsSettings) DeepCopy() *AzureDevopsSettings

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

func (*AzureDevopsSettings) DeepCopyInto

func (in *AzureDevopsSettings) DeepCopyInto(out *AzureDevopsSettings)

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

type AzureOpenAISettings

type AzureOpenAISettings struct {
	// Endpoint is your Azure OpenAI endpoint,
	// should be formatted like: https://{endpoint}/openai/deployments/{deployment-id}"
	//
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// The azure openai Data plane - inference api version to use,
	// defaults to 2024-10-01-preview or the latest available
	//
	// +kubebuilder:validation:Optional
	ApiVersion *string `json:"apiVersion,omitempty"`

	// Model - the OpenAi model you wish to use. If not specified, Plural will provide a default.
	//
	// +kubebuilder:validation:Optional
	Model *string `json:"model,omitempty"`

	// ToolModel to use for tool calling, which is less frequent and often requires more advanced reasoning.
	//
	// +kubebuilder:validation:Optional
	ToolModel *string `json:"toolModel,omitempty"`

	// EmbeddingModel to use for generating embeddings.
	//
	// +kubebuilder:validation:Optional
	EmbeddingModel *string `json:"embeddingModel,omitempty"`

	// TokenSecretRef is a reference to the local secret holding the token to access
	// the configured AI provider.
	//
	// +kubebuilder:validation:Required
	TokenSecretRef corev1.SecretKeySelector `json:"tokenSecretRef"`
}

func (*AzureOpenAISettings) DeepCopy

func (in *AzureOpenAISettings) DeepCopy() *AzureOpenAISettings

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

func (*AzureOpenAISettings) DeepCopyInto

func (in *AzureOpenAISettings) DeepCopyInto(out *AzureOpenAISettings)

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

func (*AzureOpenAISettings) Token

func (in *AzureOpenAISettings) Token(ctx context.Context, c client.Client, namespace string) (string, error)

type BedrockSettings

type BedrockSettings struct {
	// ModelID is the AWS Bedrock Model ID to use.  This will use the openai compatible endpoint, so the model id must be supported.
	//
	// +kubebuilder:validation:Required
	ModelID string `json:"modelId"`

	// ToolModelId to use for tool calling, which is less frequent and often requires more advanced reasoning
	//
	// +kubebuilder:validation:Optional
	ToolModelId *string `json:"toolModelId,omitempty"`

	// EmbeddingModel to use for generating embeddings
	//
	// +kubebuilder:validation:Optional
	EmbeddingModel *string `json:"embeddingModel,omitempty"`

	// Region is the AWS region the model is hosted in
	//
	// +kubebuilder:validation:Required
	Region string `json:"region"`

	// TokenSecretRef is a reference to the local secret holding the token to access
	// the configured AI provider.
	//
	// +kubebuilder:validation:Required
	TokenSecretRef corev1.SecretKeySelector `json:"tokenSecretRef,omitempty"`
}

func (*BedrockSettings) DeepCopy

func (in *BedrockSettings) DeepCopy() *BedrockSettings

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

func (*BedrockSettings) DeepCopyInto

func (in *BedrockSettings) DeepCopyInto(out *BedrockSettings)

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

func (*BedrockSettings) Token

func (in *BedrockSettings) Token(ctx context.Context, c client.Client, namespace string) (string, error)

type Binding

type Binding struct {
	// ID of a binding.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	ID *string `json:"id,omitempty"`

	// +kubebuilder:validation:Optional
	UserID *string `json:"UserID,omitempty"`

	// +kubebuilder:validation:Optional
	UserEmail *string `json:"userEmail,omitempty"`

	// +kubebuilder:validation:Optional
	GroupID *string `json:"groupID,omitempty"`

	// +kubebuilder:validation:Optional
	GroupName *string `json:"groupName,omitempty"`
}

Binding used to assign permissions to a resource for a user or a group in the system.

func (*Binding) DeepCopy

func (in *Binding) DeepCopy() *Binding

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

func (*Binding) DeepCopyInto

func (in *Binding) DeepCopyInto(out *Binding)

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

type Bindings

type Bindings struct {
	// Read bindings.
	// +kubebuilder:validation:Optional
	Read []Binding `json:"read,omitempty"`

	// Write bindings.
	// +kubebuilder:validation:Optional
	Write []Binding `json:"write,omitempty"`
}

Bindings used to assign read and write permissions to a resource for users and groups in the system.

func (*Bindings) DeepCopy

func (in *Bindings) DeepCopy() *Bindings

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

func (*Bindings) DeepCopyInto

func (in *Bindings) DeepCopyInto(out *Bindings)

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

type BindingsTemplate

type BindingsTemplate struct {
	// Read bindings.
	// +kubebuilder:validation:Optional
	Read *string `json:"read,omitempty"`

	// Write bindings.
	// +kubebuilder:validation:Optional
	Write *string `json:"write,omitempty"`
}

func (*BindingsTemplate) DeepCopy

func (in *BindingsTemplate) DeepCopy() *BindingsTemplate

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

func (*BindingsTemplate) DeepCopyInto

func (in *BindingsTemplate) DeepCopyInto(out *BindingsTemplate)

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

type BootstrapToken

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

	Spec   BootstrapTokenSpec `json:"spec,omitempty"`
	Status Status             `json:"status,omitempty"`
}

BootstrapToken is a restricted authentication token for secure cluster registration. It enables edge devices and new clusters to self-register with the Plural Console without exposing full user credentials. The token is scope-limited to cluster registration operations only and automatically assigns registered clusters to a specified project.

func (*BootstrapToken) ConsoleID

func (in *BootstrapToken) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*BootstrapToken) DeepCopy

func (in *BootstrapToken) DeepCopy() *BootstrapToken

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

func (*BootstrapToken) DeepCopyInto

func (in *BootstrapToken) DeepCopyInto(out *BootstrapToken)

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

func (*BootstrapToken) DeepCopyObject

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

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

func (*BootstrapToken) SetCondition

func (in *BootstrapToken) SetCondition(condition metav1.Condition)

type BootstrapTokenList

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

BootstrapTokenList contains a list of BootstrapToken resources.

func (*BootstrapTokenList) DeepCopy

func (in *BootstrapTokenList) DeepCopy() *BootstrapTokenList

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

func (*BootstrapTokenList) DeepCopyInto

func (in *BootstrapTokenList) DeepCopyInto(out *BootstrapTokenList)

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

func (*BootstrapTokenList) DeepCopyObject

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

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

type BootstrapTokenSpec

type BootstrapTokenSpec struct {
	// User is an optional email to attribute bootstrap token operations in audit logs.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="User is immutable"
	// +kubebuilder:validation:Optional
	User *string `json:"user,omitempty"`

	// ProjectRef is the project that all clusters registered with this token will belong to.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Project is immutable"
	// +kubebuilder:validation:Required
	ProjectRef v1.ObjectReference `json:"projectRef,omitempty"`

	// TokenSecretRef points to a secret where the generated bootstrap token will be stored.
	// The secret is created automatically and must not already exist when the BootstrapToken is created.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Token secret is immutable"
	// +kubebuilder:validation:Required
	TokenSecretRef v1.SecretReference `json:"tokenSecretRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

BootstrapTokenSpec defines the desired state of BootstrapToken

func (*BootstrapTokenSpec) DeepCopy

func (in *BootstrapTokenSpec) DeepCopy() *BootstrapTokenSpec

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

func (*BootstrapTokenSpec) DeepCopyInto

func (in *BootstrapTokenSpec) DeepCopyInto(out *BootstrapTokenSpec)

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

type Cascade

type Cascade struct {
	// Detach specifies whether to delete owned resources in Plural Console but leave
	// the corresponding Kubernetes objects in-place in the target clusters.
	// This allows for graceful handoff of resource management without disrupting running workloads.
	// +kubebuilder:validation:Optional
	Detach *bool `json:"detach,omitempty"`

	// Delete specifies whether to delete owned resources both in Plural Console
	// and in the targeted Kubernetes clusters. When true, this performs a complete
	// cleanup of all associated resources across the entire service deployment.
	// +kubebuilder:validation:Optional
	Delete *bool `json:"delete,omitempty"`
}

Cascade defines the deletion behavior for resources owned by a GlobalService. It provides fine-grained control over whether resources should be deleted from the Plural Console, the target Kubernetes clusters, or both during cleanup operations.

func (*Cascade) Attributes

func (c *Cascade) Attributes() *console.CascadeAttributes

Attributes converts the Cascade spec to console API attributes.

func (*Cascade) DeepCopy

func (in *Cascade) DeepCopy() *Cascade

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

func (*Cascade) DeepCopyInto

func (in *Cascade) DeepCopyInto(out *Cascade)

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

type Catalog

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

	Spec   CatalogSpec `json:"spec,omitempty"`
	Status Status      `json:"status,omitempty"`
}

Catalog is an organized collection of PR Automations. It enables teams to group related automation workflows by category (like "data", "security", "devops") and provides a browsable interface for self-service capabilities. Catalogs support hierarchical permissions through RBAC bindings and can be scoped to specific projects for multi-tenant environments.

func (*Catalog) CatalogName

func (in *Catalog) CatalogName() string

func (*Catalog) ConsoleID

func (in *Catalog) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*Catalog) ConsoleName

func (in *Catalog) ConsoleName() string

ConsoleName implements PluralResource interface

func (*Catalog) DeepCopy

func (in *Catalog) DeepCopy() *Catalog

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

func (*Catalog) DeepCopyInto

func (in *Catalog) DeepCopyInto(out *Catalog)

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

func (*Catalog) DeepCopyObject

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

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

func (*Catalog) Diff

func (in *Catalog) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*Catalog) SetCondition

func (in *Catalog) SetCondition(condition metav1.Condition)

type CatalogBindings

type CatalogBindings struct {
	// Create bindings control who can generate new PR automations using this catalog.
	// Users with create permissions can trigger self-service workflows but cannot modify the catalog itself.
	// +kubebuilder:validation:Optional
	Create []Binding `json:"create,omitempty"`

	// Read bindings control who can view and browse this catalog and its PR automations.
	// Users with read permissions can see available automations but cannot execute or modify them.
	// +kubebuilder:validation:Optional
	Read []Binding `json:"read,omitempty"`

	// Write bindings control who can modify the catalog and its PR automations.
	// Users with write permissions can add, update, or remove PR automations within this catalog.
	// +kubebuilder:validation:Optional
	Write []Binding `json:"write,omitempty"`
}

CatalogBindings defines the RBAC permissions for a catalog, controlling access to PR automations. These bindings determine who can view, modify, and create PR automations within the catalog, providing fine-grained access control for self-service automation capabilities.

func (*CatalogBindings) DeepCopy

func (in *CatalogBindings) DeepCopy() *CatalogBindings

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

func (*CatalogBindings) DeepCopyInto

func (in *CatalogBindings) DeepCopyInto(out *CatalogBindings)

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

type CatalogList

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

CatalogList contains a list of Catalog resources.

func (*CatalogList) DeepCopy

func (in *CatalogList) DeepCopy() *CatalogList

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

func (*CatalogList) DeepCopyInto

func (in *CatalogList) DeepCopyInto(out *CatalogList)

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

func (*CatalogList) DeepCopyObject

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

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

type CatalogSpec

type CatalogSpec struct {
	// Name is the display name for this catalog if different from metadata.name.
	// Defaults to metadata.name if not specified.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Author is the name of the catalog creator used for attribution and contact purposes.
	// This field helps users identify who maintains and supports the catalog contents.
	// +kubebuilder:validation:Required
	Author string `json:"author"`

	// Icon is a URL to an icon image for visual identification in the catalog browser.
	// Should be a publicly accessible image URL that displays well at small sizes.
	// +kubebuilder:validation:Optional
	Icon *string `json:"icon,omitempty"`

	// DarkIcon is a URL to a dark mode variant of the catalog icon.
	// Used when the UI is in dark mode to ensure proper contrast and visibility.
	// +kubebuilder:validation:Optional
	DarkIcon *string `json:"darkIcon,omitempty"`

	// Description provides a detailed explanation of the catalog's purpose and contents.
	// This helps users understand what types of automations they can find within.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=my catalog description
	Description *string `json:"description,omitempty"`

	// Category is a short classification label for organizing catalogs in the browser.
	// Examples include "infrastructure", "security", "monitoring", or "development".
	// +kubebuilder:validation:Optional
	Category *string `json:"category,omitempty"`

	// ProjectRef links this catalog to a specific project for permission inheritance.
	// When set, the catalog inherits the project's RBAC policies and is scoped to that project.
	// ProjectRef owning project of the catalog, permissions will propagate down
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Tags provide key-value metadata for filtering and organizing catalogs.
	// Useful for adding custom labels like environment, team, or technology stack.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// Bindings define the read, write, and create permissions for this catalog.
	// Controls who can view, modify, and use the PR automations within this catalog.
	// Bindings contain read and write policies of this Catalog.
	// +kubebuilder:validation:Optional
	Bindings *CatalogBindings `json:"bindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

CatalogSpec defines the desired state of Catalog

func (*CatalogSpec) DeepCopy

func (in *CatalogSpec) DeepCopy() *CatalogSpec

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

func (*CatalogSpec) DeepCopyInto

func (in *CatalogSpec) DeepCopyInto(out *CatalogSpec)

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

type CloudConnection

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

	Spec   CloudConnectionSpec `json:"spec,omitempty"`
	Status Status              `json:"status,omitempty"`
}

CloudConnection is a credential for querying a cloud provider. It will be used in agentic chats to perform generic sql-like queries against cloud configuration data.

func (*CloudConnection) CloudConnectionName

func (c *CloudConnection) CloudConnectionName() string

func (*CloudConnection) DeepCopy

func (in *CloudConnection) DeepCopy() *CloudConnection

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

func (*CloudConnection) DeepCopyInto

func (in *CloudConnection) DeepCopyInto(out *CloudConnection)

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

func (*CloudConnection) DeepCopyObject

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

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

func (*CloudConnection) Diff

func (c *CloudConnection) Diff(ctx context.Context, getter CloudConnectionGetter, hasher Hasher) (changed bool, sha string, err error)

func (*CloudConnection) SetCondition

func (c *CloudConnection) SetCondition(condition metav1.Condition)

type CloudConnectionConfiguration

type CloudConnectionConfiguration struct {
	AWS   *AWSCloudConnection   `json:"aws,omitempty"`
	GCP   *GCPCloudConnection   `json:"gcp,omitempty"`
	Azure *AzureCloudConnection `json:"azure,omitempty"`
}

CloudConnectionConfiguration contains provider-specific credential configurations. Only one provider configuration should be specified per CloudConnection instance.

func (*CloudConnectionConfiguration) DeepCopy

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

func (*CloudConnectionConfiguration) DeepCopyInto

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

type CloudConnectionGetter

type CloudConnectionGetter func(context.Context, CloudConnection) (*console.CloudConnectionAttributes, error)

CloudConnectionGetter is just a helper function that can be implemented to properly build Console API attributes +kubebuilder:object:generate:=false

type CloudConnectionList

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

CloudConnectionList contains a list of CloudConnection resources.

func (*CloudConnectionList) DeepCopy

func (in *CloudConnectionList) DeepCopy() *CloudConnectionList

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

func (*CloudConnectionList) DeepCopyInto

func (in *CloudConnectionList) DeepCopyInto(out *CloudConnectionList)

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

func (*CloudConnectionList) DeepCopyObject

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

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

type CloudConnectionSpec

type CloudConnectionSpec struct {
	// Name of this CloudConnection. If not provided CloudConnection's own name
	// from CloudConnection.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Provider is the name of the cloud service for the Provider.
	// One of (CloudProvider): [gcp, aws, azure]
	// +kubebuilder:example:=aws
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=gcp;aws;azure
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Provider is immutable"
	Provider CloudProvider `json:"provider"`

	// Configuration contains the cloud connection configuration.
	// +kubebuilder:validation:Required
	Configuration CloudConnectionConfiguration `json:"configuration"`

	// ReadBindings is a list of bindings that defines
	// who can use this CloudConnection.
	// +kubebuilder:validation:Optional
	ReadBindings []Binding `json:"readBindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

CloudConnectionSpec defines the desired state of CloudConnection

func (*CloudConnectionSpec) DeepCopy

func (in *CloudConnectionSpec) DeepCopy() *CloudConnectionSpec

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

func (*CloudConnectionSpec) DeepCopyInto

func (in *CloudConnectionSpec) DeepCopyInto(out *CloudConnectionSpec)

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

type CloudProvider

type CloudProvider string

CloudProvider represents the supported cloud service providers.

const (
	// AWS represents Amazon Web Services as a cloud provider
	AWS CloudProvider = "aws"
	// Azure represents Microsoft Azure as a cloud provider
	Azure CloudProvider = "azure"
	// GCP represents Google Cloud Platform as a cloud provider
	GCP CloudProvider = "gcp"
)

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 represents a Kubernetes cluster managed by the Plural Console for continuous deployment. Clusters serve as deployment targets for services and can be either management clusters (hosting the Plural Console and operators) or workload clusters (running application workloads). The Console tracks cluster health, versions, and coordinates service deployments across the fleet.

func (*Cluster) ConsoleID

func (c *Cluster) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*Cluster) ConsoleName

func (c *Cluster) ConsoleName() string

ConsoleName implements PluralResource interface

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

func (c *Cluster) SetCondition(condition metav1.Condition)

func (*Cluster) TagUpdateAttributes

func (c *Cluster) TagUpdateAttributes() console.ClusterUpdateAttributes

type ClusterAWSCloudSettings

type ClusterAWSCloudSettings struct {
	// Region in AWS to deploy this cluster to.
	// Determines data residency, latency characteristics, and available AWS services.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Region string `json:"region"`
}

ClusterAWSCloudSettings contains AWS-specific configuration for cluster deployment.

func (*ClusterAWSCloudSettings) DeepCopy

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

func (*ClusterAWSCloudSettings) DeepCopyInto

func (in *ClusterAWSCloudSettings) DeepCopyInto(out *ClusterAWSCloudSettings)

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

type ClusterAzureCloudSettings

type ClusterAzureCloudSettings struct {
	// ResourceGroup specifies the Azure resource group name for organizing cluster resources.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=myresourcegroup
	ResourceGroup string `json:"resourceGroup"`

	// Network specifies the Azure virtual network name for cluster networking.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=mynetwork
	Network string `json:"network"`

	// SubscriptionId is the GUID of the Azure subscription that will contain this cluster.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	SubscriptionId string `json:"subscriptionId"`

	// Location specifies the Azure region where this cluster will be deployed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=eastus
	Location string `json:"location"`
}

ClusterAzureCloudSettings contains Azure-specific configuration for cluster deployment.

func (*ClusterAzureCloudSettings) DeepCopy

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

func (*ClusterAzureCloudSettings) DeepCopyInto

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

type ClusterCloudSettings

type ClusterCloudSettings struct {
	// AWS contains Amazon Web Services specific cluster configuration.
	// +kubebuilder:validation:Optional
	AWS *ClusterAWSCloudSettings `json:"aws,omitempty"`

	// Azure contains Microsoft Azure specific cluster configuration.
	// +kubebuilder:validation:Optional
	Azure *ClusterAzureCloudSettings `json:"azure,omitempty"`

	// GCP contains Google Cloud Platform specific cluster configuration.
	// +kubebuilder:validation:Optional
	GCP *ClusterGCPCloudSettings `json:"gcp,omitempty"`
}

ClusterCloudSettings contains cloud provider-specific configuration for cluster infrastructure. Allows customization of networking, regions, and other cloud-specific cluster properties.

func (*ClusterCloudSettings) DeepCopy

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

func (*ClusterCloudSettings) DeepCopyInto

func (in *ClusterCloudSettings) DeepCopyInto(out *ClusterCloudSettings)

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

type ClusterGCPCloudSettings

type ClusterGCPCloudSettings struct {
	// Project specifies the GCP project ID where this cluster will be deployed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Project string `json:"project"`

	// Network specifies the GCP VPC network name for cluster networking.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Network string `json:"network"`

	// Region specifies the GCP region where this cluster will be deployed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Region string `json:"region"`
}

ClusterGCPCloudSettings contains Google Cloud Platform specific configuration for cluster deployment.

func (*ClusterGCPCloudSettings) DeepCopy

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

func (*ClusterGCPCloudSettings) DeepCopyInto

func (in *ClusterGCPCloudSettings) DeepCopyInto(out *ClusterGCPCloudSettings)

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 resources.

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 ClusterNodePool

type ClusterNodePool struct {
	// Name is the unique identifier for this node pool within the cluster.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Name string `json:"name"`

	// InstanceType specifies the cloud provider instance type for nodes in this pool.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	InstanceType string `json:"instanceType"`

	// MinSize is the minimum number of nodes that must be running in this pool.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	MinSize int64 `json:"minSize"`

	// MaxSize is the maximum number of nodes that can be running in this pool.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	MaxSize int64 `json:"maxSize"`

	// Labels are key-value pairs applied to nodes for workload scheduling and organization.
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Taints are restrictions applied to nodes to control which pods can be scheduled.
	// +kubebuilder:validation:Optional
	Taints []Taint `json:"taints,omitempty"`

	// CloudSettings contains cloud provider-specific configuration for this node pool.
	// +kubebuilder:validation:Optional
	// +structType=atomic
	CloudSettings *ClusterNodePoolCloudSettings `json:"cloudSettings,omitempty"`
}

ClusterNodePool defines the configuration for a group of worker nodes in the cluster.

func (*ClusterNodePool) DeepCopy

func (in *ClusterNodePool) DeepCopy() *ClusterNodePool

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

func (*ClusterNodePool) DeepCopyInto

func (in *ClusterNodePool) DeepCopyInto(out *ClusterNodePool)

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

type ClusterNodePoolAWSCloudSettings

type ClusterNodePoolAWSCloudSettings struct {
	// LaunchTemplateId specifies a custom EC2 launch template ID for node provisioning.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	LaunchTemplateId *string `json:"launchTemplateId,omitempty"`
}

ClusterNodePoolAWSCloudSettings contains AWS-specific configuration for node pool deployment.

func (*ClusterNodePoolAWSCloudSettings) DeepCopy

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

func (*ClusterNodePoolAWSCloudSettings) DeepCopyInto

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

type ClusterNodePoolCloudSettings

type ClusterNodePoolCloudSettings struct {
	// AWS contains Amazon Web Services specific node pool configuration.
	// +kubebuilder:validation:Optional
	AWS *ClusterNodePoolAWSCloudSettings `json:"aws,omitempty"`
}

ClusterNodePoolCloudSettings contains cloud provider-specific settings for node pools.

func (*ClusterNodePoolCloudSettings) DeepCopy

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

func (*ClusterNodePoolCloudSettings) DeepCopyInto

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

type ClusterRestore

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

	Spec   ClusterRestoreSpec   `json:"spec,omitempty"`
	Status ClusterRestoreStatus `json:"status,omitempty"`
}

ClusterRestore manages the restoration of cluster data from backup snapshots. Orchestrates the recovery process for Kubernetes resources.

func (*ClusterRestore) DeepCopy

func (in *ClusterRestore) DeepCopy() *ClusterRestore

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

func (*ClusterRestore) DeepCopyInto

func (in *ClusterRestore) DeepCopyInto(out *ClusterRestore)

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

func (*ClusterRestore) DeepCopyObject

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

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

func (*ClusterRestore) SetCondition

func (s *ClusterRestore) SetCondition(condition metav1.Condition)

type ClusterRestoreList

type ClusterRestoreList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ClusterRestore `json:"items"`
}

ClusterRestoreList contains a list of ClusterRestore resources.

func (*ClusterRestoreList) DeepCopy

func (in *ClusterRestoreList) DeepCopy() *ClusterRestoreList

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

func (*ClusterRestoreList) DeepCopyInto

func (in *ClusterRestoreList) DeepCopyInto(out *ClusterRestoreList)

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

func (*ClusterRestoreList) DeepCopyObject

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

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

type ClusterRestoreSpec

type ClusterRestoreSpec struct {
	// BackupID is an ID of the backup to restore.
	// If BackupID is specified, then BackupName, BackupNamespace, and BackupClusterRef are not needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="BackupID is immutable"
	BackupID *string `json:"backupID"`

	// BackupName is a name of the backup to restore.
	// BackupNamespace and BackupClusterRef have to be specified as well with it.
	// If BackupName, BackupNamespace, and BackupCluster are specified, then BackupID is not needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="BackupName is immutable"
	BackupName *string `json:"backupName"`

	// BackupNamespace is a namespace of the backup to restore.
	// BackupName and BackupClusterRef have to be specified as well with it.
	// If BackupName, BackupNamespace, and BackupCluster are specified, then BackupID is not needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="BackupNamespace is immutable"
	BackupNamespace *string `json:"backupNamespace"`

	// BackupClusterID is an ID of a cluster where the backup to restore is located.
	// BackupName and BackupNamespace have to be specified as well with it.
	// If BackupName, BackupNamespace, and BackupClusterRef are specified, then BackupID is not needed.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="BackupClusterRef is immutable"
	BackupClusterRef *corev1.ObjectReference `json:"backupClusterRef"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ClusterRestoreSpec defines the desired state of ClusterRestore. It specifies the backup to restore from, including the backup ID, name, namespace, and cluster reference.

func (*ClusterRestoreSpec) DeepCopy

func (in *ClusterRestoreSpec) DeepCopy() *ClusterRestoreSpec

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

func (*ClusterRestoreSpec) DeepCopyInto

func (in *ClusterRestoreSpec) DeepCopyInto(out *ClusterRestoreSpec)

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

func (*ClusterRestoreSpec) GetBackupID

func (p *ClusterRestoreSpec) GetBackupID() string

func (*ClusterRestoreSpec) HasBackupID

func (p *ClusterRestoreSpec) HasBackupID() bool

type ClusterRestoreStatus

type ClusterRestoreStatus struct {
	// ID of the cluster restore in the Console API.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	ID *string `json:"id,omitempty"`

	// +kubebuilder:validation:Enum=CREATED;PENDING;SUCCESSFUL;FAILED
	Status console.RestoreStatus `json:"status,omitempty"`

	// Represents the observations of ClusterRestore current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ClusterRestoreStatus represents the observed state of a ClusterRestore operation. Tracks the progress, completion status, and any issues encountered during the restoration process.

func (*ClusterRestoreStatus) DeepCopy

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

func (*ClusterRestoreStatus) DeepCopyInto

func (in *ClusterRestoreStatus) DeepCopyInto(out *ClusterRestoreStatus)

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

func (*ClusterRestoreStatus) GetID

func (p *ClusterRestoreStatus) GetID() string

func (*ClusterRestoreStatus) HasID

func (p *ClusterRestoreStatus) HasID() bool

type ClusterRestoreTrigger

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

	// Spec defines the desired state and configuration for the cluster restore trigger.
	Spec ClusterRestoreTriggerSpec `json:"spec,omitempty"`

	// Status represents the current state of the cluster restore trigger operation.
	Status Status `json:"status,omitempty"`
}

ClusterRestoreTrigger triggers cluster restore operations. It provides a declarative way to initiate cluster restore processes from existing backups.

The ClusterRestoreTrigger works in conjunction with ClusterRestore resource to manage the complete backup and restore lifecycle for Kubernetes clusters in the Plural platform.

func (*ClusterRestoreTrigger) DeepCopy

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

func (*ClusterRestoreTrigger) DeepCopyInto

func (in *ClusterRestoreTrigger) DeepCopyInto(out *ClusterRestoreTrigger)

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

func (*ClusterRestoreTrigger) DeepCopyObject

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

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

func (*ClusterRestoreTrigger) SetCondition

func (p *ClusterRestoreTrigger) SetCondition(condition metav1.Condition)

SetCondition updates the status conditions of the ClusterRestoreTrigger.

type ClusterRestoreTriggerList

type ClusterRestoreTriggerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ClusterRestoreTrigger `json:"items"`
}

ClusterRestoreTriggerList contains a list of ClusterRestoreTrigger resources.

func (*ClusterRestoreTriggerList) DeepCopy

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

func (*ClusterRestoreTriggerList) DeepCopyInto

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

func (*ClusterRestoreTriggerList) DeepCopyObject

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

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

type ClusterRestoreTriggerSpec

type ClusterRestoreTriggerSpec struct {
	// ClusterRestoreRef is a reference to the ClusterRestore resource that contains
	// the backup data and configuration for the restore operation.
	//
	// This reference should point to a valid ClusterRestore resource that has been
	// successfully created and contains the backup data needed for restoration.
	//
	// +kubebuilder:validation:Optional
	ClusterRestoreRef *corev1.ObjectReference `json:"clusterRestoreRef,omitempty"`
}

ClusterRestoreTriggerSpec defines the desired state and configuration for a ClusterRestoreTrigger. It specifies which backup should be restored and provides the necessary references to locate and access the backup data for the restore operation.

func (*ClusterRestoreTriggerSpec) DeepCopy

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

func (*ClusterRestoreTriggerSpec) DeepCopyInto

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

type ClusterSpec

type ClusterSpec struct {
	// Handle is a short, unique human-readable name used to identify this cluster.
	// Does not necessarily map to the cloud resource name.
	// This has to be specified to adopt the existing cluster.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=myclusterhandle
	Handle *string `json:"handle,omitempty"`

	// Version specifies the Kubernetes version to use for this cluster.
	// Can be skipped only for BYOK (Bring Your Own Kubernetes) clusters where a version is externally managed.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:="1.25.11"
	Version *string `json:"version,omitempty"`

	// ProviderRef references the cloud provider to use for this cluster.
	// Can be skipped only for BYOK clusters where infrastructure is externally provisioned.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	ProviderRef *corev1.ObjectReference `json:"providerRef,omitempty"`

	// ProjectRef references the project this cluster belongs to for multi-tenancy and access control.
	// If not provided, the cluster will be assigned to the default project.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Cloud specifies the cloud provider to use for this cluster.
	// Determines the infrastructure platform where the cluster will be provisioned and managed.
	// For BYOK clusters, this field is set to "byok" and no cloud provider is required.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum=aws;azure;gcp;byok
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Cloud is immutable"
	// +kubebuilder:example:=azure
	Cloud string `json:"cloud"`

	// Protect prevents accidental deletion of this cluster.
	// When enabled, the cluster cannot be deleted through the Console UI or API.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	// +kubebuilder:example:=false
	Protect *bool `json:"protect,omitempty"`

	// Tags are key-value pairs used to categorize and filter clusters in fleet management.
	// Used for organizing clusters by environment, team, or other operational criteria.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// Metadata contains arbitrary JSON metadata for storing cluster-specific configuration.
	// Used for custom cluster properties and integration with external systems.
	// +kubebuilder:validation:Optional
	Metadata *runtime.RawExtension `json:"metadata,omitempty"`

	// Bindings contain read and write access policies for this cluster.
	// Controls which users and groups can view or manage this cluster through RBAC.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// CloudSettings contains cloud provider-specific configuration for this cluster.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	// +structType=atomic
	CloudSettings *ClusterCloudSettings `json:"cloudSettings,omitempty"`

	// NodePools defines the worker node configurations managed by this cluster.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	NodePools []ClusterNodePool `json:"nodePools"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ClusterSpec defines the desired state of a Cluster. Configures cluster properties including cloud provider settings, node pools, and access controls for continuous deployment workflows across the Plural fleet management architecture.

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

func (cs *ClusterSpec) HasHandle() bool

type ClusterSpecTemplate

type ClusterSpecTemplate struct {
	// Metadata for the cluster.
	// +kubebuilder:validation:Required
	Metadata MetadataTemplate `json:"metadata"`

	// Spec for the cluster.
	// +kubebuilder:validation:Required
	Spec SpecTemplate `json:"spec,omitempty"`
}

func (*ClusterSpecTemplate) DeepCopy

func (in *ClusterSpecTemplate) DeepCopy() *ClusterSpecTemplate

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

func (*ClusterSpecTemplate) DeepCopyInto

func (in *ClusterSpecTemplate) DeepCopyInto(out *ClusterSpecTemplate)

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

type ClusterStatus

type ClusterStatus struct {
	Status `json:",inline"`

	// CurrentVersion contains the actual Kubernetes version currently running on this cluster.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	CurrentVersion *string `json:"currentVersion,omitempty"`

	// KasURL contains the Kubernetes API Server URL for accessing this cluster.
	// Used by the Console and deployment operators for cluster communication.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	KasURL *string `json:"kasURL,omitempty"`

	// PingedAt contains the timestamp of the last successful cluster health check.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	PingedAt *string `json:"pingedAt,omitempty"`
}

ClusterStatus represents the observed state of a 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 ClusterSync

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

	Spec   ClusterSyncSpec `json:"spec,omitempty"`
	Status Status          `json:"status,omitempty"`
}

ClusterSync enables automatic synchronization of clusters from the Plural Console into Kubernetes cluster CRDs. It polls the Console clusters API endpoint and creates or updates cluster resources based on the discovered infrastructure, making it ideal for scenarios where clusters are provisioned externally (e.g., via Terraform) without direct CRD creation capability.

The resource supports optional filtering by project and tags, and uses templatable specifications that are populated with data from the discovered clusters.

Example usage:

```yaml
apiVersion: deployments.plural.sh/v1alpha1
kind: ClusterSync
metadata:
  name: my-cluster-sync
  namespace: default
spec:
  projectRef:
    name: my-project  # optional: only sync clusters from this project
  tags:
    environment: production  # optional: filter clusters by tags
  clusterSpec:
    metadata:
      name: "{{ .cluster.name }}"  # templated from discovered cluster
      namespace: clusters
    spec:
      handle: "{{ .cluster.handle }}"
      version: "{{ .cluster.version }}"
      cloud: "{{ .cluster.cloud }}"
 ````

func (*ClusterSync) DeepCopy

func (in *ClusterSync) DeepCopy() *ClusterSync

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

func (*ClusterSync) DeepCopyInto

func (in *ClusterSync) DeepCopyInto(out *ClusterSync)

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

func (*ClusterSync) DeepCopyObject

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

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

func (*ClusterSync) SetCondition

func (in *ClusterSync) SetCondition(condition metav1.Condition)

type ClusterSyncList

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

ClusterSyncList contains a list of ClusterSync resources.

func (*ClusterSyncList) DeepCopy

func (in *ClusterSyncList) DeepCopy() *ClusterSyncList

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

func (*ClusterSyncList) DeepCopyInto

func (in *ClusterSyncList) DeepCopyInto(out *ClusterSyncList)

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

func (*ClusterSyncList) DeepCopyObject

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

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

type ClusterSyncSpec

type ClusterSyncSpec struct {
	// ProjectRef references project to sync clusters from.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Tags used to filter clusters.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// ClusterSpec contains specifications of the cluster.
	// +kubebuilder:validation:Required
	ClusterSpec ClusterSpecTemplate `json:"clusterSpec"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ClusterSyncSpec defines the desired state of ClusterSync

func (*ClusterSyncSpec) DeepCopy

func (in *ClusterSyncSpec) DeepCopy() *ClusterSyncSpec

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

func (*ClusterSyncSpec) DeepCopyInto

func (in *ClusterSyncSpec) DeepCopyInto(out *ClusterSyncSpec)

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

type ClusterTarget

type ClusterTarget struct {
	// Tags specify a set of key-value pairs used to select target clusters.
	// Only clusters that match all specified tags will receive the managed namespace.
	// This provides a flexible mechanism for targeting specific cluster groups,
	// environments, or organizational boundaries.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// Distro specifies the Kubernetes distribution type for target cluster selection.
	// This allows targeting namespaces to specific cluster types that may have
	// distribution-specific requirements, networking configurations, or security policies.
	// +kubebuilder:validation:Optional
	Distro *console.ClusterDistro `json:"distro,omitempty"`
}

ClusterTarget defines the criteria for selecting target clusters where managed namespaces should be created. It provides flexible targeting mechanisms based on cluster metadata and properties, enabling fine-grained control over namespace distribution across a fleet of clusters.

func (*ClusterTarget) DeepCopy

func (in *ClusterTarget) DeepCopy() *ClusterTarget

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

func (*ClusterTarget) DeepCopyInto

func (in *ClusterTarget) DeepCopyInto(out *ClusterTarget)

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

type CommandAttributes

type CommandAttributes struct {
	// Cmd is the command to execute
	// +kubebuilder:validation:Required
	Cmd string `json:"cmd"`

	// Args are the arguments to pass to the command.
	// +kubebuilder:validation:Optional
	Args []string `json:"args,omitempty"`

	// Dir is the working directory for the command.
	// +kubebuilder:validation:Optional
	Dir *string `json:"dir,omitempty"`
}

func (*CommandAttributes) Attributes

func (in *CommandAttributes) Attributes() *console.CommandAttributes

func (*CommandAttributes) DeepCopy

func (in *CommandAttributes) DeepCopy() *CommandAttributes

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

func (*CommandAttributes) DeepCopyInto

func (in *CommandAttributes) DeepCopyInto(out *CommandAttributes)

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

type ComplianceReportGenerator

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

	Spec   ComplianceReportGeneratorSpec `json:"spec,omitempty"`
	Status Status                        `json:"status,omitempty"`
}

ComplianceReportGenerator represents a resource that generates compliance reports.

func (*ComplianceReportGenerator) ComplianceReportGeneratorName

func (in *ComplianceReportGenerator) ComplianceReportGeneratorName() string

func (*ComplianceReportGenerator) DeepCopy

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

func (*ComplianceReportGenerator) DeepCopyInto

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

func (*ComplianceReportGenerator) DeepCopyObject

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

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

func (*ComplianceReportGenerator) Diff

func (in *ComplianceReportGenerator) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*ComplianceReportGenerator) SetCondition

func (in *ComplianceReportGenerator) SetCondition(condition metav1.Condition)

type ComplianceReportGeneratorList

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

ComplianceReportGeneratorList contains a list of ComplianceReportGenerator resources.

func (*ComplianceReportGeneratorList) DeepCopy

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

func (*ComplianceReportGeneratorList) DeepCopyInto

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

func (*ComplianceReportGeneratorList) DeepCopyObject

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

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

type ComplianceReportGeneratorSpec

type ComplianceReportGeneratorSpec struct {
	// Name, if not provided name from object meta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Format of the report to be generated.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=CSV;JSON
	Format console.ComplianceReportFormat `json:"format,omitempty"`

	// ReadBindings represent the download policy for this report.
	// +kubebuilder:validation:Optional
	ReadBindings []Binding `json:"readBindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ComplianceReportGeneratorSpec defines the desired state of the resource.

func (*ComplianceReportGeneratorSpec) DeepCopy

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

func (*ComplianceReportGeneratorSpec) DeepCopyInto

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

type ComponentState

type ComponentState string
const ComponentStateRunning ComponentState = "RUNNING"

type Condition

type Condition struct {
	// +kubebuilder:validation:Required
	Field string `json:"field"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=NOT;GT;LT;EQ;GTE;LTE;PREFIX;SUFFIX
	console.Operation `json:"operation"`

	// +kubebuilder:validation:Optional
	Value *string `json:"value,omitempty"`
}

Condition defines a conditional expression.

func (*Condition) Attributes

func (in *Condition) Attributes() *console.ConditionAttributes

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

type ConditionMessage

type ConditionMessage string
const (
	ReadonlyTrueConditionMessage          ConditionMessage = "Running in read-only mode"
	SynchronizedNotFoundConditionMessage  ConditionMessage = "Could not find resource in Console API"
	NamespacedCredentialsConditionMessage ConditionMessage = "Using default credentials"
)

func (ConditionMessage) String

func (c ConditionMessage) String() string

type ConditionReason

type ConditionReason string
const (
	ReadonlyConditionReason             ConditionReason = "Readonly"
	ReadyConditionReason                ConditionReason = "Ready"
	ReadyConditionReasonDeleting        ConditionReason = "Deleting"
	SynchronizedConditionReason         ConditionReason = "Synchronized"
	SynchronizedConditionReasonError    ConditionReason = "Error"
	SynchronizedConditionReasonNotFound ConditionReason = "NotFound"
	SynchronizedConditionReasonDeleting ConditionReason = "Deleting"
	ReadyTokenConditionReason           ConditionReason = "Ready"
	ReadyTokenConditionReasonError      ConditionReason = "Error"
	NamespacedCredentialsReason         ConditionReason = "NamespacedCredentials"
	NamespacedCredentialsReasonDefault  ConditionReason = "DefaultCredentials"
)

func (ConditionReason) String

func (c ConditionReason) String() string

type ConditionType

type ConditionType string
const (
	ReadonlyConditionType              ConditionType = "Readonly"
	ReadyConditionType                 ConditionType = "Ready"
	ReadyTokenConditionType            ConditionType = "ReadyToken"
	SynchronizedConditionType          ConditionType = "Synchronized"
	NamespacedCredentialsConditionType ConditionType = "NamespacedCredentials"
)

func (ConditionType) String

func (c ConditionType) String() string

type Container

type Container struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Image string `json:"image"`

	// +kubebuilder:validation:Optional
	Args []*string `json:"args,omitempty"`

	// +kubebuilder:validation:Optional
	Env []*Env `json:"env,omitempty"`

	// +kubebuilder:validation:Optional
	EnvFrom []*EnvFrom `json:"envFrom,omitempty"`

	// +kubebuilder:validation:Optional
	Resources *ContainerResources `json:"resources,omitempty"`
}

func (*Container) DeepCopy

func (in *Container) DeepCopy() *Container

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

func (*Container) DeepCopyInto

func (in *Container) DeepCopyInto(out *Container)

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

type ContainerResourceRequests

type ContainerResourceRequests struct {
	// +kubebuilder:validation:Optional
	CPU *string `json:"cpu,omitempty"`

	// +kubebuilder:validation:Optional
	Memory *string `json:"memory,omitempty"`
}

func (*ContainerResourceRequests) DeepCopy

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

func (*ContainerResourceRequests) DeepCopyInto

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

type ContainerResources

type ContainerResources struct {
	// +kubebuilder:validation:Optional
	Requests *ContainerResourceRequests `json:"requests,omitempty"`

	// +kubebuilder:validation:Optional
	Limits *ContainerResourceRequests `json:"limits,omitempty"`
}

func (*ContainerResources) DeepCopy

func (in *ContainerResources) DeepCopy() *ContainerResources

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

func (*ContainerResources) DeepCopyInto

func (in *ContainerResources) DeepCopyInto(out *ContainerResources)

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

type CostSettings

type CostSettings struct {
	// RecommendationCushion is a percentage amount of cushion
	// to give over the average discovered utilization to generate
	// a scaling recommendation, should be between 1-99.
	//
	// +kubebuilder:validation:Optional
	RecommendationCushion *int64 `json:"recommendationCushion,omitempty"`

	// RecommendationThreshold is the minimal monthly cost for
	// a recommendation to be covered by a controller.
	//
	// +kubebuilder:validation:Optional
	RecommendationThreshold *int64 `json:"recommendationThreshold,omitempty"`
}

func (*CostSettings) Attributes

func (cost *CostSettings) Attributes() *console.CostSettingsAttributes

func (*CostSettings) DeepCopy

func (in *CostSettings) DeepCopy() *CostSettings

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

func (*CostSettings) DeepCopyInto

func (in *CostSettings) DeepCopyInto(out *CostSettings)

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

type CreatePr

type CreatePr struct {
	// ScmConnectionRef the SCM connection to use for pr automations
	//
	// +kubebuilder:validation:Optional
	ScmConnectionRef *corev1.ObjectReference `json:"scmConnectionRef,omitempty"`
}

func (*CreatePr) DeepCopy

func (in *CreatePr) DeepCopy() *CreatePr

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

func (*CreatePr) DeepCopyInto

func (in *CreatePr) DeepCopyInto(out *CreatePr)

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

type CustomRunStep

type CustomRunStep struct {
	// Args provides additional command-line arguments that should be passed
	// to the command specified in Cmd during execution.
	// +kubebuilder:validation:Required
	Args []string `json:"args,omitempty"`

	// Cmd specifies the executable command that should be run as part of this
	// custom step. This can be any command available in the execution environment.
	// +kubebuilder:validation:Required
	Cmd string `json:"cmd"`

	// RequireApproval determines whether this step requires manual approval
	// before it can proceed. When true, the stack run will pause at this step
	// until an authorized user approves its execution.
	// +kubebuilder:validation:Optional
	RequireApproval *bool `json:"requireApproval,omitempty"`

	// Stage controls at which phase of the stack lifecycle this step should be executed.
	// Valid stages include PLAN, VERIFY, APPLY, INIT, and DESTROY, allowing fine-grained
	// control over when custom logic runs in relation to the main IaC operations.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=PLAN;VERIFY;APPLY;INIT;DESTROY
	Stage console.StepStage `json:"stage"`
}

CustomRunStep defines a custom execution step within a StackDefinition template. Each step represents a discrete action that will be performed during stack execution, with control over when it runs and whether it requires manual approval.

func (*CustomRunStep) DeepCopy

func (in *CustomRunStep) DeepCopy() *CustomRunStep

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

func (*CustomRunStep) DeepCopyInto

func (in *CustomRunStep) DeepCopyInto(out *CustomRunStep)

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

type CustomStackRun

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

	Spec   CustomStackRunSpec `json:"spec,omitempty"`
	Status Status             `json:"status,omitempty"`
}

CustomStackRun represents a custom stack run resource. It allows users to define custom commands that can be executed as part of a stack run.

func (*CustomStackRun) CustomStackRunName

func (p *CustomStackRun) CustomStackRunName() string

func (*CustomStackRun) DeepCopy

func (in *CustomStackRun) DeepCopy() *CustomStackRun

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

func (*CustomStackRun) DeepCopyInto

func (in *CustomStackRun) DeepCopyInto(out *CustomStackRun)

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

func (*CustomStackRun) DeepCopyObject

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

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

func (*CustomStackRun) SetCondition

func (p *CustomStackRun) SetCondition(condition metav1.Condition)

type CustomStackRunList

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

CustomStackRunList contains a list of CustomStackRun resources.

func (*CustomStackRunList) DeepCopy

func (in *CustomStackRunList) DeepCopy() *CustomStackRunList

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

func (*CustomStackRunList) DeepCopyInto

func (in *CustomStackRunList) DeepCopyInto(out *CustomStackRunList)

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

func (*CustomStackRunList) DeepCopyObject

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

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

type CustomStackRunSpec

type CustomStackRunSpec struct {
	// Name of this CustomStackRun. If not provided CustomStackRun's own name from CustomStackRun.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// StackRef is a reference to the stack this custom run belongs to.
	// +kubebuilder:validation:Optional
	StackRef *corev1.LocalObjectReference `json:"stackRef,omitempty"`

	// Documentation to explain what this custom run does.
	// +kubebuilder:validation:Optional
	Documentation *string `json:"documentation,omitempty"`

	// Commands to execute as part of this custom run.
	// +kubebuilder:validation:Optional
	Commands []CommandAttributes `json:"commands,omitempty"`

	// Configuration self-service configuration which will be presented in UI before triggering
	// +kubebuilder:validation:Optional
	Configuration []PrAutomationConfiguration `json:"configuration,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

CustomStackRunSpec defines the desired state of CustomStackRun.

func (*CustomStackRunSpec) DeepCopy

func (in *CustomStackRunSpec) DeepCopy() *CustomStackRunSpec

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

func (*CustomStackRunSpec) DeepCopyInto

func (in *CustomStackRunSpec) DeepCopyInto(out *CustomStackRunSpec)

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

type DeploymentSettings

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

	Spec   DeploymentSettingsSpec `json:"spec,omitempty"`
	Status Status                 `json:"status,omitempty"`
}

DeploymentSettings provides global configuration settings for Continuous Deployment (CD) operations. This resource defines cluster-wide settings that control how the Plural deployment system operates, including access policies, repository configuration, monitoring integrations, and AI-powered features.

Example usage:

```yaml
apiVersion: deployments.plural.sh/v1alpha1
kind: DeploymentSettings
metadata:
  name: global-deployment-settings
  namespace: plrl-deploy-operator
spec:
  agentHelmValues:
    annotations:
      company.com/team: "platform"
  managementRepo: "https://github.com/company/infrastructure"
  bindings:
    read:
      - user:
          email: "dev-team@company.com"
    write:
      - group:
          name: "platform-engineers"
  deploymentRepositoryRef:
    name: "main-deployment-repo"
    namespace: "plrl-deploy-operator"
  prometheusConnection:
    host: "https://prometheus.company.com"
    user: "monitoring"
    passwordSecretRef:
      name: "prometheus-creds"
      key: "password"
  ai:
    enabled: true
    provider: OPENAI
    openAI:
      model: "gpt-4"
      tokenSecretRef:
        name: "openai-secret"
        key: "token"
  cost:
    recommendationCushion: 20
    recommendationThreshold: 100
```

func (*DeploymentSettings) DeepCopy

func (in *DeploymentSettings) DeepCopy() *DeploymentSettings

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

func (*DeploymentSettings) DeepCopyInto

func (in *DeploymentSettings) DeepCopyInto(out *DeploymentSettings)

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

func (*DeploymentSettings) DeepCopyObject

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

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

func (*DeploymentSettings) SetCondition

func (in *DeploymentSettings) SetCondition(condition metav1.Condition)

type DeploymentSettingsBindings

type DeploymentSettingsBindings struct {
	// Read bindings.
	//
	// +kubebuilder:validation:Optional
	Read []Binding `json:"read,omitempty"`

	// Write bindings.
	//
	// +kubebuilder:validation:Optional
	Write []Binding `json:"write,omitempty"`

	// Create bindings.
	//
	// +kubebuilder:validation:Optional
	Create []Binding `json:"create,omitempty"`

	// Git bindings.
	//
	// +kubebuilder:validation:Optional
	Git []Binding `json:"git,omitempty"`
}

func (*DeploymentSettingsBindings) DeepCopy

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

func (*DeploymentSettingsBindings) DeepCopyInto

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

type DeploymentSettingsList

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

DeploymentSettingsList contains a list of DeploymentSettings resources.

func (*DeploymentSettingsList) DeepCopy

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

func (*DeploymentSettingsList) DeepCopyInto

func (in *DeploymentSettingsList) DeepCopyInto(out *DeploymentSettingsList)

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

func (*DeploymentSettingsList) DeepCopyObject

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

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

type DeploymentSettingsSpec

type DeploymentSettingsSpec struct {
	// AgentHelmValues custom helm values to apply
	// to all agents (useful for things like adding
	// customary annotations/labels)
	//
	// +kubebuilder:validation:Optional
	AgentHelmValues *runtime.RawExtension `json:"agentHelmValues,omitempty"`

	// ManagementRepo is the root repo for setting up
	// your infrastructure with Plural. Usually this
	// will be your `plural up repo`
	//
	// +kubebuilder:validation:Optional
	ManagementRepo *string `json:"managementRepo,omitempty"`

	// Stacks global configuration for stack execution.
	//
	// +kubebuilder:validation:Optional
	Stacks *StackSettings `json:"stacks,omitempty"`

	// Bindings global configuration for access control.
	//
	// +kubebuilder:validation:Optional
	Bindings *DeploymentSettingsBindings `json:"bindings,omitempty"`

	// PrometheusConnection connection details for a prometheus instance to use
	//
	// +kubebuilder:validation:Optional
	PrometheusConnection *HTTPConnection `json:"prometheusConnection,omitempty"`

	// LokiConnection connection details for a loki instance to use
	//
	// +kubebuilder:validation:Optional
	LokiConnection *HTTPConnection `json:"lokiConnection,omitempty"`

	// AI settings specifies a configuration for LLM provider clients
	//
	// +kubebuilder:validation:Optional
	AI *AISettings `json:"ai,omitempty"`

	// Logging settings for connections to log aggregation datastores
	//
	// +kubebuilder:validation:Optional
	Logging *LoggingSettings `json:"logging,omitempty"`

	// Cost settings for managing Plural's cost management features
	//
	// +kubebuilder:validation:Optional
	Cost *CostSettings `json:"cost,omitempty"`

	// DeploymentRepositoryRef is a pointer to the deployment GIT repository to use
	//
	// +kubebuilder:validation:Optional
	DeploymentRepositoryRef *NamespacedName `json:"deploymentRepositoryRef,omitempty"`

	// ScaffoldsRepositoryRef is a pointer to the Scaffolds GIT repository to use
	//
	// +kubebuilder:validation:Optional
	ScaffoldsRepositoryRef *NamespacedName `json:"scaffoldsRepositoryRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

DeploymentSettingsSpec defines the desired state of DeploymentSettings

func (*DeploymentSettingsSpec) DeepCopy

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

func (*DeploymentSettingsSpec) DeepCopyInto

func (in *DeploymentSettingsSpec) DeepCopyInto(out *DeploymentSettingsSpec)

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

type DiffNormalizers

type DiffNormalizers struct {
	Name *string `json:"name,omitempty"`
	Kind *string `json:"kind,omitempty"`

	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`

	// Backfill indicates whether to backfill the given pointers with the current live value
	// or otherwise ignore it entirely.
	// +kubebuilder:validation:Optional
	Backfill *bool `json:"backfill,omitempty"`

	// JSONPointers contains a list of JSON patches to apply to the service, which controls how drift detection works.
	JSONPointers []string `json:"jsonPointers,omitempty"`
}

func (*DiffNormalizers) DeepCopy

func (in *DiffNormalizers) DeepCopy() *DiffNormalizers

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

func (*DiffNormalizers) DeepCopyInto

func (in *DiffNormalizers) DeepCopyInto(out *DiffNormalizers)

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

type ElasticsearchConnection

type ElasticsearchConnection struct {
	// Host is the elasticsearch host to connect to.
	//
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// Index to query in elasticsearch.
	//
	// +kubebuilder:validation:Optional
	Index string `json:"index"`

	// User to connect with basic auth.
	//
	// +kubebuilder:validation:Optional
	User *string `json:"user,omitempty"`

	// PasswordSecretRef is a reference to a secret containing the password to connect with basic auth.
	//
	// +kubebuilder:validation:Optional
	PasswordSecretRef *corev1.SecretKeySelector `json:"passwordSecretRef,omitempty"`
}

func (*ElasticsearchConnection) Attributes

func (*ElasticsearchConnection) DeepCopy

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

func (*ElasticsearchConnection) DeepCopyInto

func (in *ElasticsearchConnection) DeepCopyInto(out *ElasticsearchConnection)

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

type ElasticsearchConnectionSettings

type ElasticsearchConnectionSettings struct {
	// Host is the host of the elasticsearch cluster.
	//
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// Index is the index of the elasticsearch cluster.
	//
	// +kubebuilder:validation:Required
	Index string `json:"index"`

	// User is the user to authenticate with.
	//
	// +kubebuilder:validation:Optional
	User *string `json:"user,omitempty"`

	// PasswordSecretRef is a reference to the local secret holding the password to authenticate with.
	//
	// +kubebuilder:validation:Optional
	PasswordSecretRef *corev1.SecretKeySelector `json:"passwordSecretRef,omitempty"`
}

func (*ElasticsearchConnectionSettings) DeepCopy

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

func (*ElasticsearchConnectionSettings) DeepCopyInto

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

func (*ElasticsearchConnectionSettings) Password

func (in *ElasticsearchConnectionSettings) Password(ctx context.Context, c client.Client, namespace string) (*string, error)

type Env

type Env struct {
	// Name of the environment variable to set.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Name string `json:"name"`

	// Value of the environment variable to set.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Value string `json:"value"`
}

func (*Env) DeepCopy

func (in *Env) DeepCopy() *Env

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

func (*Env) DeepCopyInto

func (in *Env) DeepCopyInto(out *Env)

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

type EnvFrom

type EnvFrom struct {
	// Secret to source environment variables from.
	// +kubebuilder:validation:Type:=string
	Secret string `json:"secret"`

	// ConfigMap to source environment variables from.
	// +kubebuilder:validation:Type:=string
	ConfigMap string `json:"configMap"`
}

func (*EnvFrom) DeepCopy

func (in *EnvFrom) DeepCopy() *EnvFrom

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

func (*EnvFrom) DeepCopyInto

func (in *EnvFrom) DeepCopyInto(out *EnvFrom)

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

type FederatedCredential

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

	Spec   FederatedCredentialSpec `json:"spec,omitempty"`
	Status Status                  `json:"status,omitempty"`
}

FederatedCredential is a way to authenticate users from an external identity provider.

func (*FederatedCredential) Attributes

func (*FederatedCredential) DeepCopy

func (in *FederatedCredential) DeepCopy() *FederatedCredential

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

func (*FederatedCredential) DeepCopyInto

func (in *FederatedCredential) DeepCopyInto(out *FederatedCredential)

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

func (*FederatedCredential) DeepCopyObject

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

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

func (*FederatedCredential) Diff

func (in *FederatedCredential) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*FederatedCredential) SetCondition

func (in *FederatedCredential) SetCondition(condition metav1.Condition)

type FederatedCredentialList

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

FederatedCredentialList contains a list of FederatedCredential

func (*FederatedCredentialList) DeepCopy

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

func (*FederatedCredentialList) DeepCopyInto

func (in *FederatedCredentialList) DeepCopyInto(out *FederatedCredentialList)

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

func (*FederatedCredentialList) DeepCopyObject

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

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

type FederatedCredentialSpec

type FederatedCredentialSpec struct {
	// Issuer is the URL of the identity provider that issues the tokens.
	// +kubebuilder:validation:Required
	Issuer string `json:"issuer"`

	// Scopes are the scopes that the credential will request from the identity provider.
	// +kubebuilder:validation:Optional
	Scopes []string `json:"scopes,omitempty"`

	// ClaimsLike is a JSON expression that matches the claims in the token.
	// All the value strings should be a valid regular expression.
	//
	// Example:
	// 	...
	//	claimsLike:
	//		sub: "repo:myaccount/myrepo:ref:refs/heads/.*"
	//
	// +kubebuilder:validation:Optional
	ClaimsLike *runtime.RawExtension `json:"claimsLike,omitempty"`

	// User is the user email address that will be authenticated by this credential.
	// +kubebuilder:validation:Required
	User string `json:"user"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

FederatedCredentialSpec defines the desired state of FederatedCredential.

func (*FederatedCredentialSpec) DeepCopy

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

func (*FederatedCredentialSpec) DeepCopyInto

func (in *FederatedCredentialSpec) DeepCopyInto(out *FederatedCredentialSpec)

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

type Flow

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

	Spec   FlowSpec `json:"spec,omitempty"`
	Status Status   `json:"status,omitempty"`
}

Flow provides an abstraction layer over complex Kubernetes deployments to simplify application management for developers. It groups related services, pipelines, and infrastructure components into a single logical unit, making it easier to understand and manage application state.

func (*Flow) ConsoleID

func (in *Flow) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*Flow) ConsoleName

func (in *Flow) ConsoleName() string

ConsoleName implements PluralResource interface

func (*Flow) DeepCopy

func (in *Flow) DeepCopy() *Flow

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

func (*Flow) DeepCopyInto

func (in *Flow) DeepCopyInto(out *Flow)

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

func (*Flow) DeepCopyObject

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

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

func (*Flow) Diff

func (in *Flow) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*Flow) FlowName

func (in *Flow) FlowName() string

func (*Flow) SetCondition

func (in *Flow) SetCondition(condition metav1.Condition)

type FlowList

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

FlowList contains a list of Flow resources.

func (*FlowList) DeepCopy

func (in *FlowList) DeepCopy() *FlowList

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

func (*FlowList) DeepCopyInto

func (in *FlowList) DeepCopyInto(out *FlowList)

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

func (*FlowList) DeepCopyObject

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

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

type FlowServerAssociation

type FlowServerAssociation struct {
	// MCPServerRef is a required reference to an MCP server resource.
	// This establishes the connection between the flow and the server.
	// +kubebuilder:validation:Required
	MCPServerRef corev1.ObjectReference `json:"mcpServerRef,omitempty"`
}

func (*FlowServerAssociation) DeepCopy

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

func (*FlowServerAssociation) DeepCopyInto

func (in *FlowServerAssociation) DeepCopyInto(out *FlowServerAssociation)

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

type FlowSpec

type FlowSpec struct {
	// Name of this Flow. If not provided Flow's own name from Flow.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a longform description of the service managed by this flow.
	// This field is used for documentation and UI display purposes.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty"`

	// Icon specifies an optional image icon for the flow to apply branding or improve identification.
	// +kubebuilder:validation:Optional
	Icon *string `json:"icon,omitempty"`

	// ProjectRef allows a global service to be scoped to a specific project only.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Bindings contain read and write policies of this Flow.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Repositories contains a list of git https urls of the application code repositories used in this flow.
	// +kubebuilder:validation:Optional
	Repositories []string `json:"repositories,omitempty"`

	// ServerAssociations contains a list of MCP services you wish to associate with this flow.
	// Can also be managed within the Plural Console UI securely.
	// +kubebuilder:validation:Optional
	ServerAssociations []FlowServerAssociation `json:"serverAssociations,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

FlowSpec defines the desired state of Flow

func (*FlowSpec) DeepCopy

func (in *FlowSpec) DeepCopy() *FlowSpec

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

func (*FlowSpec) DeepCopyInto

func (in *FlowSpec) DeepCopyInto(out *FlowSpec)

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

func (*FlowSpec) HasProjectRef

func (in *FlowSpec) HasProjectRef() bool

type GCPCloudConnection

type GCPCloudConnection struct {
	ServiceAccountKey ObjectKeyReference `json:"serviceAccountKey"`
	ProjectId         string             `json:"projectId"`
}

GCPCloudConnection contains Google Cloud Platform authentication configuration. Enables cloud resource discovery and analysis across GCP projects.

func (*GCPCloudConnection) DeepCopy

func (in *GCPCloudConnection) DeepCopy() *GCPCloudConnection

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

func (*GCPCloudConnection) DeepCopyInto

func (in *GCPCloudConnection) DeepCopyInto(out *GCPCloudConnection)

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

type GateSpec

type GateSpec struct {
	// Job configuration for JOB gate types, enabling custom validation jobs
	// such as integration tests, security scans, or other promotion checks.
	// +kubebuilder:validation:Optional
	Job *JobSpec `json:"job,omitempty"`
}

GateSpec provides detailed configuration for complex gate types, particularly JOB gates.

func (*GateSpec) DeepCopy

func (in *GateSpec) DeepCopy() *GateSpec

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

func (*GateSpec) DeepCopyInto

func (in *GateSpec) DeepCopyInto(out *GateSpec)

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

type GeneratedSecret

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

	Spec   GeneratedSecretSpec   `json:"spec,omitempty"`
	Status GeneratedSecretStatus `json:"status,omitempty"`
}

GeneratedSecret handles templated secret creation and distribution. It allows you to define secret templates with variable substitution and automatically distribute the rendered secrets to multiple namespaces and destinations. This is particularly useful for sharing configuration, credentials, or certificates across multiple applications or environments while maintaining consistency and reducing manual secret management overhead.

func (*GeneratedSecret) DeepCopy

func (in *GeneratedSecret) DeepCopy() *GeneratedSecret

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

func (*GeneratedSecret) DeepCopyInto

func (in *GeneratedSecret) DeepCopyInto(out *GeneratedSecret)

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

func (*GeneratedSecret) DeepCopyObject

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

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

func (*GeneratedSecret) GetSecretName

func (in *GeneratedSecret) GetSecretName() string

GetSecretName returns the name of the rendered template secret for this GeneratedSecret. The name follows the pattern "gs-{name}" where {name} is the GeneratedSecret's name.

func (*GeneratedSecret) SetCondition

func (in *GeneratedSecret) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the GeneratedSecret status.

type GeneratedSecretDestination

type GeneratedSecretDestination struct {
	// Name specifies the name of the secret to create at the destination.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Namespace specifies the namespace where the secret should be created.
	// If omitted, defaults to the same namespace as the GeneratedSecret resource.
	// +kubebuilder:validation:Optional
	Namespace string `json:"namespace,omitempty"`
}

GeneratedSecretDestination defines a target location where the generated secret should be created.

func (*GeneratedSecretDestination) DeepCopy

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

func (*GeneratedSecretDestination) DeepCopyInto

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

type GeneratedSecretList

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

GeneratedSecretList contains a list of GeneratedSecret resources.

func (*GeneratedSecretList) DeepCopy

func (in *GeneratedSecretList) DeepCopy() *GeneratedSecretList

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

func (*GeneratedSecretList) DeepCopyInto

func (in *GeneratedSecretList) DeepCopyInto(out *GeneratedSecretList)

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

func (*GeneratedSecretList) DeepCopyObject

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

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

type GeneratedSecretSpec

type GeneratedSecretSpec struct {
	// Template defines the secret data as key-value pairs in string form.
	// +kubebuilder:validation:Optional
	Template map[string]string `json:"template,omitempty"`

	// Destinations describe the target name and namespace for the generated secrets.
	// +kubebuilder:validation:Optional
	Destinations []GeneratedSecretDestination `json:"destinations,omitempty"`

	// ConfigurationRef references a Secret containing configuration data used to populate template variables.
	// +kubebuilder:validation:Optional
	ConfigurationRef *corev1.SecretReference `json:"configurationRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

GeneratedSecretSpec defines the desired state of GeneratedSecret.

func (*GeneratedSecretSpec) DeepCopy

func (in *GeneratedSecretSpec) DeepCopy() *GeneratedSecretSpec

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

func (*GeneratedSecretSpec) DeepCopyInto

func (in *GeneratedSecretSpec) DeepCopyInto(out *GeneratedSecretSpec)

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

type GeneratedSecretStatus

type GeneratedSecretStatus struct {
	// Status contains the common status fields including conditions.
	Status `json:",inline"`

	// RenderedTemplateSecretRef references the secret containing the final rendered template data.
	// +kubebuilder:validation:Optional
	RenderedTemplateSecretRef *corev1.LocalObjectReference `json:"renderedTemplateSecretRef,omitempty"`
}

GeneratedSecretStatus defines the observed state of GeneratedSecret.

func (*GeneratedSecretStatus) DeepCopy

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

func (*GeneratedSecretStatus) DeepCopyInto

func (in *GeneratedSecretStatus) DeepCopyInto(out *GeneratedSecretStatus)

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

type GitHealth

type GitHealth string
const (
	GitHealthPullable GitHealth = "PULLABLE"
	GitHealthFailed   GitHealth = "FAILED"
)

type GitRef

type GitRef struct {
	// Folder is the folder in the Git repository where the manifests are located.
	// +kubebuilder:validation:Required
	Folder string `json:"folder"`

	// Ref is the Git reference (branch, tag, or commit) to use.
	// +kubebuilder:validation:Required
	Ref string `json:"ref"`

	// Optional files to add to the manifests for this service
	// +kubebuilder:validation:Optional
	Files []string `json:"files,omitempty"`
}

GitRef represents a reference to a Git repository.

func (*GitRef) Attributes

func (in *GitRef) Attributes() *console.GitRefAttributes

func (*GitRef) DeepCopy

func (in *GitRef) DeepCopy() *GitRef

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

func (*GitRef) DeepCopyInto

func (in *GitRef) DeepCopyInto(out *GitRef)

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

type GitRepository

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

	Spec   GitRepositorySpec   `json:"spec,omitempty"`
	Status GitRepositoryStatus `json:"status,omitempty"`
}

GitRepository provides Git-based source control integration for Plural's GitOps workflows. It represents a Git repository available for deployments, enabling automated fetching of manifests, IaC code, and configuration from version-controlled sources. Supports both HTTPS and SSH authentication methods with health monitoring and credential management through ScmConnections or direct secret references.

func (*GitRepository) ConsoleID

func (in *GitRepository) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*GitRepository) ConsoleName

func (in *GitRepository) ConsoleName() string

ConsoleName implements PluralResource interface

func (*GitRepository) DeepCopy

func (in *GitRepository) DeepCopy() *GitRepository

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

func (*GitRepository) DeepCopyInto

func (in *GitRepository) DeepCopyInto(out *GitRepository)

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

func (*GitRepository) DeepCopyObject

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

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

func (*GitRepository) SetCondition

func (in *GitRepository) SetCondition(condition metav1.Condition)

type GitRepositoryList

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

GitRepositoryList contains a list of GitRepository resources.

func (*GitRepositoryList) DeepCopy

func (in *GitRepositoryList) DeepCopy() *GitRepositoryList

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

func (*GitRepositoryList) DeepCopyInto

func (in *GitRepositoryList) DeepCopyInto(out *GitRepositoryList)

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

func (*GitRepositoryList) DeepCopyObject

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

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

type GitRepositorySpec

type GitRepositorySpec struct {
	// Url of the GitRepository, supporting both HTTPS and SSH protocols.
	// This field is immutable once set.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Url is immutable"
	Url string `json:"url"`

	// ConnectionRef references an ScmConnection to reuse existing credentials and configuration
	// for authenticating with GitRepository.
	// +kubebuilder:validation:Optional
	ConnectionRef *corev1.ObjectReference `json:"connectionRef,omitempty"`

	// CredentialsRef references a Secret containing authentication credentials for this repository.
	// The secret should contain keys for privateKey, passphrase, username, and password as needed
	// for the repository's authentication method.
	// +kubebuilder:validation:Optional
	CredentialsRef *corev1.SecretReference `json:"credentialsRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

GitRepositorySpec defines the desired state of the GitRepository resource.

func (*GitRepositorySpec) DeepCopy

func (in *GitRepositorySpec) DeepCopy() *GitRepositorySpec

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

func (*GitRepositorySpec) DeepCopyInto

func (in *GitRepositorySpec) DeepCopyInto(out *GitRepositorySpec)

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

type GitRepositoryStatus

type GitRepositoryStatus struct {
	Status `json:",inline"`

	// Health status.
	// One of PULLABLE, FAILED.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum:=PULLABLE;FAILED
	Health GitHealth `json:"health,omitempty"`

	// Message indicating details about the last transition.
	// +kubebuilder:validation:Optional
	Message *string `json:"message,omitempty"`
}

func (*GitRepositoryStatus) DeepCopy

func (in *GitRepositoryStatus) DeepCopy() *GitRepositoryStatus

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

func (*GitRepositoryStatus) DeepCopyInto

func (in *GitRepositoryStatus) DeepCopyInto(out *GitRepositoryStatus)

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

type GlobalService

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

	Spec   GlobalServiceSpec `json:"spec,omitempty"`
	Status Status            `json:"status,omitempty"`
}

GlobalService handles the deployment and management of services across multiple clusters. It provides a centralized way to define service deployments that should be replicated across a fleet of Kubernetes clusters, with flexible targeting based on cluster properties, tags, and organizational boundaries.

func (*GlobalService) Attributes

func (gs *GlobalService) Attributes(projectId *string) console.GlobalServiceAttributes

Attributes converts the GlobalService spec to console API attributes for upstream synchronization.

func (*GlobalService) ConsoleName

func (gs *GlobalService) ConsoleName() string

ConsoleName implements NamespacedPluralResource interface

func (*GlobalService) DeepCopy

func (in *GlobalService) DeepCopy() *GlobalService

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

func (*GlobalService) DeepCopyInto

func (in *GlobalService) DeepCopyInto(out *GlobalService)

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

func (*GlobalService) DeepCopyObject

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

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

func (*GlobalService) SetCondition

func (gs *GlobalService) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the GlobalService status.

type GlobalServiceList

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

GlobalServiceList contains a list of GlobalService resources.

func (*GlobalServiceList) DeepCopy

func (in *GlobalServiceList) DeepCopy() *GlobalServiceList

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

func (*GlobalServiceList) DeepCopyInto

func (in *GlobalServiceList) DeepCopyInto(out *GlobalServiceList)

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

func (*GlobalServiceList) DeepCopyObject

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

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

type GlobalServiceSpec

type GlobalServiceSpec struct {
	// Name of this service.
	// If not provided, the name from GlobalService.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Tags specify a set of key-value pairs used to select target clusters for this global service.
	// Only clusters that match all specified tags will be included in the deployment scope.
	// This provides a flexible mechanism for targeting specific cluster groups or environments.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// Reparent indicates whether this global service should take ownership of existing
	// Plural services that match the targeting criteria. When true, existing services
	// will be brought under the management of this GlobalService resource.
	// +kubebuilder:validation:Optional
	Reparent *bool `json:"reparent,omitempty"`

	// Interval specifies the reconciliation interval for the global service.
	// This controls how frequently the controller checks and updates the service deployments
	// across target clusters. Defaults to 10 minutes if not specified.
	// +kubebuilder:validation:Optional
	Interval *string `json:"interval,omitempty"`

	// Cascade defines the deletion behavior for resources owned by this global service.
	// This controls whether resources are removed from Plural Console only, target clusters only,
	// or both during service deletion operations.
	// +kubebuilder:validation:Optional
	Cascade *Cascade `json:"cascade,omitempty"`

	// Context provides data for dynamic template overrides of service deployment properties
	// such as Helm chart versions, values files, or other configuration parameters.
	// This enables environment-specific customization while maintaining a single service definition.
	// +kubebuilder:validation:Optional
	Context *TemplateContext `json:"context,omitempty"`

	// Distro specifies the Kubernetes distribution type for target cluster selection.
	// This allows targeting services to specific cluster types that may have
	// distribution-specific requirements or optimizations.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=GENERIC;EKS;AKS;GKE;RKE;K3S
	Distro *console.ClusterDistro `json:"distro,omitempty"`

	// Mgmt indicates whether to include management clusters in the target cluster set.
	// Management clusters typically host the Plural Console and operators, and may
	// require special consideration for service deployments.
	// +kubebuilder:validation:Optional
	Mgmt *bool `json:"mgmt,omitempty"`

	// ServiceRef references an existing ServiceDeployment to replicate across target clusters.
	// This allows leveraging an existing service definition as a template for global deployment.
	// +kubebuilder:validation:Optional
	ServiceRef *corev1.ObjectReference `json:"serviceRef,omitempty"`

	// ProviderRef restricts deployment to clusters associated with a specific cloud provider.
	// This enables provider-specific service deployments that may require particular
	// cloud integrations or provider-native services.
	// Deprecated.
	// Do not use.
	// +kubebuilder:validation:Optional
	ProviderRef *corev1.ObjectReference `json:"providerRef,omitempty"`

	// ProjectRef constrains the global service scope to clusters within a specific project.
	// This provides project-level isolation and ensures services are only deployed
	// to clusters belonging to the designated project.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Template defines the service deployment specification to be applied across target clusters.
	// This contains the core service definition including Helm charts, configurations,
	// and deployment parameters that will be instantiated on each matching cluster.
	// +kubebuilder:validation:Optional
	Template *ServiceTemplate `json:"template,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

GlobalServiceSpec defines the desired state of a GlobalService. It enables the deployment and management of services across multiple Kubernetes clusters with flexible targeting, templating, and lifecycle management capabilities.

func (*GlobalServiceSpec) DeepCopy

func (in *GlobalServiceSpec) DeepCopy() *GlobalServiceSpec

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

func (*GlobalServiceSpec) DeepCopyInto

func (in *GlobalServiceSpec) DeepCopyInto(out *GlobalServiceSpec)

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

func (*GlobalServiceSpec) TagsAttribute

func (gss *GlobalServiceSpec) TagsAttribute() []*console.TagAttributes

TagsAttribute converts the tags map to console API tag attributes format.

type GraphStore

type GraphStore struct {
	// Enabled controls whether the graph store is enabled or not.
	//
	// +kubebuilder:default=false
	// +kubebuilder:validation:Optional
	Enabled *bool `json:"enabled,omitempty"`

	// Store is the type of the graph store to use.
	//
	// +kubebuilder:validation:Enum=ELASTIC
	// +kubebuilder:validation:Optional
	Store *console.VectorStore `json:"store,omitempty"`

	// Elastic configuration for the graph store.
	//
	// +kubebuilder:validation:Optional
	Elastic *ElasticsearchConnectionSettings `json:"elastic,omitempty"`
}

func (*GraphStore) Attributes

func (in *GraphStore) Attributes(ctx context.Context, c client.Client, namespace string) (*console.GraphStoreAttributes, error)

func (*GraphStore) DeepCopy

func (in *GraphStore) DeepCopy() *GraphStore

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

func (*GraphStore) DeepCopyInto

func (in *GraphStore) DeepCopyInto(out *GraphStore)

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

type HTTPConnection

type HTTPConnection struct {
	// Host is the host to connect to.
	//
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// User to connect with basic auth.
	//
	// +kubebuilder:validation:Optional
	User *string `json:"user,omitempty"`

	// Password to connect w/ for basic auth.
	//
	// +kubebuilder:validation:Optional
	Password *string `json:"password,omitempty"`

	// PasswordSecretRef is a reference to a secret containing the password to connect with basic auth.
	//
	// +kubebuilder:validation:Optional
	PasswordSecretRef *corev1.SecretKeySelector `json:"passwordSecretRef,omitempty"`
}

func (*HTTPConnection) Attributes

func (*HTTPConnection) DeepCopy

func (in *HTTPConnection) DeepCopy() *HTTPConnection

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

func (*HTTPConnection) DeepCopyInto

func (in *HTTPConnection) DeepCopyInto(out *HTTPConnection)

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

type Hasher

type Hasher func(interface{}) (string, error)

Hasher provides a function interface for generating hash values from objects to enable drift detection and state comparison for Provider resources. +kubebuilder:object:generate:=false

type HelmMinimal

type HelmMinimal struct {
	// Values a Helm values file to use when rendering this Helm chart.
	Values *string `json:"values,omitempty"`

	// ValuesFiles a list of relative paths to values files to use for Helm chart templating.
	ValuesFiles []string `json:"valuesFiles,omitempty"`

	// Release is a Helm release name to use when rendering this Helm chart.
	Release *string `json:"release,omitempty"`
}

func (*HelmMinimal) DeepCopy

func (in *HelmMinimal) DeepCopy() *HelmMinimal

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

func (*HelmMinimal) DeepCopyInto

func (in *HelmMinimal) DeepCopyInto(out *HelmMinimal)

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

type HelmRepository

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

	// Spec defines the desired state of the HelmRepository, including the repository URL
	// and authentication configuration. The URL is immutable once set to ensure consistency
	// across deployments and prevent accidental repository changes.
	// +kubebuilder:validation:Required
	Spec HelmRepositorySpec `json:"spec"`

	// Status represents the current state of this HelmRepository resource, including
	// synchronization status with the Console API and any error conditions.
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

HelmRepository is a Kubernetes custom resource that represents a Helm chart repository for use with the Plural Console deployment system. It enables integration with various Helm repository providers including public repositories, private cloud-hosted repositories, and on-premises solutions with comprehensive authentication support.

func (*HelmRepository) Attributes

func (in *HelmRepository) Attributes(ctx context.Context, authAttributesGetter AuthAttributesGetter) (*console.HelmRepositoryAttributes, error)

Attributes converts the HelmRepository spec to Console API attributes for upstream synchronization. It uses the provided AuthAttributesGetter to resolve authentication credentials dynamically, allowing for secret-based authentication and runtime credential resolution.

func (*HelmRepository) ConsoleID

func (in *HelmRepository) ConsoleID() *string

ConsoleID returns the unique identifier used in the Console API for this Helm repository. This ID is used for cross-referencing between the Kubernetes resource and the Console's internal representation of the repository.

func (*HelmRepository) ConsoleName

func (in *HelmRepository) ConsoleName() string

ConsoleName returns the name used in the Console API for this Helm repository. By convention, this uses the repository URL as the identifier since URLs are unique.

func (*HelmRepository) DeepCopy

func (in *HelmRepository) DeepCopy() *HelmRepository

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

func (*HelmRepository) DeepCopyInto

func (in *HelmRepository) DeepCopyInto(out *HelmRepository)

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

func (*HelmRepository) DeepCopyObject

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

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

func (*HelmRepository) Diff

func (in *HelmRepository) Diff(ctx context.Context, getter AuthAttributesGetter, hasher Hasher) (changed bool, sha string, err error)

Diff compares the current HelmRepository configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison. This is used for drift detection and ensuring the Console API stays synchronized with the Kubernetes resource state.

func (*HelmRepository) SetCondition

func (in *HelmRepository) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the HelmRepository status.

type HelmRepositoryAuth

type HelmRepositoryAuth struct {
	// Basic specifies username/password authentication for repositories that support HTTP Basic Auth.
	// Commonly used with private Helm repositories, Harbor registries, and other traditional
	// repository managers that implement standard HTTP authentication.
	// +kubebuilder:validation:Optional
	Basic *HelmRepositoryAuthBasic `json:"basic,omitempty"`

	// Bearer specifies token-based authentication for repositories that support Bearer tokens.
	// Used with modern container registries and repositories that implement OAuth2 or similar
	// token-based authentication schemes.
	// +kubebuilder:validation:Optional
	Bearer *HelmRepositoryAuthBearer `json:"bearer,omitempty"`

	// Aws specifies AWS-specific authentication for Amazon ECR and other AWS-hosted repositories.
	// Supports both static credentials and IAM role-based authentication for secure access
	// to private repositories hosted in Amazon Web Services.
	// +kubebuilder:validation:Optional
	Aws *HelmRepositoryAuthAWS `json:"aws,omitempty"`

	// Azure specifies Azure-specific authentication for Azure Container Registry (ACR).
	// Supports service principal authentication and managed identity for secure access
	// to private repositories hosted in Microsoft Azure.
	// +kubebuilder:validation:Optional
	Azure *HelmRepositoryAuthAzure `json:"azure,omitempty"`

	// Gcp specifies Google Cloud-specific authentication for Google Artifact Registry.
	// Supports service account key authentication for secure access to private
	// repositories hosted in Google Cloud Platform.
	// +kubebuilder:validation:Optional
	Gcp *HelmRepositoryAuthGCP `json:"gcp,omitempty"`
}

HelmRepositoryAuth defines the authentication configuration for a Helm repository. It supports multiple authentication methods, but only one should be specified per repository. The authentication method used should match the Provider specified in the HelmRepositorySpec.

func (*HelmRepositoryAuth) DeepCopy

func (in *HelmRepositoryAuth) DeepCopy() *HelmRepositoryAuth

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

func (*HelmRepositoryAuth) DeepCopyInto

func (in *HelmRepositoryAuth) DeepCopyInto(out *HelmRepositoryAuth)

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

type HelmRepositoryAuthAWS

type HelmRepositoryAuthAWS struct {
	// AccessKey specifies the AWS access key ID for authentication.
	// When using static credentials, this should be set along with the secret access key.
	// For enhanced security, consider using IAM roles instead of static credentials.
	// +kubebuilder:validation:Optional
	AccessKey *string `json:"accessKey,omitempty"`

	// SecretAccessKeySecretRef references a Kubernetes Secret containing the AWS secret access key.
	// The entire secret content will be used as the secret access key.
	// This approach is deprecated in favor of SecretAccessKeySecretKeyRef for better secret management.
	// +kubebuilder:validation:Optional
	SecretAccessKeySecretRef *corev1.SecretReference `json:"secretAccessKeySecretRef,omitempty"`

	// SecretAccessKeySecretKeyRef references a specific key within a Kubernetes Secret containing the secret access key.
	// This is the preferred method for storing AWS credentials as it allows multiple
	// credential sets to be organized within a single secret.
	// +kubebuilder:validation:Optional
	SecretAccessKeySecretKeyRef *corev1.SecretKeySelector `json:"secretAccessKeySecretKeyRef,omitempty"`

	// AssumeRoleArn specifies an AWS IAM role ARN to assume for repository access.
	// This enables cross-account access and role-based authentication, providing
	// enhanced security and flexibility in AWS environments.
	// +kubebuilder:validation:Optional
	AssumeRoleArn *string `json:"assumeRoleArn,omitempty"`
}

HelmRepositoryAuthAWS defines AWS-specific authentication for Amazon ECR and other AWS-hosted repositories. It supports both static credentials and IAM role assumption for flexible authentication in various AWS deployment scenarios.

func (*HelmRepositoryAuthAWS) DeepCopy

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

func (*HelmRepositoryAuthAWS) DeepCopyInto

func (in *HelmRepositoryAuthAWS) DeepCopyInto(out *HelmRepositoryAuthAWS)

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

type HelmRepositoryAuthAzure

type HelmRepositoryAuthAzure struct {
	// ClientID specifies the Azure service principal client ID.
	// This is used in conjunction with the client secret to authenticate with Azure services.
	// +kubebuilder:validation:Optional
	ClientID *string `json:"clientId,omitempty"`

	// ClientSecretSecretRef references a Kubernetes Secret containing the Azure service principal client secret.
	// The entire secret content will be used as the client secret.
	// This approach is deprecated in favor of ClientSecretSecretKeyRef for better secret management.
	// +kubebuilder:validation:Optional
	ClientSecretSecretRef *corev1.SecretReference `json:"clientSecretSecretRef,omitempty"`

	// ClientSecretSecretKeyRef references a specific key within a Kubernetes Secret containing the client secret.
	// This is the preferred method for storing Azure credentials as it allows proper
	// secret organization and key-based access control.
	// +kubebuilder:validation:Optional
	ClientSecretSecretKeyRef *corev1.SecretKeySelector `json:"clientSecretSecretKeyRef,omitempty"`

	// TenantID specifies the Azure Active Directory tenant ID.
	// This identifies the Azure AD instance that contains the service principal
	// and is required for proper authentication scope.
	// +kubebuilder:validation:Optional
	TenantID *string `json:"tenantId,omitempty"`

	// SubscriptionID specifies the Azure subscription ID.
	// This identifies the Azure subscription containing the resources
	// and may be required for certain repository access scenarios.
	// +kubebuilder:validation:Optional
	SubscriptionID *string `json:"subscriptionId,omitempty"`
}

HelmRepositoryAuthAzure defines Azure-specific authentication for Azure Container Registry (ACR). It supports service principal authentication which is the recommended approach for automated access to private Azure repositories.

func (*HelmRepositoryAuthAzure) DeepCopy

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

func (*HelmRepositoryAuthAzure) DeepCopyInto

func (in *HelmRepositoryAuthAzure) DeepCopyInto(out *HelmRepositoryAuthAzure)

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

type HelmRepositoryAuthBasic

type HelmRepositoryAuthBasic struct {
	// Username specifies the username for HTTP Basic authentication.
	// This is typically a user account or service account name configured
	// in the target repository system.
	// +kubebuilder:validation:Required
	Username string `json:"username"`

	// PasswordSecretRef references a Kubernetes Secret containing the password for Basic authentication.
	// The entire secret content will be used as the password.
	// This approach is deprecated in favor of PasswordSecretKeyRef for better secret management.
	// +kubebuilder:validation:Optional
	PasswordSecretRef *corev1.SecretReference `json:"passwordSecretRef,omitempty"`

	// PasswordSecretKeyRef references a specific key within a Kubernetes Secret that contains the password.
	// This is the preferred method for password storage as it allows multiple credentials
	// to be stored in a single secret with proper key-based access.
	// +kubebuilder:validation:Optional
	PasswordSecretKeyRef *corev1.SecretKeySelector `json:"passwordSecretKeyRef,omitempty"`
}

HelmRepositoryAuthBasic defines username/password authentication for Helm repositories. This authentication method is widely supported by traditional repository managers and provides a simple way to secure access to private Helm charts.

func (*HelmRepositoryAuthBasic) DeepCopy

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

func (*HelmRepositoryAuthBasic) DeepCopyInto

func (in *HelmRepositoryAuthBasic) DeepCopyInto(out *HelmRepositoryAuthBasic)

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

type HelmRepositoryAuthBearer

type HelmRepositoryAuthBearer struct {
	// TokenSecretRef references a Kubernetes Secret containing the bearer token.
	// The entire secret content will be used as the authentication token.
	// This approach is deprecated in favor of TokenSecretKeyRef for better secret management.
	// +kubebuilder:validation:Optional
	TokenSecretRef *corev1.SecretReference `json:"tokenSecretRef,omitempty"`

	// TokenSecretKeyRef references a specific key within a Kubernetes Secret that contains the bearer token.
	// This is the preferred method for token storage as it allows multiple tokens
	// to be stored in a single secret with proper key-based access.
	// +kubebuilder:validation:Optional
	TokenSecretKeyRef *corev1.SecretKeySelector `json:"tokenSecretKeyRef,omitempty"`
}

HelmRepositoryAuthBearer defines token-based authentication for Helm repositories. This authentication method is commonly used with modern container registries and repositories that implement OAuth2 or similar token-based authentication.

func (*HelmRepositoryAuthBearer) DeepCopy

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

func (*HelmRepositoryAuthBearer) DeepCopyInto

func (in *HelmRepositoryAuthBearer) DeepCopyInto(out *HelmRepositoryAuthBearer)

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

type HelmRepositoryAuthGCP

type HelmRepositoryAuthGCP struct {
	// ApplicationCredentialsSecretRef references a Kubernetes Secret containing the GCP service account key JSON.
	// The entire secret content will be used as the service account credentials.
	// This approach is deprecated in favor of ApplicationCredentialsSecretKeyRef for better secret management.
	// +kubebuilder:validation:Optional
	ApplicationCredentialsSecretRef *corev1.SecretReference `json:"applicationCredentialsSecretRef,omitempty"`

	// ApplicationCredentialsSecretKeyRef references a specific key within a Kubernetes Secret containing the service account JSON.
	// This is the preferred method for storing GCP credentials as it allows multiple
	// service account keys to be organized within a single secret with proper access control.
	// +kubebuilder:validation:Optional
	ApplicationCredentialsSecretKeyRef *corev1.SecretKeySelector `json:"applicationCredentialsSecretKeyRef,omitempty"`
}

HelmRepositoryAuthGCP defines Google Cloud-specific authentication for Google Artifact Registry. It uses service account key-based authentication which is the standard approach for accessing private Google Cloud repositories from external systems.

func (*HelmRepositoryAuthGCP) DeepCopy

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

func (*HelmRepositoryAuthGCP) DeepCopyInto

func (in *HelmRepositoryAuthGCP) DeepCopyInto(out *HelmRepositoryAuthGCP)

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

type HelmRepositoryList

type HelmRepositoryList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []HelmRepository `json:"items"`
}

HelmRepositoryList contains a list of HelmRepository resources.

func (*HelmRepositoryList) DeepCopy

func (in *HelmRepositoryList) DeepCopy() *HelmRepositoryList

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

func (*HelmRepositoryList) DeepCopyInto

func (in *HelmRepositoryList) DeepCopyInto(out *HelmRepositoryList)

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

func (*HelmRepositoryList) DeepCopyObject

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

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

type HelmRepositorySpec

type HelmRepositorySpec struct {
	// URL specifies the HTTP/HTTPS URL of the Helm repository.
	// This field is immutable once set to prevent accidental changes that could break
	// existing service deployments that depend on this repository.
	// Supported formats include standard Helm repository URLs and OCI registry URLs.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="URL is immutable"
	URL string `json:"url"`

	// Provider specifies the authentication provider type for this Helm repository.
	// This determines which authentication method will be used when accessing the repository.
	// Different providers support different authentication mechanisms optimized for their platforms.
	// +kubebuilder:example:=AWS
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=BASIC;BEARER;GCP;AZURE;AWS
	Provider *console.HelmAuthProvider `json:"provider,omitempty"`

	// Auth contains the authentication configuration for accessing the Helm repository.
	// The specific authentication method used depends on the Provider field.
	// Only one authentication method should be configured per repository.
	// +kubebuilder:validation:Optional
	Auth *HelmRepositoryAuth `json:"auth,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

HelmRepositorySpec defines the desired state of a HelmRepository.

func (*HelmRepositorySpec) DeepCopy

func (in *HelmRepositorySpec) DeepCopy() *HelmRepositorySpec

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

func (*HelmRepositorySpec) DeepCopyInto

func (in *HelmRepositorySpec) DeepCopyInto(out *HelmRepositorySpec)

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

type HttpProxyConfiguration

type HttpProxyConfiguration struct {
	// The url of your HTTP proxy.
	// +kubebuilder:validation:Required
	URL string `json:"url"`
}

func (*HttpProxyConfiguration) DeepCopy

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

func (*HttpProxyConfiguration) DeepCopyInto

func (in *HttpProxyConfiguration) DeepCopyInto(out *HttpProxyConfiguration)

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

type InfrastructureStack

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

	Spec   InfrastructureStackSpec `json:"spec,omitempty"`
	Status Status                  `json:"status,omitempty"`
}

InfrastructureStack provides a scalable framework to manage infrastructure as code with a K8s-friendly, API-driven approach. It declaratively defines a stack with a type, Git repository location, and target cluster for execution. On each commit to the tracked repository, a run is created which the Plural deployment operator detects and executes on the targeted cluster, enabling fine-grained permissions and network location control for IaC runs.

func (*InfrastructureStack) DeepCopy

func (in *InfrastructureStack) DeepCopy() *InfrastructureStack

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

func (*InfrastructureStack) DeepCopyInto

func (in *InfrastructureStack) DeepCopyInto(out *InfrastructureStack)

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

func (*InfrastructureStack) DeepCopyObject

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

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

func (*InfrastructureStack) HasObservableMetrics

func (p *InfrastructureStack) HasObservableMetrics() bool

func (*InfrastructureStack) HasProjectRef

func (p *InfrastructureStack) HasProjectRef() bool

func (*InfrastructureStack) HasStackDefinitionRef

func (p *InfrastructureStack) HasStackDefinitionRef() bool

func (*InfrastructureStack) ProjectName

func (p *InfrastructureStack) ProjectName() string

func (*InfrastructureStack) SetCondition

func (p *InfrastructureStack) SetCondition(condition metav1.Condition)

func (*InfrastructureStack) StackDefinitionObjectKey

func (p *InfrastructureStack) StackDefinitionObjectKey() client.ObjectKey

func (*InfrastructureStack) StackName

func (p *InfrastructureStack) StackName() string

type InfrastructureStackList

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

InfrastructureStackList contains a list of InfrastructureStack resources.

func (*InfrastructureStackList) DeepCopy

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

func (*InfrastructureStackList) DeepCopyInto

func (in *InfrastructureStackList) DeepCopyInto(out *InfrastructureStackList)

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

func (*InfrastructureStackList) DeepCopyObject

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

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

type InfrastructureStackSpec

type InfrastructureStackSpec struct {
	// Name of this stack.
	// If not provided, the name from InfrastructureStack.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Type specifies the IaC tool to use for executing the stack.
	// One of TERRAFORM, ANSIBLE, CUSTOM.
	// +kubebuilder:validation:Enum=TERRAFORM;ANSIBLE;CUSTOM
	// +kubebuilder:validation:Required
	Type console.StackType `json:"type"`

	// Interval specifies the interval at which the stack will be reconciled, default is 5m
	// +kubebuilder:validation:Optional
	Interval *string `json:"interval,omitempty"`

	// RepositoryRef references the GitRepository containing the IaC source code.
	// +kubebuilder:validation:Required
	RepositoryRef corev1.ObjectReference `json:"repositoryRef"`

	// ClusterRef references the target Cluster where this stack will be executed.
	// +kubebuilder:validation:Required
	ClusterRef corev1.ObjectReference `json:"clusterRef"`

	// ProjectRef references a project this stack belongs to.
	// If not provided, it will use the default project.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Git contains reference within the repository where the IaC manifests are located.
	Git GitRef `json:"git"`

	// ManageState indicates whether Plural should manage the Terraform state of this stack.
	// +kubebuilder:validation:Optional
	ManageState *bool `json:"manageState,omitempty"`

	// Workdir specifies the working directory within the Git repository to execute commands in.
	// It is useful for projects with external modules or nested folder structures.
	// +kubebuilder:validation:Optional
	Workdir *string `json:"workdir,omitempty"`

	// JobSpec contains an optional configuration for the job that will apply this stack.
	// +kubebuilder:validation:Optional
	JobSpec *JobSpec `json:"jobSpec,omitempty"`

	// Configuration specifies version/image config for the IaC tool being used.
	// +kubebuilder:validation:Optional
	Configuration *StackConfiguration `json:"configuration,omitempty"`

	// Cron configuration for automated, scheduled generation of stack runs.
	// +kubebuilder:validation:Optional
	Cron *StackCron `json:"cron,omitempty"`

	// Approval when set to true, requires human approval before Terraform apply triggers,
	// ensuring verification of the plan to reduce misconfiguration risk.
	// +kubebuilder:validation:Optional
	Approval *bool `json:"approval,omitempty"`

	// Bindings contain read and write policies of this stack.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Environment variables to inject into the stack execution environment.
	// +kubebuilder:validation:Optional
	Environment []StackEnvironment `json:"environment,omitempty"`

	// Files to mount from Secrets into the stack execution environment,
	// commonly used for cloud credentials (though IRSA/Workload Identity is preferred).
	// +kubebuilder:validation:Optional
	Files []StackFile `json:"files,omitempty"`

	// Detach indicates whether to detach the stack on deletion instead of destroying it.
	// This leaves all cloud resources in place.
	// +kubebuilder:validation:Optional
	Detach bool `json:"detach,omitempty"`

	// Actor is a user email to use for default Plural authentication in this stack.
	// +kubebuilder:validation:Optional
	Actor *string `json:"actor,omitempty"`

	// +kubebuilder:validation:Optional
	ScmConnectionRef *corev1.ObjectReference `json:"scmConnectionRef,omitempty"`

	// +kubebuilder:validation:Optional
	StackDefinitionRef *corev1.ObjectReference `json:"stackDefinitionRef,omitempty"`

	// ObservableMetrics is a list of metrics to poll to determine if a stack run should be canceled.
	// +kubebuilder:validation:Optional
	ObservableMetrics []ObservableMetric `json:"observableMetrics,omitempty"`

	// Tags represent a set of key-value pairs that can be used to filter stacks.
	// +kubebuilder:validation:Optional
	Tags map[string]string `json:"tags,omitempty"`

	// Variables represent a file with variables in the stack run environment.
	// It will be automatically passed to the specific tool depending on the
	// stack Type (except [console.StackTypeCustom]).
	// +kubebuilder:validation:Optional
	Variables *runtime.RawExtension `json:"variables,omitempty"`

	// PolicyEngine is a configuration for applying policy enforcement to a stack.
	// +kubebuilder:validation:Optional
	PolicyEngine *PolicyEngine `json:"policyEngine,omitempty"`

	// AgentId represents agent session ID that created this stack.
	// It is used for UI linking and otherwise ignored.
	// +kubebuilder:validation:Optional
	AgentId *string `json:"agentId,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

InfrastructureStackSpec defines the desired state of the InfrastructureStack.

func (*InfrastructureStackSpec) DeepCopy

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

func (*InfrastructureStackSpec) DeepCopyInto

func (in *InfrastructureStackSpec) DeepCopyInto(out *InfrastructureStackSpec)

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

type JobSpec

type JobSpec struct {
	// Namespace where the job will be executed.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Namespace string `json:"namespace"`

	// Containers to run as part of the job, such as test runners or validation scripts.
	// +kubebuilder:validation:Optional
	Containers []*Container `json:"containers,omitempty"`

	// Labels to apply to the job for organization and selection.
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations to apply to the job for additional metadata.
	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// NodeSelector to apply to the job for scheduling.
	// +kubebuilder:validation:Optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations to apply to the job for scheduling.
	// +kubebuilder:validation:Optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// ServiceAccount to use for the job execution.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	ServiceAccount *string `json:"serviceAccount,omitempty"`

	// Raw allows defining the job using a full Kubernetes JobSpec manifest
	// instead of the simplified container-based approach.
	// +kubebuilder:validation:Optional
	Raw *batchv1.JobSpec `json:"raw,omitempty"`

	// Resources specification that overrides implicit container resources
	// when containers are not directly configured.
	// +kubebuilder:validation:Optional
	Resources *ContainerResources `json:"resources,omitempty"`
}

JobSpec defines a Kubernetes Job to execute as part of a JOB gate, allowing inline job definition with containers, resources, and Kubernetes-native configurations.

func (*JobSpec) DeepCopy

func (in *JobSpec) DeepCopy() *JobSpec

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

func (*JobSpec) DeepCopyInto

func (in *JobSpec) DeepCopyInto(out *JobSpec)

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

type LoggingSettings

type LoggingSettings struct {
	// Enabled defines whether to enable the logging integration or not.
	//
	// +kubebuilder:validation:Optional
	Enabled *bool `json:"enabled,omitempty"`

	// Driver is the type of log aggregation solution you wish to use.
	//
	// +kubebuilder:validation:Enum=VICTORIA;ELASTIC;OPENSEARCH
	// +kubebuilder:default=VICTORIA
	// +kubebuilder:validation:Optional
	Driver *console.LogDriver `json:"driver,omitempty"`

	// Victoria configures a connection to VictoriaMetrics
	//
	// +kubebuilder:validation:Optional
	Victoria *HTTPConnection `json:"victoria,omitempty"`

	// Elastic configures a connection to elasticsearch
	//
	// +kubebuilder:validation:Optional
	Elastic *ElasticsearchConnection `json:"elastic,omitempty"`

	// Opensearch configures a connection to opensearch
	//
	// +kubebuilder:validation:Optional
	Opensearch *OpensearchConnection `json:"opensearch,omitempty"`
}

func (*LoggingSettings) Attributes

func (*LoggingSettings) DeepCopy

func (in *LoggingSettings) DeepCopy() *LoggingSettings

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

func (*LoggingSettings) DeepCopyInto

func (in *LoggingSettings) DeepCopyInto(out *LoggingSettings)

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

type MCPServer

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

	Spec   MCPServerSpec `json:"spec,omitempty"`
	Status Status        `json:"status,omitempty"`
}

MCPServer represents a Model Context Protocol server for AI tool integration within the Plural Console environment. MCP servers enable large language models to execute functions, access external APIs, and interact with various systems.

func (*MCPServer) DeepCopy

func (in *MCPServer) DeepCopy() *MCPServer

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

func (*MCPServer) DeepCopyInto

func (in *MCPServer) DeepCopyInto(out *MCPServer)

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

func (*MCPServer) DeepCopyObject

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

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

func (*MCPServer) Diff

func (in *MCPServer) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*MCPServer) GetServerName

func (in *MCPServer) GetServerName() string

GetServerName returns the effective server name to be used for this MCP server. It returns the explicitly configured name if provided, otherwise falls back to the MCPServer resource's own name from metadata.

func (*MCPServer) SetCondition

func (in *MCPServer) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the MCPServer status.

type MCPServerAuthentication

type MCPServerAuthentication struct {
	// Plural enables built-in Plural JWT authentication for this MCP server.
	// When true, the server will receive a valid Plural JWT token in requests,
	// allowing it to authenticate and authorize operations within the Plural ecosystem.
	// +kubebuilder:validation:Optional
	Plural *bool `json:"plural,omitempty"`

	// Headers specify custom HTTP headers required for authentication with this MCP server.
	// This allows integration with servers that use API keys, bearer tokens, or other
	// header-based authentication schemes. Common examples include "Authorization",
	// "X-API-Key", or custom authentication headers.
	// +kubebuilder:validation:Optional
	Headers map[string]string `json:"headers,omitempty"`
}

MCPServerAuthentication defines the authentication configuration for an MCP server. It supports multiple authentication methods to integrate with various systems and security requirements, from simple JWT tokens to custom header-based authentication.

func (*MCPServerAuthentication) DeepCopy

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

func (*MCPServerAuthentication) DeepCopyInto

func (in *MCPServerAuthentication) DeepCopyInto(out *MCPServerAuthentication)

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

type MCPServerList

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

MCPServerList contains a list of MCPServer resources.

func (*MCPServerList) DeepCopy

func (in *MCPServerList) DeepCopy() *MCPServerList

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

func (*MCPServerList) DeepCopyInto

func (in *MCPServerList) DeepCopyInto(out *MCPServerList)

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

func (*MCPServerList) DeepCopyObject

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

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

type MCPServerSpec

type MCPServerSpec struct {
	// Name specifies the name for this MCP server.
	// If not provided, the name from the resource metadata will be used.
	// This name is used for identification and referencing in AI workflows.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// URL is the HTTP endpoint where the MCP server is hosted.
	// This must be a valid HTTP or HTTPS URL that the AI system can reach
	// to execute tool calls and interact with the server's capabilities.
	// +kubebuilder:validation:Required
	URL string `json:"url,omitempty"`

	// Bindings define the read and write access policies for this MCP server.
	// These control which users and groups can view, modify, or execute tools
	// provided by this server, enabling fine-grained access control.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Authentication specifies the authentication configuration for accessing this MCP server.
	// Different authentication methods are supported including built-in Plural JWT
	// and custom HTTP headers for integration with various authentication systems.
	// +kubebuilder:validation:Optional
	Authentication *MCPServerAuthentication `json:"authentication,omitempty"`

	// Confirm determines whether tool calls against this server require explicit user confirmation.
	// When true, users must approve each tool execution before it proceeds, providing
	// an additional safety mechanism for sensitive operations. Defaults to false.
	// +kubebuilder:validation:Optional
	Confirm *bool `json:"confirm,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

MCPServerSpec defines the desired state of an MCP (Model Context Protocol) server.

func (*MCPServerSpec) DeepCopy

func (in *MCPServerSpec) DeepCopy() *MCPServerSpec

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

func (*MCPServerSpec) DeepCopyInto

func (in *MCPServerSpec) DeepCopyInto(out *MCPServerSpec)

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

type ManagedNamespace

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

	Spec   ManagedNamespaceSpec `json:"spec,omitempty"`
	Status Status               `json:"status,omitempty"`
}

ManagedNamespace handles the creation and management of Kubernetes namespaces across multiple clusters. It provides a centralized way to define namespace specifications that should be replicated across a fleet of Kubernetes clusters.

func (*ManagedNamespace) DeepCopy

func (in *ManagedNamespace) DeepCopy() *ManagedNamespace

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

func (*ManagedNamespace) DeepCopyInto

func (in *ManagedNamespace) DeepCopyInto(out *ManagedNamespace)

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

func (*ManagedNamespace) DeepCopyObject

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

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

func (*ManagedNamespace) NamespaceName

func (in *ManagedNamespace) NamespaceName() string

NamespaceName returns the effective namespace name to be used when creating the namespace. It returns the explicitly configured name if provided, otherwise falls back to the ManagedNamespace resource's own name from metadata.

func (*ManagedNamespace) SetCondition

func (in *ManagedNamespace) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the ManagedNamespace status.

type ManagedNamespaceList

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

ManagedNamespaceList contains a list of ManagedNamespace resources.

func (*ManagedNamespaceList) DeepCopy

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

func (*ManagedNamespaceList) DeepCopyInto

func (in *ManagedNamespaceList) DeepCopyInto(out *ManagedNamespaceList)

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

func (*ManagedNamespaceList) DeepCopyObject

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

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

type ManagedNamespaceSpec

type ManagedNamespaceSpec struct {
	// Name specifies the name of the namespace once it's placed on a cluster.
	// If not provided, the ManagedNamespace's own name from metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a short description of the purpose of this namespace.
	// This is useful for documentation and helping teams understand the namespace's role
	// within the broader application architecture.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty"`

	// Cascade specifies the deletion behavior for resources owned by this managed namespace.
	// This controls whether namespace deletion removes associated resources from
	// Plural Console only, target clusters only, or both.
	// +kubebuilder:validation:Optional
	Cascade *Cascade `json:"cascade,omitempty"`

	// Labels define key-value pairs to be applied to the created namespaces.
	// These labels are applied to the actual Kubernetes namespace resources
	// and can be used for organization, monitoring, and policy enforcement.
	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations define key-value pairs to be applied to the created namespaces.
	// These annotations are applied to the actual Kubernetes namespace resources
	// and are commonly used for configuration, tooling integration, and metadata.
	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// PullSecrets specifies a list of image pull secrets to attach to this namespace.
	// These secrets will be available for pulling container images within the namespace,
	// enabling access to private container registries across all pods in the namespace.
	// +kubebuilder:validation:Optional
	PullSecrets []string `json:"pullSecrets,omitempty"`

	// Service defines the service deployment specification to be created within this namespace.
	// This allows for automatic deployment of applications or infrastructure components
	// as part of the namespace provisioning process.
	// +kubebuilder:validation:Optional
	Service *ServiceTemplate `json:"service,omitempty"`

	// Target specifies the targeting criteria for selecting which clusters should receive this namespace.
	// This enables flexible namespace distribution based on tags and Kubernetes distributions.
	// +kubebuilder:validation:Optional
	Target *ClusterTarget `json:"target,omitempty"`

	// ProjectRef constrains the managed namespace scope to clusters within a specific project.
	// This provides project-level isolation and ensures namespaces are only created
	// on clusters belonging to the designated project.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ManagedNamespaceSpec defines the desired state of a ManagedNamespace. It specifies how Kubernetes namespaces should be created and managed across multiple clusters, including their metadata, targeting criteria, and associated service deployments.

func (*ManagedNamespaceSpec) DeepCopy

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

func (*ManagedNamespaceSpec) DeepCopyInto

func (in *ManagedNamespaceSpec) DeepCopyInto(out *ManagedNamespaceSpec)

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

type MetadataTemplate

type MetadataTemplate struct {
	// Name is a short, unique human-readable name used to identify this cluster.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Namespace specifies an optional namespace for categorizing or scoping related resources.
	// If empty then the ClusterSync's namespace will be used.
	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`
}

func (*MetadataTemplate) DeepCopy

func (in *MetadataTemplate) DeepCopy() *MetadataTemplate

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

func (*MetadataTemplate) DeepCopyInto

func (in *MetadataTemplate) DeepCopyInto(out *MetadataTemplate)

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

type NamespaceCredentials

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

	// +kubebuilder:validation:Required
	Spec NamespaceCredentialsSpec `json:"spec"`

	// +kubebuilder:validation:Optional
	Status NamespaceCredentialsStatus `json:"status,omitempty"`
}

NamespaceCredentials enables secure multi-tenancy by overriding operator credentials at the namespace level. It connects specific namespaces with credentials from a secret reference, allowing fine-grained control over resource reconciliation permissions. This prevents GitOps from becoming implicit God-mode by ensuring operators use bounded credentials for specific namespaces, supporting the principle of least privilege in enterprise fleet management scenarios.

func (*NamespaceCredentials) DeepCopy

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

func (*NamespaceCredentials) DeepCopyInto

func (in *NamespaceCredentials) DeepCopyInto(out *NamespaceCredentials)

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

func (*NamespaceCredentials) DeepCopyObject

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

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

func (*NamespaceCredentials) SetCondition

func (in *NamespaceCredentials) SetCondition(condition metav1.Condition)

type NamespaceCredentialsList

type NamespaceCredentialsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []NamespaceCredentials `json:"items"`
}

NamespaceCredentialsList contains a list of NamespaceCredentials resources.

func (*NamespaceCredentialsList) DeepCopy

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

func (*NamespaceCredentialsList) DeepCopyInto

func (in *NamespaceCredentialsList) DeepCopyInto(out *NamespaceCredentialsList)

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

func (*NamespaceCredentialsList) DeepCopyObject

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

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

type NamespaceCredentialsSpec

type NamespaceCredentialsSpec struct {
	// Namespaces specifies the list of Kubernetes namespaces that will use the credentials
	// from SecretRef during resource reconciliation, enabling namespace-level credential isolation.
	// +kubebuilder:validation:Required
	Namespaces []string `json:"namespaces"`

	// SecretRef references a Secret containing the credentials that operators will use
	// when reconciling resources within the specified namespaces, overriding default operator credentials.
	// +kubebuilder:validation:Required
	SecretRef corev1.SecretReference `json:"secretRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

NamespaceCredentialsSpec defines the desired state of the NamespaceCredentials resource.

func (*NamespaceCredentialsSpec) DeepCopy

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

func (*NamespaceCredentialsSpec) DeepCopyInto

func (in *NamespaceCredentialsSpec) DeepCopyInto(out *NamespaceCredentialsSpec)

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

type NamespaceCredentialsStatus

type NamespaceCredentialsStatus struct {
	// TokenSHA contains SHA of last token seen.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	TokenSHA *string `json:"tokenSHA,omitempty"`

	// Conditions represent the observations of a NamespaceCredentials current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*NamespaceCredentialsStatus) DeepCopy

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

func (*NamespaceCredentialsStatus) DeepCopyInto

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

func (*NamespaceCredentialsStatus) IsStatusConditionTrue

func (p *NamespaceCredentialsStatus) IsStatusConditionTrue(condition ConditionType) bool

type NamespacedName

type NamespacedName struct {
	// Name is a resource name.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Namespace is a resource namespace.
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`
}

NamespacedName is the same as types.NamespacedName with the addition of kubebuilder/json annotations for better schema support.

func (*NamespacedName) DeepCopy

func (in *NamespacedName) DeepCopy() *NamespacedName

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

func (*NamespacedName) DeepCopyInto

func (in *NamespacedName) DeepCopyInto(out *NamespacedName)

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

type NamespacedPluralResource

type NamespacedPluralResource interface {
	PluralResource

	// ConsoleNamespace returns a resource namespace read from the Console API
	ConsoleNamespace() string
}

NamespacedPluralResource represents a resource that can be managed in plural form. +k8s:deepcopy-gen=false

type NotificationRouter

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

	// Spec defines the desired state of the NotificationRouter, including event subscriptions,
	// filtering criteria, and destination sink configurations.
	Spec NotificationRouterSpec `json:"spec,omitempty"`

	// Status represents the current state of this NotificationRouter resource, including
	// synchronization status and operational health information.
	Status Status `json:"status,omitempty"`
}

NotificationRouter routes events from Plural Console to notification destinations. It filters events based on type, resource associations, and regex patterns, then forwards matching events to configured sinks like Slack, Teams, or in-app notifications. Common use cases include routing service deployment events, pipeline failures, cluster alerts, and security events to appropriate teams or channels.

func (*NotificationRouter) DeepCopy

func (in *NotificationRouter) DeepCopy() *NotificationRouter

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

func (*NotificationRouter) DeepCopyInto

func (in *NotificationRouter) DeepCopyInto(out *NotificationRouter)

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

func (*NotificationRouter) DeepCopyObject

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

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

func (*NotificationRouter) NotificationName

func (p *NotificationRouter) NotificationName() string

NotificationName returns the effective name to be used for this notification router. It returns the explicitly configured name if provided, otherwise falls back to the NotificationRouter resource's own name from metadata.

func (*NotificationRouter) SetCondition

func (p *NotificationRouter) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the NotificationRouter status.

type NotificationRouterList

type NotificationRouterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []NotificationRouter `json:"items"`
}

NotificationRouterList contains a list of NotificationRouter resources.

func (*NotificationRouterList) DeepCopy

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

func (*NotificationRouterList) DeepCopyInto

func (in *NotificationRouterList) DeepCopyInto(out *NotificationRouterList)

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

func (*NotificationRouterList) DeepCopyObject

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

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

type NotificationRouterSpec

type NotificationRouterSpec struct {
	// Name specifies the name for this notification router.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Events define the list of event types this router should subscribe to.
	// Use "*" to subscribe to all events, or specify specific event names to filter
	// for particular types of notifications. Common events include deployment updates,
	// service health changes, pipeline status changes, and security alerts.
	// +kubebuilder:validation:Optional
	Events []string `json:"events,omitempty"`

	// Filters define criteria for selectively routing events.
	// These filters control which events trigger notifications, allowing teams
	// to focus on relevant events. Multiple filters can be combined.
	// +kubebuilder:validation:Optional
	Filters []RouterFilters `json:"filters,omitempty"`

	// Sinks specify the notification destinations where filtered events should be delivered.
	// Each sink represents a configured notification channel such as Slack webhooks,
	// Microsoft Teams channels, or in-app notification systems. Events matching the
	// router's criteria will be formatted and sent to all configured sinks.
	// It is a reference to the NotificationSink resource.
	// +kubebuilder:validation:Optional
	Sinks []corev1.ObjectReference `json:"sinks,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

NotificationRouterSpec defines the desired state of NotificationRouter. It specifies which events to subscribe to, how to filter them, and where to route the resulting notifications.

func (*NotificationRouterSpec) DeepCopy

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

func (*NotificationRouterSpec) DeepCopyInto

func (in *NotificationRouterSpec) DeepCopyInto(out *NotificationRouterSpec)

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

func (*NotificationRouterSpec) HasName

func (p *NotificationRouterSpec) HasName() bool

HasName checks whether this NotificationRouter has an explicitly configured name.

type NotificationSink

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

	// Spec defines the desired state of the NotificationSink, including the sink type,
	// destination configuration, and delivery settings.
	Spec NotificationSinkSpec `json:"spec,omitempty"`

	// Status represents the current state of this NotificationSink resource, including
	// synchronization status and operational health information.
	Status Status `json:"status,omitempty"`
}

NotificationSink defines notification delivery destinations for events routed by NotificationRouter. It represents the actual channels where notifications are sent, such as Slack webhooks, Microsoft Teams channels, or in-app notifications. NotificationSinks are referenced by NotificationRouter resources to determine where filtered events should be delivered.

func (*NotificationSink) DeepCopy

func (in *NotificationSink) DeepCopy() *NotificationSink

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

func (*NotificationSink) DeepCopyInto

func (in *NotificationSink) DeepCopyInto(out *NotificationSink)

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

func (*NotificationSink) DeepCopyObject

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

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

func (*NotificationSink) NotificationName

func (p *NotificationSink) NotificationName() string

NotificationName implements NamespacedPluralResource interface

func (*NotificationSink) SetCondition

func (p *NotificationSink) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the NotificationSink status.

type NotificationSinkList

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

NotificationSinkList contains a list of NotificationSink resources.

func (*NotificationSinkList) DeepCopy

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

func (*NotificationSinkList) DeepCopyInto

func (in *NotificationSinkList) DeepCopyInto(out *NotificationSinkList)

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

func (*NotificationSinkList) DeepCopyObject

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

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

type NotificationSinkSpec

type NotificationSinkSpec struct {
	// Name specifies the name for this notification sink.
	// If not provided, the name from the resource metadata will be used. // +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Type specifies the channel type of this sink.
	// Determines which configuration section will be used and how notifications are delivered.
	// SLACK and TEAMS require webhook URLs, while PLURAL delivers in-app notifications.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=SLACK;TEAMS;PLURAL
	Type console.SinkType `json:"type"`

	// Configuration contains the type-specific settings for this notification sink.
	// Only one configuration section should be populated based on the Type field.
	// Each type has different requirements for delivery setup and authentication.
	// +kubebuilder:validation:Optional
	Configuration SinkConfiguration `json:"configuration"`

	// Bindings define the users and groups who can receive notifications through this sink.
	// This is only applicable for PLURAL type sinks that deliver in-app notifications.
	// For external sinks like Slack or Teams, notifications are sent to the configured webhook.
	// +kubebuilder:validation:Optional
	Bindings []Binding `json:"bindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

NotificationSinkSpec defines the desired state of NotificationSink. It specifies the type of notification channel, destination configuration, and delivery preferences for events routed to this sink.

func (*NotificationSinkSpec) DeepCopy

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

func (*NotificationSinkSpec) DeepCopyInto

func (in *NotificationSinkSpec) DeepCopyInto(out *NotificationSinkSpec)

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

func (*NotificationSinkSpec) HasName

func (p *NotificationSinkSpec) HasName() bool

type OIDCProvider

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

	// Spec defines the desired state of the OIDCProvider, including authentication settings,
	// redirect URIs, and credential management for OIDC client configuration.
	Spec OIDCProviderSpec `json:"spec,omitempty"`

	// Status represents the current state of this OIDCProvider resource, including
	// synchronization status with the Console API and generated client credentials.
	Status Status `json:"status,omitempty"`
}

OIDCProvider configures OpenID Connect (OIDC) authentication for external applications and services. It enables third-party applications to authenticate users through the Plural Console using the standard OIDC protocol. This is useful for integrating external tools, dashboards, or custom applications with Plural's authentication system while maintaining centralized user management and access control. Common use cases include connecting monitoring dashboards, CI/CD tools, or custom applications that need to authenticate users against the Plural Console's user directory.

func (*OIDCProvider) Attributes

func (in *OIDCProvider) Attributes() console.OidcProviderAttributes

Attributes converts the OIDCProvider spec to Console API attributes for upstream synchronization.

func (*OIDCProvider) ConsoleName

func (in *OIDCProvider) ConsoleName() string

ConsoleName returns the effective name to be used for this OIDC provider. It returns the explicitly configured name if provided, otherwise falls back to the OIDCProvider resource's own name from metadata.

func (*OIDCProvider) DeepCopy

func (in *OIDCProvider) DeepCopy() *OIDCProvider

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

func (*OIDCProvider) DeepCopyInto

func (in *OIDCProvider) DeepCopyInto(out *OIDCProvider)

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

func (*OIDCProvider) DeepCopyObject

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

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

func (*OIDCProvider) Diff

func (in *OIDCProvider) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current OIDCProvider configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*OIDCProvider) SetCondition

func (in *OIDCProvider) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the OIDCProvider status.

type OIDCProviderList

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

OIDCProviderList contains a list of OIDCProvider resources.

func (*OIDCProviderList) DeepCopy

func (in *OIDCProviderList) DeepCopy() *OIDCProviderList

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

func (*OIDCProviderList) DeepCopyInto

func (in *OIDCProviderList) DeepCopyInto(out *OIDCProviderList)

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

func (*OIDCProviderList) DeepCopyObject

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

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

type OIDCProviderSpec

type OIDCProviderSpec struct {
	// Name specifies the name for this OIDC provider.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a human-readable description of this OIDC provider.
	// This helps administrators understand the purpose and intended use of this OIDC client,
	// such as which application or service it's configured for.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty"`

	// RedirectUris specifies the list of allowed redirect URIs for this OIDC client.
	// These URIs define where the authorization server can redirect users after authentication.
	// Each URI must be an exact match to be considered valid during the OIDC flow.
	// Common patterns include application callback URLs or localhost URLs for development.
	// +kubebuilder:validation:Optional
	RedirectUris []string `json:"redirectUris,omitempty"`

	// CredentialsSecretRef references a Kubernetes Secret that will contain the generated OIDC client credentials.
	// Once the OIDCProvider is successfully created in the Console API, this secret will be populated
	// with the client ID and client secret needed for OIDC authentication flows.
	// The secret will contain two keys: 'clientId' and 'clientSecret'.
	// +kubebuilder:validation:Required
	CredentialsSecretRef corev1.LocalObjectReference `json:"credentialsSecretRef"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

OIDCProviderSpec defines the desired state of OIDCProvider. It specifies the OIDC client configuration including redirect URIs, authentication methods, and credential storage for enabling third-party applications to authenticate with Plural Console.

func (*OIDCProviderSpec) DeepCopy

func (in *OIDCProviderSpec) DeepCopy() *OIDCProviderSpec

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

func (*OIDCProviderSpec) DeepCopyInto

func (in *OIDCProviderSpec) DeepCopyInto(out *OIDCProviderSpec)

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

type ObjectKeyReference

type ObjectKeyReference struct {
	// Name is unique within a namespace to reference a resource.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Namespace defines the space within which the resource name must be unique.
	// +kubebuilder:validation:Required
	Namespace string `json:"namespace"`

	// Key is the key of the object to use.
	// +kubebuilder:validation:Required
	Key string `json:"key"`
}

ObjectKeyReference is a reference to an object in a specific namespace. It is used to reference objects like secrets, configmaps, etc.

func (*ObjectKeyReference) DeepCopy

func (in *ObjectKeyReference) DeepCopy() *ObjectKeyReference

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

func (*ObjectKeyReference) DeepCopyInto

func (in *ObjectKeyReference) DeepCopyInto(out *ObjectKeyReference)

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

type ObjectReferenceTemplate

type ObjectReferenceTemplate struct {
	// +kubebuilder:validation:Required
	MetadataTemplate `json:",inline"`
}

func (*ObjectReferenceTemplate) DeepCopy

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

func (*ObjectReferenceTemplate) DeepCopyInto

func (in *ObjectReferenceTemplate) DeepCopyInto(out *ObjectReferenceTemplate)

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

type ObservabilityProvider

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

	// Spec defines the desired state of the ObservabilityProvider, including the provider type
	// and authentication credentials needed to connect to the external monitoring service.
	// +kubebuilder:validation:Required
	Spec ObservabilityProviderSpec `json:"spec"`

	// Status represents the current state of this ObservabilityProvider resource, including
	// synchronization status with the Console API and connection health information.
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

ObservabilityProvider configures external monitoring and observability platforms for use with Plural Console. It enables integration with services like Datadog and New Relic to provide enhanced monitoring capabilities for infrastructure stacks and service deployments. The provider can be used by InfrastructureStack resources to monitor metrics and determine if operations should be cancelled based on system health indicators. Common use cases include monitoring deployment health or tracking infrastructure performance metrics.

func (*ObservabilityProvider) Attributes

Attributes converts the ObservabilityProvider spec to Console API attributes for upstream synchronization.

func (*ObservabilityProvider) ConsoleName

func (in *ObservabilityProvider) ConsoleName() string

ConsoleName returns the effective name to be used for this observability provider. It returns the explicitly configured name if provided, otherwise falls back to the ObservabilityProvider resource's own name from metadata.

func (*ObservabilityProvider) DeepCopy

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

func (*ObservabilityProvider) DeepCopyInto

func (in *ObservabilityProvider) DeepCopyInto(out *ObservabilityProvider)

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

func (*ObservabilityProvider) DeepCopyObject

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

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

func (*ObservabilityProvider) Diff

func (in *ObservabilityProvider) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current ObservabilityProvider configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*ObservabilityProvider) SetCondition

func (in *ObservabilityProvider) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the ObservabilityProvider status.

type ObservabilityProviderCredentials

type ObservabilityProviderCredentials struct {
	// Datadog specifies a reference to a Kubernetes Secret containing Datadog API credentials.
	// The referenced secret must contain two keys:
	// - 'apiKey': Your Datadog API key for authentication
	// - 'appKey': Your Datadog application key for extended API access
	// These keys are obtained from your Datadog account's API settings.
	// +kubebuilder:validation:Optional
	Datadog *v1.SecretReference `json:"datadog,omitempty"`

	// Newrelic specifies a reference to a Kubernetes Secret containing New Relic API credentials.
	// The referenced secret must contain one key:
	// - 'apiKey': Your New Relic API key for authentication and data access
	// This key is obtained from your New Relic account's API settings.
	// +kubebuilder:validation:Optional
	Newrelic *v1.SecretReference `json:"newrelic,omitempty"`
}

ObservabilityProviderCredentials defines the authentication credentials for different observability providers. Only one provider's credentials should be specified, matching the Type field in the ObservabilityProviderSpec. Each provider has different authentication requirements and API key formats.

func (*ObservabilityProviderCredentials) DeepCopy

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

func (*ObservabilityProviderCredentials) DeepCopyInto

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

type ObservabilityProviderList

type ObservabilityProviderList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ObservabilityProvider `json:"items"`
}

ObservabilityProviderList contains a list of ObservabilityProvider resources.

func (*ObservabilityProviderList) DeepCopy

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

func (*ObservabilityProviderList) DeepCopyInto

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

func (*ObservabilityProviderList) DeepCopyObject

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

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

type ObservabilityProviderSpec

type ObservabilityProviderSpec struct {
	// Name specifies the name for this observability provider.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Type specifies the observability platform this provider connects to.
	// Currently supported providers include Datadog for comprehensive monitoring and alerting,
	// and New Relic for application performance monitoring and infrastructure insights.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=DATADOG;NEWRELIC
	Type client.ObservabilityProviderType `json:"type"`

	// Credentials contains the authentication information needed to connect to the observability provider.
	// The specific credential format depends on the provider type. Each provider requires different
	// API keys and authentication methods as specified in their respective credential specifications.
	// +kubebuilder:validation:Optional
	Credentials *ObservabilityProviderCredentials `json:"credentials,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ObservabilityProviderSpec defines the desired state of ObservabilityProvider. It specifies the type of monitoring service and the credentials needed to authenticate and establish connections with external observability platforms.

func (*ObservabilityProviderSpec) DeepCopy

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

func (*ObservabilityProviderSpec) DeepCopyInto

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

type ObservableMetric

type ObservableMetric struct {
	// +kubebuilder:validation:Required
	Identifier string `json:"identifier"`

	// +kubebuilder:validation:Required
	ObservabilityProviderRef corev1.ObjectReference `json:"observabilityProviderRef"`
}

func (*ObservableMetric) DeepCopy

func (in *ObservableMetric) DeepCopy() *ObservableMetric

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

func (*ObservableMetric) DeepCopyInto

func (in *ObservableMetric) DeepCopyInto(out *ObservableMetric)

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

type Observer

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

	// Spec defines the desired state of the Observer, including the polling schedule,
	// target configuration, and actions to execute when changes are detected.
	Spec ObserverSpec `json:"spec,omitempty"`

	// Status represents the current state of this Observer resource, including
	// synchronization status with the Console API and last polling information.
	Status Status `json:"status,omitempty"`
}

Observer monitors external data sources and triggers automated actions when changes are detected. It polls various targets like Helm repositories, OCI registries, Git repositories, or Kubernetes add-ons on a scheduled basis and executes predefined actions when new versions or updates are discovered. Common use cases include automatically creating pull requests when new chart versions are available or triggering pipeline deployments when container images are updated.

func (*Observer) Attributes

Attributes converts the Observer spec to Console API attributes for upstream synchronization.

func (*Observer) DeepCopy

func (in *Observer) DeepCopy() *Observer

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

func (*Observer) DeepCopyInto

func (in *Observer) DeepCopyInto(out *Observer)

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

func (*Observer) DeepCopyObject

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

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

func (*Observer) Diff

func (o *Observer) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current Observer configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*Observer) ObserverName

func (o *Observer) ObserverName() string

ObserverName returns the effective name to be used for this observer. It returns the explicitly configured name if provided, otherwise falls back to the Observer resource's own name from metadata.

func (*Observer) SetCondition

func (o *Observer) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the Observer status.

type ObserverAction

type ObserverAction struct {
	// Type specifies the kind of action to perform when changes are detected.
	// PIPELINE actions trigger pipeline context updates, while PR actions create pull requests
	// using PR automation templates with the discovered values.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=PIPELINE;PR
	Type console.ObserverActionType `json:"type"`

	// Configuration contains the specific settings for this action type.
	// The structure depends on the Type field - PR actions use PR configuration,
	// while PIPELINE actions use pipeline configuration.
	// +kubebuilder:validation:Required
	Configuration ObserverConfiguration `json:"configuration"`
}

ObserverAction defines an automated response to execute when the observer detects changes. Actions can create pull requests or trigger pipelines.

func (*ObserverAction) DeepCopy

func (in *ObserverAction) DeepCopy() *ObserverAction

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

func (*ObserverAction) DeepCopyInto

func (in *ObserverAction) DeepCopyInto(out *ObserverAction)

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

type ObserverAddOn

type ObserverAddOn struct {
	// Name specifies the add-on to monitor for new versions.
	// This should match the add-on name as known to the monitoring system.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// KubernetesVersion specifies the Kubernetes version for compatibility checking.
	// The observer will only consider add-on versions that are compatible with this Kubernetes version.
	// This helps ensure that suggested updates will work with your cluster.
	// +kubebuilder:validation:Optional
	KubernetesVersion *string `json:"kubernetesVersion,omitempty"`

	// KubernetesVersions specifies multiple Kubernetes versions for compatibility checking.
	// Useful when managing clusters with different Kubernetes versions or during upgrade periods.
	// The observer will only suggest add-on versions compatible with all specified versions.
	// +kubebuilder:validation:Optional
	KubernetesVersions []string `json:"kubernetesVersions,omitempty"`
}

ObserverAddOn defines configuration for monitoring Kubernetes add-on versions. This allows observing when new versions of Kubernetes add-ons are available, enabling automated updates while ensuring compatibility with specific Kubernetes versions.

func (*ObserverAddOn) DeepCopy

func (in *ObserverAddOn) DeepCopy() *ObserverAddOn

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

func (*ObserverAddOn) DeepCopyInto

func (in *ObserverAddOn) DeepCopyInto(out *ObserverAddOn)

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

type ObserverConfiguration

type ObserverConfiguration struct {
	// Pr contains configuration for pull request actions.
	// Used when the action type is PR to automatically create pull requests
	// when new versions are detected by the observer.
	// +kubebuilder:validation:Optional
	Pr *ObserverPrAction `json:"pr,omitempty"`

	// Pipeline contains configuration for pipeline actions.
	// Used when the action type is PIPELINE to trigger pipeline context updates
	// when new versions are detected by the observer.
	// +kubebuilder:validation:Optional
	Pipeline *ObserverPipelineAction `json:"pipeline,omitempty"`
}

ObserverConfiguration contains type-specific configuration for observer actions. Only one configuration section should be populated based on the action type. This allows for different action types to have their own specialized settings.

func (*ObserverConfiguration) DeepCopy

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

func (*ObserverConfiguration) DeepCopyInto

func (in *ObserverConfiguration) DeepCopyInto(out *ObserverConfiguration)

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

type ObserverGit

type ObserverGit struct {
	// GitRepositoryRef references the Git repository resource to monitor.
	// The repository must be configured in Plural Console with appropriate access credentials.
	// +kubebuilder:validation:Required
	GitRepositoryRef v1.ObjectReference `json:"gitRepositoryRef"`

	// Type specifies what Git resources to monitor within the repository.
	// Currently only TAGS is supported, which monitors for new Git tags.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=TAGS
	Type console.ObserverGitTargetType `json:"type"`

	// Filter specifies a regex to filter the git repository tags for the observed value.
	// +kubebuilder:validation:Optional
	Filter *ObserverGitFilter `json:"filter,omitempty"`
}

ObserverGit defines configuration for monitoring Git repository tags. This allows observing when new tags are created in a Git repository, typically used for monitoring application releases or infrastructure updates.

func (*ObserverGit) DeepCopy

func (in *ObserverGit) DeepCopy() *ObserverGit

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

func (*ObserverGit) DeepCopyInto

func (in *ObserverGit) DeepCopyInto(out *ObserverGit)

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

type ObserverGitFilter

type ObserverGitFilter struct {
	// Regex specifies a regex to filter the git repository tags for the observed value.
	// Useful if you want to filter out tags within a larger monorepo or across multiple channels, eg: prod-1.2.3 vs. dev-1.2.3
	// +kubebuilder:validation:Optional
	Regex *string `json:"regex,omitempty"`
}

func (*ObserverGitFilter) DeepCopy

func (in *ObserverGitFilter) DeepCopy() *ObserverGitFilter

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

func (*ObserverGitFilter) DeepCopyInto

func (in *ObserverGitFilter) DeepCopyInto(out *ObserverGitFilter)

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

type ObserverHelm

type ObserverHelm struct {
	// URL specifies the Helm repository URL to monitor.
	// This should be a valid Helm repository URL that contains the chart index.
	// The URL is immutable once set to ensure consistent monitoring.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="URL is immutable"
	URL string `json:"url"`

	// Chart specifies the name of the chart within the repository to monitor.
	// The observer will check for new versions of this specific chart.
	// +kubebuilder:validation:Required
	Chart string `json:"chart"`

	// Provider specifies the authentication provider type for the Helm repository.
	// Different providers support different authentication mechanisms optimized for their platforms.
	// +kubebuilder:validation:Optional
	// +kubebuilder:example:=AWS
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=BASIC;BEARER;GCP;AZURE;AWS
	Provider *console.HelmAuthProvider `json:"provider,omitempty"`

	// Auth contains authentication credentials for accessing the Helm repository.
	// Required for private repositories, the format depends on the Provider type.
	// +kubebuilder:validation:Optional
	Auth *HelmRepositoryAuth `json:"auth,omitempty"`
}

ObserverHelm defines configuration for monitoring Helm chart repositories. This allows observing when new chart versions are published to Helm repositories, enabling automated updates when application or infrastructure charts are updated.

func (*ObserverHelm) DeepCopy

func (in *ObserverHelm) DeepCopy() *ObserverHelm

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

func (*ObserverHelm) DeepCopyInto

func (in *ObserverHelm) DeepCopyInto(out *ObserverHelm)

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

type ObserverList

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

ObserverList contains a list of Observer resources.

func (*ObserverList) DeepCopy

func (in *ObserverList) DeepCopy() *ObserverList

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

func (*ObserverList) DeepCopyInto

func (in *ObserverList) DeepCopyInto(out *ObserverList)

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

func (*ObserverList) DeepCopyObject

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

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

type ObserverOci

type ObserverOci struct {
	// URL specifies the OCI registry URL to monitor.
	// This should include the full path to the specific repository or artifact.
	// The URL is immutable once set to ensure consistent monitoring.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="URL is immutable"
	URL string `json:"url"`

	// Provider specifies the authentication provider type for the OCI registry.
	// Different providers support different authentication mechanisms optimized for their platforms.
	// +kubebuilder:validation:Optional
	// +kubebuilder:example:=AWS
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=BASIC;BEARER;GCP;AZURE;AWS
	Provider *console.HelmAuthProvider `json:"provider,omitempty"`

	// Auth contains authentication credentials for accessing the OCI registry.
	// Required for private registries, the format depends on the Provider type.
	// +kubebuilder:validation:Optional
	Auth *HelmRepositoryAuth `json:"auth,omitempty"`
}

ObserverOci defines configuration for monitoring OCI (container) registries. This allows observing when new container images or OCI artifacts are published, enabling automated updates when application images or infrastructure artifacts are updated.

func (*ObserverOci) DeepCopy

func (in *ObserverOci) DeepCopy() *ObserverOci

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

func (*ObserverOci) DeepCopyInto

func (in *ObserverOci) DeepCopyInto(out *ObserverOci)

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

type ObserverPipelineAction

type ObserverPipelineAction struct {
	// PipelineRef references the pipeline to update when changes are detected.
	// The pipeline will receive a new context with the observed value,
	// potentially triggering deployment workflows or other pipeline stages.
	// +kubebuilder:validation:Required
	PipelineRef v1.ObjectReference `json:"pipelineRef"`

	// Context is a templated context that becomes the pipeline context.
	// Use $value to interpolate the observed value into the context data.
	// This context is applied to the pipeline to trigger appropriate actions.
	// +kubebuilder:validation:Optional
	Context runtime.RawExtension `json:"context,omitempty"`
}

ObserverPipelineAction defines configuration for triggering pipeline context updates. When the observer detects new versions, it can update pipeline contexts to trigger deployments or other pipeline-driven workflows with the new values.

func (*ObserverPipelineAction) DeepCopy

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

func (*ObserverPipelineAction) DeepCopyInto

func (in *ObserverPipelineAction) DeepCopyInto(out *ObserverPipelineAction)

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

type ObserverPrAction

type ObserverPrAction struct {
	// PrAutomationRef references the PR automation template to use for generating pull requests.
	// The automation template defines the repository, branch pattern, and file modifications
	// to apply when creating the pull request.
	// +kubebuilder:validation:Required
	PrAutomationRef v1.ObjectReference `json:"prAutomationRef"`

	// Repository overrides the repository slug for the referenced PR automation.
	// Use this when you want to target a different repository than the one
	// configured in the PR automation template.
	// +kubebuilder:validation:Optional
	Repository *string `json:"repository,omitempty"`

	// BranchTemplate provides a template for generating branch names.
	// Use $value to inject the observed value into the branch name.
	// Example: "update-chart-to-$value" becomes "update-chart-to-1.2.3".
	// +kubebuilder:validation:Optional
	BranchTemplate *string `json:"branchTemplate,omitempty"`

	// Context is a templated context that becomes the input for the PR automation.
	// Use $value to interpolate the observed value into the context data.
	// This context is passed to the PR automation for template rendering and file modifications.
	// +kubebuilder:validation:Optional
	Context runtime.RawExtension `json:"context,omitempty"`
}

ObserverPrAction defines configuration for automatically creating pull requests. When the observer detects new versions, it can generate pull requests using PR automation templates with the discovered values interpolated into the context.

func (*ObserverPrAction) DeepCopy

func (in *ObserverPrAction) DeepCopy() *ObserverPrAction

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

func (*ObserverPrAction) DeepCopyInto

func (in *ObserverPrAction) DeepCopyInto(out *ObserverPrAction)

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

type ObserverSpec

type ObserverSpec struct {
	// Name specifies the name for this observer.
	// If not provided, the name from the resource metadata will be used.
	// This name is used for identification and logging purposes.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Crontab defines the polling schedule using standard cron syntax.
	// This determines how frequently the observer checks the target for updates.
	// Examples: "0 */6 * * *" (every 6 hours), "*/15 * * * *" (every 15 minutes).
	// +kubebuilder:validation:Required
	Crontab string `json:"crontab"`

	// Initial sets the baseline value for this observer to prevent duplicate actions on startup.
	// When specified, the observer will only trigger actions for values that are newer than this initial value.
	// This prevents unnecessary actions when the observer is first created or restarted.
	// +kubebuilder:validation:Optional
	Initial *string `json:"initial,omitempty"`

	// Target specifies the external source to monitor for changes.
	// This defines what type of resource to poll (Helm chart, OCI image, Git tags, etc.)
	// and the specific configuration needed to access that resource.
	// +kubebuilder:validation:Required
	Target ObserverTarget `json:"target"`

	// Actions define the automated responses to execute when new values are detected.
	// Each action specifies what should happen when the observer discovers an update,
	// such as creating pull requests or triggering pipeline deployments.
	// +kubebuilder:validation:Optional
	Actions []ObserverAction `json:"actions,omitempty"`

	// ProjectRef references the project this observer belongs to.
	// If not provided, the observer will use the default project.
	// This helps organize observers and control access permissions.
	// +kubebuilder:validation:Optional
	ProjectRef *v1.ObjectReference `json:"projectRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ObserverSpec defines the desired state of Observer. It specifies what external source to monitor, when to poll it, and what actions to take when changes are detected, enabling automated workflows based on external updates.

func (*ObserverSpec) DeepCopy

func (in *ObserverSpec) DeepCopy() *ObserverSpec

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

func (*ObserverSpec) DeepCopyInto

func (in *ObserverSpec) DeepCopyInto(out *ObserverSpec)

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

type ObserverTarget

type ObserverTarget struct {
	// Type specifies the kind of external source to monitor.
	// Each type has different configuration requirements and polling mechanisms.
	// Supported types include Helm charts, OCI images, Git tags, and Kubernetes add-ons.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=OCI;HELM;GIT;ADDON;EKS_ADDON
	Type console.ObserverTargetType `json:"type"`

	// Format is a regex pattern with a capture group for extracting version information.
	// Useful when version strings are embedded in larger release names or tags.
	// The first capture group is used as the version value.
	// Example: "app-v([0-9]+.[0-9]+.[0-9]+)" extracts "1.2.3" from "app-v1.2.3".
	// +kubebuilder:validation:Optional
	Format *string `json:"format,omitempty"`

	// Order determines how discovered versions are sorted and which one is selected.
	// SEMVER sorts by semantic version rules, while LATEST uses chronological ordering.
	// SEMVER is recommended for most use cases as it provides predictable version ordering.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=SEMVER;LATEST
	Order console.ObserverTargetOrder `json:"order"`

	// Helm contains configuration for monitoring Helm chart repositories.
	// Used when Type is HELM to specify the repository URL, chart name, and authentication.
	// +kubebuilder:validation:Optional
	Helm *ObserverHelm `json:"helm,omitempty"`

	// OCI contains configuration for monitoring OCI (container) registries.
	// Used when Type is OCI to specify the registry URL and authentication credentials.
	// +kubebuilder:validation:Optional
	OCI *ObserverOci `json:"oci,omitempty"`

	// Git contains configuration for monitoring Git repository tags.
	// Used when Type is GIT to specify which Git repository to monitor for new tags.
	// +kubebuilder:validation:Optional
	Git *ObserverGit `json:"git,omitempty"`

	// AddOn contains configuration for monitoring Plural add-on versions.
	// Used when Type is ADDON to specify which Kubernetes add-on to monitor for updates.
	// +kubebuilder:validation:Optional
	AddOn *ObserverAddOn `json:"addon,omitempty"`

	// EksAddOn contains configuration for monitoring AWS EKS add-on versions.
	// Used when Type is EKS_ADDON to specify which EKS add-on to monitor for updates.
	// +kubebuilder:validation:Optional
	EksAddOn *ObserverAddOn `json:"eksAddon,omitempty"`
}

ObserverTarget defines the external source to monitor for changes. It specifies what type of resource to poll and how to interpret the results, supporting various sources like Helm repositories, OCI registries, and Git repositories.

func (*ObserverTarget) DeepCopy

func (in *ObserverTarget) DeepCopy() *ObserverTarget

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

func (*ObserverTarget) DeepCopyInto

func (in *ObserverTarget) DeepCopyInto(out *ObserverTarget)

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

type OllamaSettings

type OllamaSettings struct {
	// URL is the url this model is queryable on
	//
	// +kubebuilder:validation:Required
	URL string `json:"url"`

	// Model is the Ollama model to use when querying the /chat api
	//
	// +kubebuilder:validation:Required
	Model string `json:"model"`

	// ToolModel to use for tool calling, which is less frequent and often requires more advanced reasoning
	//
	// +kubebuilder:validation:Optional
	ToolModel *string `json:"toolModel,omitempty"`

	// AuthorizationSecretRef is a reference to the local secret holding the contents of a HTTP Authorization header
	// to send to your ollama api in case authorization is required (eg for an instance hosted on a public network)
	//
	// +kubebuilder:validation:Optional
	AuthorizationSecretRef *corev1.SecretKeySelector `json:"tokenSecretRef"`
}

OllamaSettings for configuring a self-hosted Ollama LLM, more details at https://github.com/ollama/ollama

func (*OllamaSettings) Authorization

func (in *OllamaSettings) Authorization(ctx context.Context, c client.Client, namespace string) (*string, error)

func (*OllamaSettings) DeepCopy

func (in *OllamaSettings) DeepCopy() *OllamaSettings

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

func (*OllamaSettings) DeepCopyInto

func (in *OllamaSettings) DeepCopyInto(out *OllamaSettings)

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

type OpensearchConnection

type OpensearchConnection struct {
	// Host is the opensearch host to connect to.
	//
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// Index to query in opensearch.
	//
	// +kubebuilder:validation:Optional
	Index string `json:"index"`

	// AWS Access Key ID to use, can also use IRSA to acquire credentials.
	//
	// +kubebuilder:validation:Optional
	AWSAccessKeyID *string `json:"awsAccessKeyId,omitempty"`

	// AWS Secret Access Key to use, can also use IRSA to acquire credentials.
	//
	// +kubebuilder:validation:Optional
	AwsSecretAccessKeySecretRef *corev1.SecretKeySelector `json:"awsSecretAccessKeySecretRef,omitempty"`

	// AWS Region to use.
	//
	// +kubebuilder:validation:Optional
	AWSRegion *string `json:"awsRegion,omitempty"`
}

func (*OpensearchConnection) Attributes

func (*OpensearchConnection) DeepCopy

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

func (*OpensearchConnection) DeepCopyInto

func (in *OpensearchConnection) DeepCopyInto(out *OpensearchConnection)

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

type OpensearchConnectionSettings

type OpensearchConnectionSettings struct {
	// Host is the host of the opensearch cluster.
	//
	// +kubebuilder:validation:Required
	Host string `json:"host"`

	// Index is the index of the opensearch cluster.
	//
	// +kubebuilder:validation:Required
	Index string `json:"index"`

	// AWSAccessKeyID is the AWS Access Key ID to use, can also use IRSA to acquire credentials.
	//
	// +kubebuilder:validation:Optional
	AWSAccessKeyID *string `json:"awsAccessKeyId,omitempty"`

	// AWSSecretAccessKeyRef is a reference to the local secret holding the AWS Secret Access Key to use,
	// can also use IRSA to acquire credentials.
	//
	// +kubebuilder:validation:Optional
	AWSSecretAccessKeyRef *corev1.SecretKeySelector `json:"awsSecretAccessKeyRef,omitempty"`

	// AwsRegion is the AWS region to use, defaults to us-east-1
	//
	// +kubebuilder:validation:Optional
	AwsRegion *string `json:"awsRegion,omitempty"`
}

func (*OpensearchConnectionSettings) AwsSecretAccessKey

func (in *OpensearchConnectionSettings) AwsSecretAccessKey(ctx context.Context, c client.Client, namespace string) (*string, error)

func (*OpensearchConnectionSettings) DeepCopy

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

func (*OpensearchConnectionSettings) DeepCopyInto

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

type Persona

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

	// Spec defines the desired state of the Persona, including role configuration,
	// UI customizations, and group bindings for role-based access control.
	Spec PersonaSpec `json:"spec,omitempty"`

	// Status represents the current state of this Persona resource, including
	// synchronization status with the Console API.
	Status Status `json:"status,omitempty"`
}

Persona defines role-based UI configurations for different types of users in Plural Console. It allows customizing the user interface based on user roles such as platform engineers, developers, security teams, or management. Each persona controls which features and sections of the Console are visible and accessible to users assigned to it. This enables organizations to provide tailored experiences that match different user responsibilities and reduce interface complexity for specific roles. Common use cases include hiding infrastructure details from developers or providing simplified dashboards for management oversight.

func (*Persona) ConsoleID

func (in *Persona) ConsoleID() *string

ConsoleID returns the unique identifier used in the Console API for this Persona.

func (*Persona) ConsoleName

func (in *Persona) ConsoleName() string

ConsoleName returns the name used in the Console API for this Persona.

func (*Persona) DeepCopy

func (in *Persona) DeepCopy() *Persona

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

func (*Persona) DeepCopyInto

func (in *Persona) DeepCopyInto(out *Persona)

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

func (*Persona) DeepCopyObject

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

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

func (*Persona) Diff

func (in *Persona) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current Persona configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*Persona) PersonaName

func (in *Persona) PersonaName() string

PersonaName returns the effective name to be used for this persona. It returns the explicitly configured name if provided, otherwise falls back to the Persona resource's own name from metadata.

func (*Persona) SetCondition

func (in *Persona) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the Persona status.

type PersonaAI

type PersonaAI struct {
	// PR enables AI-powered pull request generation and management features.
	// When enabled, users can use AI assistance to create pull requests, generate code changes,
	// and automate various development workflows through AI-powered tools.
	// +kubebuilder:validation:Optional
	PR *bool `json:"pr,omitempty"`
}

PersonaAI defines access controls for AI-powered features within the Console. These settings determine which AI capabilities are available to users assigned to this persona.

func (*PersonaAI) Attributes

func (in *PersonaAI) Attributes() *console.PersonaAiAttributes

Attributes converts the PersonaAI to Console API attributes.

func (*PersonaAI) DeepCopy

func (in *PersonaAI) DeepCopy() *PersonaAI

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

func (*PersonaAI) DeepCopyInto

func (in *PersonaAI) DeepCopyInto(out *PersonaAI)

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

type PersonaConfiguration

type PersonaConfiguration struct {
	// All enables the complete UI interface for this persona when set to true.
	// This overrides individual feature settings and provides full access to all Console features.
	// Useful for administrative personas that need unrestricted access to all functionality.
	// +kubebuilder:validation:Optional
	All *bool `json:"all,omitempty"`

	// Home configures the homepage layout and content for this persona.
	// Different personas can have customized homepages that highlight the most relevant
	// information and workflows for their specific role and responsibilities.
	// +kubebuilder:validation:Optional
	Home *PersonaHome `json:"home,omitempty"`

	// Deployments controls access to deployment-related features and sections.
	// This includes clusters, services, pipelines, and other deployment management tools.
	// Useful for controlling which teams can view or manage different aspects of deployments.
	// +kubebuilder:validation:Optional
	Deployments *PersonaDeployment `json:"deployments,omitempty"`

	// Sidebar configures which navigation items and sections are visible in the main sidebar.
	// This allows personas to have streamlined navigation focused on their primary workflows
	// while hiding irrelevant or restricted functionality.
	// +kubebuilder:validation:Optional
	Sidebar *PersonaSidebar `json:"sidebar,omitempty"`

	// Services controls access to service-specific features and configuration options.
	// This includes service configuration, secrets management, and other service-level operations.
	// +kubebuilder:validation:Optional
	Services *PersonaServices `json:"services,omitempty"`

	// AI configures access to AI-powered features and capabilities within the Console.
	// This includes AI-assisted operations, automated suggestions, and other intelligent features.
	// +kubebuilder:validation:Optional
	AI *PersonaAI `json:"ai,omitempty"`
}

PersonaConfiguration defines the complete UI customization settings for a persona. These settings control which features, sections, and capabilities are visible and accessible to users assigned to this persona, enabling role-specific experiences.

func (*PersonaConfiguration) Attributes

Attributes converts the PersonaConfiguration to Console API attributes.

func (*PersonaConfiguration) DeepCopy

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

func (*PersonaConfiguration) DeepCopyInto

func (in *PersonaConfiguration) DeepCopyInto(out *PersonaConfiguration)

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

type PersonaDeployment

type PersonaDeployment struct {
	// Clusters enables access to cluster management features when set to true.
	// This includes viewing cluster status, managing cluster resources, and performing
	// cluster-level operations. Typically enabled for platform and infrastructure teams.
	// +kubebuilder:validation:Optional
	Clusters *bool `json:"clusters,omitempty"`

	// Deployments enables access to deployment management features when set to true.
	// This includes viewing and managing application deployments, deployment history,
	// and deployment-related operations across the platform.
	// +kubebuilder:validation:Optional
	Deployments *bool `json:"deployments,omitempty"`

	// Repositories enables access to Git repository management features when set to true.
	// This includes configuring source repositories, managing Git credentials,
	// and other repository-related operations for deployments.
	// +kubebuilder:validation:Optional
	Repositories *bool `json:"repositories,omitempty"`

	// Services enables access to service management features when set to true.
	// This includes viewing service status, managing service configurations,
	// and performing service-level operations and troubleshooting.
	// +kubebuilder:validation:Optional
	Services *bool `json:"services,omitempty"`

	// Pipelines enables access to CI/CD pipeline features when set to true.
	// This includes viewing pipeline status, managing pipeline configurations,
	// and triggering pipeline executions for automated deployments.
	// +kubebuilder:validation:Optional
	Pipelines *bool `json:"pipelines,omitempty"`

	// Providers enables access to cloud provider management features when set to true.
	// This includes managing cloud provider credentials, configuring provider settings,
	// and other provider-related operations for infrastructure management.
	// +kubebuilder:validation:Optional
	Providers *bool `json:"providers,omitempty"`

	// AddOns enables access to Kubernetes add-on management features when set to true.
	// This includes installing, configuring, and managing cluster add-ons.
	// +kubebuilder:validation:Optional
	AddOns *bool `json:"addOns,omitempty"`
}

PersonaDeployment defines access controls for deployment-related features and views. These settings determine which deployment management capabilities are visible and accessible to users assigned to this persona.

func (*PersonaDeployment) Attributes

Attributes converts the PersonaDeployment to Console API attributes.

func (*PersonaDeployment) DeepCopy

func (in *PersonaDeployment) DeepCopy() *PersonaDeployment

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

func (*PersonaDeployment) DeepCopyInto

func (in *PersonaDeployment) DeepCopyInto(out *PersonaDeployment)

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

type PersonaHome

type PersonaHome struct {
	// Manager enables management-focused homepage content when set to true.
	// This typically includes high-level dashboards, cost summaries, compliance status,
	// and other information relevant to engineering managers and leadership roles.
	// +kubebuilder:validation:Optional
	Manager *bool `json:"manager,omitempty"`

	// Security enables security-focused homepage content when set to true.
	// This includes security alerts, compliance reports, vulnerability summaries,
	// and other security-related metrics and dashboards.
	// +kubebuilder:validation:Optional
	Security *bool `json:"security,omitempty"`
}

PersonaHome defines homepage customization settings for different persona roles. The homepage can be configured to emphasize different aspects of the system based on the user's primary responsibilities and information needs.

func (*PersonaHome) Attributes

func (in *PersonaHome) Attributes() *console.PersonaHomeAttributes

Attributes converts the PersonaHome to Console API attributes.

func (*PersonaHome) DeepCopy

func (in *PersonaHome) DeepCopy() *PersonaHome

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

func (*PersonaHome) DeepCopyInto

func (in *PersonaHome) DeepCopyInto(out *PersonaHome)

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

type PersonaList

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

PersonaList contains a list of Persona resources.

func (*PersonaList) DeepCopy

func (in *PersonaList) DeepCopy() *PersonaList

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

func (*PersonaList) DeepCopyInto

func (in *PersonaList) DeepCopyInto(out *PersonaList)

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

func (*PersonaList) DeepCopyObject

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

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

type PersonaServices

type PersonaServices struct {
	// Secrets enables access to service secrets management when set to true.
	// This includes viewing, creating, and modifying secrets associated with services.
	// Typically restricted to platform engineers and senior developers who need
	// to manage service authentication and configuration secrets.
	// +kubebuilder:validation:Optional
	Secrets *bool `json:"secrets,omitempty"`

	// Configuration enables access to service configuration management when set to true.
	// This includes modifying service deployment settings, environment variables,
	// and other configuration parameters that affect service behavior.
	// +kubebuilder:validation:Optional
	Configuration *bool `json:"configuration,omitempty"`
}

PersonaServices defines access controls for service-related features and operations. These settings control which service management capabilities are available to users assigned to this persona, enabling role-based access to sensitive operations.

func (*PersonaServices) Attributes

Attributes converts the PersonaServices to Console API attributes.

func (*PersonaServices) DeepCopy

func (in *PersonaServices) DeepCopy() *PersonaServices

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

func (*PersonaServices) DeepCopyInto

func (in *PersonaServices) DeepCopyInto(out *PersonaServices)

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

type PersonaSidebar

type PersonaSidebar struct {
	// Audits enables access to audit logs and compliance reporting features when set to true.
	// This includes viewing system audit trails, user activity logs, and compliance reports.
	// Typically enabled for security teams and compliance officers.
	// +kubebuilder:validation:Optional
	Audits *bool `json:"audits,omitempty"`

	// Kubernetes enables access to direct Kubernetes management features when set to true.
	// This includes raw Kubernetes resource management, kubectl-like operations,
	// and low-level cluster administration tasks.
	// +kubebuilder:validation:Optional
	Kubernetes *bool `json:"kubernetes,omitempty"`

	// PullRequests enables access to pull request management features when set to true.
	// This includes viewing and managing pull requests and Git-based deployment automation features.
	// +kubebuilder:validation:Optional
	PullRequests *bool `json:"pullRequests,omitempty"`

	// Settings enables access to system configuration and administrative settings when set to true.
	// This includes user management, system configuration, integration settings,
	// and other administrative functions. Typically restricted to administrators.
	// +kubebuilder:validation:Optional
	Settings *bool `json:"settings,omitempty"`

	// Backups enables access to backup and restore management features when set to true.
	// This includes configuring backup policies, managing backup storage,
	// and performing restore operations for disaster recovery.
	// +kubebuilder:validation:Optional
	Backups *bool `json:"backups,omitempty"`

	// Stacks enables access to Infrastructure as Code (IaC) stack management when set to true.
	// This includes managing Terraform stacks and other IaC
	// automation tools for infrastructure provisioning and management.
	// +kubebuilder:validation:Optional
	Stacks *bool `json:"stacks,omitempty"`

	// Security enables access to security management features when set to true.
	// This includes security scanning results, vulnerability management,
	// policy enforcement, and other security-related tools and dashboards.
	// +kubebuilder:validation:Optional
	Security *bool `json:"security,omitempty"`

	// Cost enables access to cost management and optimization features when set to true.
	// This includes cost tracking or resource optimization recommendations.
	// +kubebuilder:validation:Optional
	Cost *bool `json:"cost,omitempty"`
}

PersonaSidebar defines which navigation items and sections are visible in the main Console sidebar. These settings allow personas to have customized navigation focused on their primary workflows while hiding irrelevant or restricted functionality from the user interface.

func (*PersonaSidebar) Attributes

Attributes converts the PersonaSidebar to Console API attributes.

func (*PersonaSidebar) DeepCopy

func (in *PersonaSidebar) DeepCopy() *PersonaSidebar

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

func (*PersonaSidebar) DeepCopyInto

func (in *PersonaSidebar) DeepCopyInto(out *PersonaSidebar)

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

type PersonaSpec

type PersonaSpec struct {
	// Name specifies the name for this persona.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a detailed explanation of this persona's purpose and intended users.
	// This helps administrators understand which teams or roles should be assigned to this persona
	// and what kind of experience it provides. Examples might describe responsibilities like
	// "Platform engineers managing infrastructure" or "Developers deploying applications".
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty"`

	// Role defines the primary responsibility area for users assigned to this persona.
	// This controls the default homepage layout and highlights relevant features.
	// Different roles provide different perspectives on the same underlying data,
	// optimized for specific workflows and responsibilities.
	// +kubebuilder:validation:Optional
	Role *console.PersonaRole `json:"role,omitempty"`

	// Configuration contains detailed UI customization settings for this persona.
	// These settings are additive across multiple personas assigned to a user,
	// allowing for flexible permission combinations while maintaining role-based defaults.
	// +kubebuilder:validation:Optional
	Configuration *PersonaConfiguration `json:"configuration,omitempty"`

	// Bindings define which users and groups are assigned to this persona.
	// Users can be assigned to multiple personas, with permissions being additive.
	// This enables flexible role combinations while maintaining clear base configurations.
	// +kubebuilder:validation:Optional
	Bindings []Binding `json:"bindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PersonaSpec defines the desired state of Persona. It specifies the role-based configuration, UI customizations, and access controls that define how the Console interface appears and behaves for users assigned to this persona.

func (*PersonaSpec) DeepCopy

func (in *PersonaSpec) DeepCopy() *PersonaSpec

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

func (*PersonaSpec) DeepCopyInto

func (in *PersonaSpec) DeepCopyInto(out *PersonaSpec)

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

type Pipeline

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

	Spec   PipelineSpec `json:"spec,omitempty"`
	Status Status       `json:"status,omitempty"`
}

Pipeline automates Service Deployments across environments by promoting git-based changes through defined stages. It models multi-stage deployment pipelines with support for approval and job gates, offering safe, customizable delivery flows. Integrates with continuous deployment systems by enabling declarative configuration of deployment flows, including gating, promotions, and service progression.

func (*Pipeline) DeepCopy

func (in *Pipeline) DeepCopy() *Pipeline

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

func (*Pipeline) DeepCopyInto

func (in *Pipeline) DeepCopyInto(out *Pipeline)

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

func (*Pipeline) DeepCopyObject

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

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

func (*Pipeline) HasProjectRef

func (p *Pipeline) HasProjectRef() bool

func (*Pipeline) ProjectName

func (p *Pipeline) ProjectName() string

func (*Pipeline) SetCondition

func (p *Pipeline) SetCondition(condition metav1.Condition)

type PipelineContext

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

	Spec   PipelineContextSpec `json:"spec,omitempty"`
	Status Status              `json:"status,omitempty"`
}

PipelineContext provides a variable context mechanism for pipelines. It stores a context map that gets passed to the pipeline to enable advanced automation workflows.

func (*PipelineContext) DeepCopy

func (in *PipelineContext) DeepCopy() *PipelineContext

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

func (*PipelineContext) DeepCopyInto

func (in *PipelineContext) DeepCopyInto(out *PipelineContext)

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

func (*PipelineContext) DeepCopyObject

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

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

func (*PipelineContext) SetCondition

func (p *PipelineContext) SetCondition(condition metav1.Condition)

type PipelineContextList

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

PipelineContextList contains a list of PipelineContext resources.

func (*PipelineContextList) DeepCopy

func (in *PipelineContextList) DeepCopy() *PipelineContextList

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

func (*PipelineContextList) DeepCopyInto

func (in *PipelineContextList) DeepCopyInto(out *PipelineContextList)

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

func (*PipelineContextList) DeepCopyObject

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

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

type PipelineContextSpec

type PipelineContextSpec struct {
	// PipelineRef references the Pipeline this context will be applied to.
	// +kubebuilder:validation:Optional
	PipelineRef *corev1.ObjectReference `json:"pipelineRef,omitempty"`

	// Context is a templated context map that will be passed to the pipeline.
	// This context can contain variables, configuration data, and other information needed.
	Context runtime.RawExtension `json:"context,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PipelineContextSpec defines the desired state of the PipelineContext.

func (*PipelineContextSpec) DeepCopy

func (in *PipelineContextSpec) DeepCopy() *PipelineContextSpec

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

func (*PipelineContextSpec) DeepCopyInto

func (in *PipelineContextSpec) DeepCopyInto(out *PipelineContextSpec)

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

type PipelineEdge

type PipelineEdge struct {
	// FromID is stage ID the edge is from, can also be specified by name.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	FromID *string `json:"fromId,omitempty"`

	// ToID is stage ID the edge is to, can also be specified by name.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	ToID *string `json:"toId,omitempty"`

	// From is the name of the pipeline stage this edge emits from.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	From *string `json:"from,omitempty"`

	// To is the name of the pipeline stage this edge points to.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	To *string `json:"to,omitempty"`

	// Gates are any optional promotion gates you wish to configure.
	// +kubebuilder:validation:Optional
	Gates []PipelineGate `json:"gates,omitempty"`
}

PipelineEdge defines the flow of execution between stages, controlling promotion paths and enabling attachment of gates for additional validation and approval.

func (*PipelineEdge) DeepCopy

func (in *PipelineEdge) DeepCopy() *PipelineEdge

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

func (*PipelineEdge) DeepCopyInto

func (in *PipelineEdge) DeepCopyInto(out *PipelineEdge)

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

type PipelineGate

type PipelineGate struct {
	// Name of this gate.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Name string `json:"name"`

	// Type of gate.
	// One of:
	// - APPROVAL (requires human approval)
	// - WINDOW (time-based constraints),
	// - JOB (runs custom validation before allowing promotion).
	// - SENTINEL (runs a Plural Sentinel before allowing promotion).
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=APPROVAL;WINDOW;JOB;SENTINEL
	Type console.GateType `json:"type"`

	// ClusterRef specifies the target cluster where this gate will execute.
	// +kubebuilder:validation:Optional
	ClusterRef *corev1.ObjectReference `json:"clusterRef,omitempty"`

	// SentinelRef specifies the sentinel to execute for the SENTINEL gate.
	// +kubebuilder:validation:Optional
	SentinelRef *corev1.ObjectReference `json:"sentinelRef,omitempty"`

	// Spec contains detailed configuration for complex gate types like JOB gates.
	// +kubebuilder:validation:Optional
	Spec *GateSpec `json:"spec,omitempty"`
}

PipelineGate serves as a checkpoint between pipeline stages, enforcing promotion policies. Three gate types are supported: APPROVAL (human sign-off), WINDOW (time-based constraints), and JOB (custom validation jobs like tests or security scans).

func (*PipelineGate) DeepCopy

func (in *PipelineGate) DeepCopy() *PipelineGate

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

func (*PipelineGate) DeepCopyInto

func (in *PipelineGate) DeepCopyInto(out *PipelineGate)

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

type PipelineList

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

PipelineList contains a list of Pipeline resources.

func (*PipelineList) DeepCopy

func (in *PipelineList) DeepCopy() *PipelineList

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

func (*PipelineList) DeepCopyInto

func (in *PipelineList) DeepCopyInto(out *PipelineList)

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

func (*PipelineList) DeepCopyObject

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

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

type PipelineSpec

type PipelineSpec struct {
	// Stages represent discrete steps in the deployment pipeline, such as environments (dev, staging, prod)
	// or specific deployment phases that services progress through.
	Stages []PipelineStage `json:"stages,omitempty"`

	// Edges define the dependencies and flow between stages, controlling the execution order
	// and promotion path through the pipeline.
	Edges []PipelineEdge `json:"edges,omitempty"`

	// FlowRef provides contextual linkage to a broader application Flow this pipeline belongs within.
	// +kubebuilder:validation:Optional
	FlowRef *corev1.ObjectReference `json:"flowRef,omitempty"`

	// ProjectRef references the project this pipeline belongs to.
	// If not provided, it will use the default project.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// Bindings contain read and write policies controlling access to this pipeline.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PipelineSpec defines the desired state of the Pipeline.

func (*PipelineSpec) DeepCopy

func (in *PipelineSpec) DeepCopy() *PipelineSpec

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

func (*PipelineSpec) DeepCopyInto

func (in *PipelineSpec) DeepCopyInto(out *PipelineSpec)

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

type PipelineStage

type PipelineStage struct {
	// Name of this stage.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	Name string `json:"name"`

	// Services deployed in this stage, including optional promotion criteria
	// that dictate when and how services advance to subsequent stages.
	Services []PipelineStageService `json:"services,omitempty"`
}

PipelineStage represents a logical unit within the pipeline, typically corresponding to environments (e.g., dev, staging, prod) or specific deployment phases.

func (*PipelineStage) DeepCopy

func (in *PipelineStage) DeepCopy() *PipelineStage

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

func (*PipelineStage) DeepCopyInto

func (in *PipelineStage) DeepCopyInto(out *PipelineStage)

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

type PipelineStageService

type PipelineStageService struct {
	// ServiceRef references the ServiceDeployment being deployed at this stage.
	ServiceRef *corev1.ObjectReference `json:"serviceRef,omitempty"`

	// Criteria defines optional promotion rules that control when and how
	// this service is allowed to advance to the next stage.
	// +kubebuilder:validation:Optional
	Criteria *PipelineStageServicePromotionCriteria `json:"criteria,omitempty"`
}

PipelineStageService defines a service within a pipeline stage and its promotion rules. This enables conditional promotions, a critical part of automating production deployments safely.

func (*PipelineStageService) DeepCopy

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

func (*PipelineStageService) DeepCopyInto

func (in *PipelineStageService) DeepCopyInto(out *PipelineStageService)

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

type PipelineStageServicePromotionCriteria

type PipelineStageServicePromotionCriteria struct {
	// ServiceRef pointing to a source ServiceDeployment to promote from.
	// +kubebuilder:validation:Optional
	ServiceRef *corev1.ObjectReference `json:"serviceRef,omitempty"`

	// PrAutomationRef pointing to a source PrAutomation to promote from.
	// +kubebuilder:validation:Optional
	PrAutomationRef *corev1.ObjectReference `json:"prAutomationRef,omitempty"`

	// The repository slug the PrAutomation will use.
	// E.g., pluralsh/console if PR is done against https://github.com/pluralsh/console.
	// +kubebuilder:validation:Optional
	Repository *string `json:"repository,omitempty"`

	// Secrets to copy over in a promotion.
	// +kubebuilder:validation:Optional
	Secrets []*string `json:"secrets,omitempty"`
}

PipelineStageServicePromotionCriteria defines actions to perform when promoting this service to the next stage, including source references and secrets to copy.

func (*PipelineStageServicePromotionCriteria) DeepCopy

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

func (*PipelineStageServicePromotionCriteria) DeepCopyInto

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

type PluralResource

type PluralResource interface {
	client.Object

	// ConsoleID returns a resource id read from the Console API
	ConsoleID() *string
	// ConsoleName returns a resource name read from the Console API
	ConsoleName() string
}

PluralResource represents a resource that can be managed in plural form. +k8s:deepcopy-gen=false

type PluralSinkConfiguration

type PluralSinkConfiguration struct {
	// Priority determines the importance level of notifications delivered through this sink.
	// Higher priority notifications may be displayed more prominently in the Console UI
	// and can influence notification filtering and display behavior.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=LOW;MEDIUM;HIGH
	Priority console.NotificationPriority `json:"priority,omitempty"`

	// Urgent controls whether notifications should be immediately delivered via email.
	// When true, notifications sent to this sink will trigger immediate SMTP delivery
	// in addition to appearing in the Console UI, useful for critical alerts.
	// +kubebuilder:validation:Optional
	Urgent *bool `json:"urgent,omitempty"`
}

PluralSinkConfiguration defines settings for in-app notifications within Plural Console. These notifications appear in the Console interface and can be configured for priority and immediate email delivery based on urgency requirements.

func (*PluralSinkConfiguration) DeepCopy

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

func (*PluralSinkConfiguration) DeepCopyInto

func (in *PluralSinkConfiguration) DeepCopyInto(out *PluralSinkConfiguration)

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

type PolicyEngine

type PolicyEngine struct {
	// Type of the policy engine to use with this stack.
	// At the moment only TRIVY is supported.
	// +kubebuilder:validation:Enum=TRIVY
	// +kubebuilder:validation:Required
	Type console.PolicyEngineType `json:"type"`

	// MaxSeverity is the maximum allowed severity without failing the stack run.
	// One of UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL, NONE.
	// +kubebuilder:validation:Enum=UNKNOWN;LOW;MEDIUM;HIGH;CRITICAL;NONE
	// +kubebuilder:validation:Optional
	MaxSeverity *console.VulnSeverity `json:"maxSeverity,omitempty"`
}

PolicyEngine defines configuration for applying policy enforcement to a stack.

func (*PolicyEngine) Attributes

func (in *PolicyEngine) Attributes() *console.PolicyEngineAttributes

func (*PolicyEngine) DeepCopy

func (in *PolicyEngine) DeepCopy() *PolicyEngine

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

func (*PolicyEngine) DeepCopyInto

func (in *PolicyEngine) DeepCopyInto(out *PolicyEngine)

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

type PrAutomation

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

	// Spec defines the desired state of the PrAutomation, including the operations
	// to perform, target repository, and user interface configuration.
	// +kubebuilder:validation:Required
	Spec PrAutomationSpec `json:"spec"`

	// Status represents the current state of this PrAutomation resource.
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

PrAutomation provides a self-service mechanism for generating pull requests against IaC repositories. It enables teams to create standardized, templated PRs for common operations like cluster upgrades, service deployments, and configuration changes. Each automation defines the files to modify, the changes to make (via regex replacement, YAML overlays, or file creation), and provides a UI wizard for users to configure parameters before generating the PR.

func (*PrAutomation) ConsoleID

func (in *PrAutomation) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*PrAutomation) ConsoleName

func (in *PrAutomation) ConsoleName() string

ConsoleName implements PluralResource interface

func (*PrAutomation) DeepCopy

func (in *PrAutomation) DeepCopy() *PrAutomation

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

func (*PrAutomation) DeepCopyInto

func (in *PrAutomation) DeepCopyInto(out *PrAutomation)

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

func (*PrAutomation) DeepCopyObject

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

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

func (*PrAutomation) Diff

func (in *PrAutomation) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*PrAutomation) SetCondition

func (in *PrAutomation) SetCondition(condition metav1.Condition)

type PrAutomationBindings

type PrAutomationBindings struct {
	// Create bindings.
	// +kubebuilder:validation:Optional
	Create []Binding `json:"create,omitempty"`

	// Write bindings.
	// +kubebuilder:validation:Optional
	Write []Binding `json:"write,omitempty"`
}

PrAutomationBindings defines access control for PR automation resources.

func (*PrAutomationBindings) DeepCopy

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

func (*PrAutomationBindings) DeepCopyInto

func (in *PrAutomationBindings) DeepCopyInto(out *PrAutomationBindings)

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

type PrAutomationConfiguration

type PrAutomationConfiguration struct {
	// Name is the identifier for this configuration field, used as a template variable
	// and as the form field name in the UI.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Type specifies the input type for this field, determining how it's rendered
	// in the UI and what validation is applied.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=STRING;INT;BOOL;PASSWORD;ENUM;CLUSTER;PROJECT;GROUP;USER;FLOW
	Type console.ConfigurationType `json:"type"`

	// Condition defines when this field should be displayed based on the values
	// of other fields, enabling dynamic forms that adapt to user input.
	// +kubebuilder:validation:Optional
	*Condition `json:"condition,omitempty"`

	// Default provides a default value for this field.
	// +kubebuilder:validation:Optional
	Default *string `json:"default,omitempty"`

	// Documentation provides help text or description for this field to guide users in providing the correct input.
	// +kubebuilder:validation:Optional
	Documentation *string `json:"documentation,omitempty"`

	// Longform provides extended documentation or detailed explanation for complex configuration fields.
	// +kubebuilder:validation:Optional
	Longform *string `json:"longform,omitempty"`

	// DisplayName provides a human-readable label for this field in the UI.
	// If not provided, the Name field is used as the display label.
	// +kubebuilder:validation:Optional
	DisplayName *string `json:"displayName,omitempty"`

	// Optional indicates whether this field is required (false) or optional (true) for PR generation.
	// Required fields must be filled by the user.
	// +kubebuilder:validation:Optional
	Optional *bool `json:"optional,omitempty"`

	// Page specifies the page to use for the pr configuration in the Plural web configuration wizard
	// +kubebuilder:validation:Optional
	Page *int64 `json:"page,omitempty"`

	// Placeholder text to show in the input field to guide users on the expected format or content.
	// +kubebuilder:validation:Optional
	Placeholder *string `json:"placeholder,omitempty"`

	// Validation defines additional validation rules to apply to user input before allowing PR generation.
	// +kubebuilder:validation:Optional
	Validation *PrAutomationConfigurationValidation `json:"validation,omitempty"`

	// Values provides the list of allowed values for ENUM type fields, creating a dropdown selection in the UI.
	// +kubebuilder:validation:Optional
	Values []*string `json:"values,omitempty"`
}

PrAutomationConfiguration defines a single input field in the self-service UI form.

func (*PrAutomationConfiguration) Attributes

func (*PrAutomationConfiguration) DeepCopy

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

func (*PrAutomationConfiguration) DeepCopyInto

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

type PrAutomationConfigurationValidation

type PrAutomationConfigurationValidation struct {
	// A regex to match string-valued configuration items
	// +kubebuilder:validation:Optional
	Regex *string `json:"regex,omitempty"`

	// Whether the string value is supposed to be json-encoded
	// +kubebuilder:validation:Optional
	Json *bool `json:"json,omitempty"`

	// How to determine uniquenss for this field
	// +kubebuilder:validation:Optional
	UniqBy *PrAutomationUniqBy `json:"uniqBy,omitempty"`
}

PrAutomationConfigurationValidation defines validation rules for configuration field inputs.

func (*PrAutomationConfigurationValidation) DeepCopy

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

func (*PrAutomationConfigurationValidation) DeepCopyInto

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

type PrAutomationConfirmation

type PrAutomationConfirmation struct {
	// Text in Markdown to explain this PR.
	// +kubebuilder:validation:Optional
	Text *string `json:"text,omitempty"`

	// Checklist to present to confirm each prerequisite is satisfied.
	// +kubebuilder:validation:Optional
	Checklist []PrConfirmationChecklist `json:"checklist,omitempty"`
}

PrAutomationConfirmation defines additional verification steps before PR generation.

func (*PrAutomationConfirmation) Attributes

func (*PrAutomationConfirmation) DeepCopy

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

func (*PrAutomationConfirmation) DeepCopyInto

func (in *PrAutomationConfirmation) DeepCopyInto(out *PrAutomationConfirmation)

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

type PrAutomationCreateConfiguration

type PrAutomationCreateConfiguration struct {
	// Git location to source external files from.
	// +kubebuilder:validation:Optional
	Git *GitRef `json:"git,omitempty"`

	// Template files to use to generate file content
	// +kubebuilder:validation:Optional
	Templates []PrAutomationTemplate `json:"templates,omitempty"`
}

PrAutomationCreateConfiguration defines how to generate new files from templates during PR creation.

func (*PrAutomationCreateConfiguration) Attributes

func (*PrAutomationCreateConfiguration) DeepCopy

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

func (*PrAutomationCreateConfiguration) DeepCopyInto

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

type PrAutomationDeleteConfiguration

type PrAutomationDeleteConfiguration struct {
	// Individual files to delete.
	// +kubebuilder:validation:Optional
	Files []string `json:"files"`

	// Entire folders to delete.
	// +kubebuilder:validation:Optional
	Folders []string `json:"folders"`
}

PrAutomationDeleteConfiguration specifies files and folders to delete as part of the PR operation.

func (*PrAutomationDeleteConfiguration) Attributes

func (*PrAutomationDeleteConfiguration) DeepCopy

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

func (*PrAutomationDeleteConfiguration) DeepCopyInto

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

type PrAutomationList

type PrAutomationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []PrAutomation `json:"items"`
}

PrAutomationList contains a list of PrAutomation resources.

func (*PrAutomationList) DeepCopy

func (in *PrAutomationList) DeepCopy() *PrAutomationList

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

func (*PrAutomationList) DeepCopyInto

func (in *PrAutomationList) DeepCopyInto(out *PrAutomationList)

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

func (*PrAutomationList) DeepCopyObject

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

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

type PrAutomationSecretConfiguration

type PrAutomationSecretConfiguration struct {
	// The cluster handle that will hold this secret
	Cluster string `json:"cluster"`

	// The k8s namespace to place the secret in
	Namespace string `json:"namespace"`

	// The name of the secret
	Name string `json:"name"`

	// The entries of the secret
	Entries []PrAutomationSecretEntry `json:"entries"`
}

func (*PrAutomationSecretConfiguration) Attributes

func (*PrAutomationSecretConfiguration) DeepCopy

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

func (*PrAutomationSecretConfiguration) DeepCopyInto

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

type PrAutomationSecretEntry

type PrAutomationSecretEntry struct {
	// The name of the secret entry
	Name string `json:"name"`

	// The documentation of the secret entry
	Documentation string `json:"documentation"`

	// Whether to autogenerate the secret entry
	// +kubebuilder:validation:Optional
	Autogenerate *bool `json:"autogenerate,omitempty"`
}

func (*PrAutomationSecretEntry) Attributes

func (*PrAutomationSecretEntry) DeepCopy

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

func (*PrAutomationSecretEntry) DeepCopyInto

func (in *PrAutomationSecretEntry) DeepCopyInto(out *PrAutomationSecretEntry)

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

type PrAutomationSpec

type PrAutomationSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=CLUSTER;SERVICE;PIPELINE;UPDATE;UPGRADE;COST
	Role *console.PrRole `json:"role,omitempty"`

	// Addon links this automation to a specific add-on name.
	// +kubebuilder:validation:Optional
	Addon *string `json:"addon,omitempty"`

	// Branch specifies the base branch this PR will be created from. If not provided,
	// defaults to the repository's main branch (usually 'main' or 'master').
	// +kubebuilder:validation:Optional
	Branch *string `json:"branch,omitempty"`

	// Icon provides a URL to an icon image to visually represent this automation
	// in the user interface and catalogs.
	// +kubebuilder:validation:Optional
	Icon *string `json:"icon,omitempty"`

	// DarkIcon provides a URL to a dark-mode variant of the icon for improved
	// visibility in dark-themed user interfaces.
	// +kubebuilder:validation:Optional
	DarkIcon *string `json:"darkIcon,omitempty"`

	// Documentation provides detailed explanation of what this automation does,
	// when to use it, and any prerequisites or considerations.
	// +kubebuilder:validation:Optional
	Documentation *string `json:"documentation,omitempty"`

	// Identifier specifies the target repository in the format "organization/repository-name"
	// for GitHub, or equivalent formats for other SCM providers.
	// +kubebuilder:validation:Optional
	Identifier *string `json:"identifier,omitempty"`

	// Message defines the commit message template that will be used in the generated PR.
	// Can include templated variables from user input.
	// +kubebuilder:validation:Optional
	Message *string `json:"message,omitempty"`

	// Name specifies the display name for this automation in the Console API.
	// If not provided, defaults to the Kubernetes resource name.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Title defines the template for the pull request title. Can include variables
	// that will be replaced with user-provided configuration values.
	// +kubebuilder:validation:Optional
	Title *string `json:"title,omitempty"`

	// Patch determines whether to generate a patch for this PR instead of
	// creating a full pull request.
	// +kubebuilder:validation:Optional
	Patch *bool `json:"patch,omitempty"`

	// BranchPrefix specifies a prefix to use for the branch name, will be appended with a random string for deduplication.
	// +kubebuilder:validation:Optional
	BranchPrefix *string `json:"branchPrefix,omitempty"`

	// ClusterRef references a specific cluster that this PR operates on.
	// +kubebuilder:validation:Optional
	ClusterRef *corev1.ObjectReference `json:"clusterRef,omitempty"`

	// ScmConnectionRef references the SCM connection to use for authentication when creating pull requests.
	// +kubebuilder:validation:Required
	ScmConnectionRef corev1.ObjectReference `json:"scmConnectionRef"`

	// RepositoryRef references a Git repository resource this automation uses.
	// +kubebuilder:validation:Optional
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef,omitempty"`

	// ServiceRef references a specific service that this PR automation acts upon.
	// +kubebuilder:validation:Optional
	ServiceRef *corev1.ObjectReference `json:"serviceRef,omitempty"`

	// ProjectRef references the project this automation belongs to, enabling
	// project-scoped organization and access control.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// CatalogRef references the catalog this automation belongs to for
	// organizational purposes and discoverability in the service catalog.
	// +kubebuilder:validation:Optional
	CatalogRef *corev1.ObjectReference `json:"catalogRef,omitempty"`

	// Bindings containing read and write policies of PR automation.
	// +kubebuilder:validation:Optional
	Bindings *PrAutomationBindings `json:"bindings,omitempty"`

	// Configuration defines the self-service UI form fields that users fill out
	// to customize the generated PR. Each field can be templated into the PR content.
	// +kubebuilder:validation:Optional
	Configuration []PrAutomationConfiguration `json:"configuration,omitempty"`

	// Configuration for setting a secret as part of this pr.  This will usually be used by k8s manifests defined and is
	// securely handled by our api with RBAC validation.
	// +kubebuilder:validation:Optional
	Secrets *PrAutomationSecretConfiguration `json:"secrets,omitempty"`

	// Confirmation specifies additional verification steps or information to present
	// to users before they can generate the PR, ensuring prerequisites are met.
	// +kubebuilder:validation:Optional
	Confirmation *PrAutomationConfirmation `json:"confirmation,omitempty"`

	// Creates defines specifications for generating new files from templates,
	// allowing the automation to add new configuration files to the repository.
	// +kubebuilder:validation:Optional
	Creates *PrAutomationCreateConfiguration `json:"creates,omitempty"`

	// Updates specifies how to modify existing files using regex replacements
	// or YAML overlays, enabling precise changes to infrastructure code.
	// +kubebuilder:validation:Optional
	Updates *PrAutomationUpdateConfiguration `json:"updates,omitempty"`

	// Deletes specifies files and folders to remove from the repository as part
	// of the PR, useful for cleanup or migration scenarios.
	// +kubebuilder:validation:Optional
	Deletes *PrAutomationDeleteConfiguration `json:"deletes,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`

	// Labels to apply to all created PRs from this pr automation
	// +kubebuilder:validation:Optional
	Labels []*string `json:"labels,omitempty"`
}

PrAutomationSpec defines the desired state of the PrAutomation.

func (*PrAutomationSpec) DeepCopy

func (in *PrAutomationSpec) DeepCopy() *PrAutomationSpec

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

func (*PrAutomationSpec) DeepCopyInto

func (in *PrAutomationSpec) DeepCopyInto(out *PrAutomationSpec)

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

type PrAutomationTemplate

type PrAutomationTemplate struct {
	// The destination to write the file to
	// +kubebuilder:validation:Required
	Destination string `json:"destination"`

	// Whether it is being sourced from an external git repository
	// +kubebuilder:validation:Required
	External bool `json:"external"`

	// The source file to use for templating
	// +kubebuilder:validation:Optional
	Source string `json:"source"`

	// Additional context overrides to apply to this template, will be merged into the user-provided configuration options
	// +kubebuilder:validation:Optional
	Context *runtime.RawExtension `json:"context,omitempty"`

	// Condition string that will be evaluated to determine if source files should be copied or not.
	// +kubebuilder:validation:Optional
	Condition *string `json:"condition,omitempty"`
}

PrAutomationTemplate defines a single file template for creating new files in the target repository.

func (*PrAutomationTemplate) Attributes

func (*PrAutomationTemplate) DeepCopy

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

func (*PrAutomationTemplate) DeepCopyInto

func (in *PrAutomationTemplate) DeepCopyInto(out *PrAutomationTemplate)

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

type PrAutomationTrigger

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

	// Spec defines the desired state of the PrAutomationTrigger, including
	// the target automation, branch name, and configuration context.
	Spec PrAutomationTriggerSpec `json:"spec,omitempty"`

	// Status represents the current state of this PrAutomationTrigger resource.
	Status Status `json:"status,omitempty"`
}

PrAutomationTrigger initiates the execution of a PR automation with specific parameters. This resource enables automated, event-driven, or scheduled generation of pull requests by providing configuration context and branch information to an existing PrAutomation.

func (*PrAutomationTrigger) DeepCopy

func (in *PrAutomationTrigger) DeepCopy() *PrAutomationTrigger

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

func (*PrAutomationTrigger) DeepCopyInto

func (in *PrAutomationTrigger) DeepCopyInto(out *PrAutomationTrigger)

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

func (*PrAutomationTrigger) DeepCopyObject

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

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

func (*PrAutomationTrigger) SetCondition

func (p *PrAutomationTrigger) SetCondition(condition metav1.Condition)

type PrAutomationTriggerList

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

PrAutomationTriggerList contains a list of PrAutomationTrigger

func (*PrAutomationTriggerList) DeepCopy

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

func (*PrAutomationTriggerList) DeepCopyInto

func (in *PrAutomationTriggerList) DeepCopyInto(out *PrAutomationTriggerList)

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

func (*PrAutomationTriggerList) DeepCopyObject

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

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

type PrAutomationTriggerSpec

type PrAutomationTriggerSpec struct {
	// PrAutomationRef points to the source PrAutomation resource that defines
	// the templates, operations, and target repository for the generated PR.
	// +kubebuilder:validation:Optional
	PrAutomationRef *corev1.ObjectReference `json:"prAutomationRef,omitempty"`

	// Branch specifies the name of the branch that should be created for this PR
	// against the PrAutomation's configured base branch. This allows multiple
	// triggers to operate on the same automation without conflicts.
	// +kubebuilder:validation:Required
	Branch string `json:"branch,omitempty"`

	// Context provides the configuration values that will be used to template
	// the PR content, file modifications, and metadata. This should match the
	// configuration schema defined in the referenced PrAutomation.
	// +kubebuilder:validation:Optional
	Context runtime.RawExtension `json:"context,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PrAutomationTriggerSpec defines the desired state of PrAutomationTrigger. A trigger executes a specific PR automation with custom configuration and branch settings, enabling programmatic and event-driven generation of pull requests for infrastructure changes.

func (*PrAutomationTriggerSpec) DeepCopy

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

func (*PrAutomationTriggerSpec) DeepCopyInto

func (in *PrAutomationTriggerSpec) DeepCopyInto(out *PrAutomationTriggerSpec)

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

type PrAutomationUniqBy

type PrAutomationUniqBy struct {
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=PROJECT;CLUSTER
	Scope console.ValidationUniqScope `json:"scope"`
}

func (*PrAutomationUniqBy) Attributes

func (in *PrAutomationUniqBy) Attributes() *console.UniqByAttributes

func (*PrAutomationUniqBy) DeepCopy

func (in *PrAutomationUniqBy) DeepCopy() *PrAutomationUniqBy

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

func (*PrAutomationUniqBy) DeepCopyInto

func (in *PrAutomationUniqBy) DeepCopyInto(out *PrAutomationUniqBy)

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

type PrAutomationUpdateConfiguration

type PrAutomationUpdateConfiguration struct {
	// Files to update.
	// +kubebuilder:validation:Optional
	Files []*string `json:"files,omitempty"`

	// MatchStrategy, see enum for behavior.
	// +kubebuilder:validation:Optional
	MatchStrategy *console.MatchStrategy `json:"matchStrategy,omitempty"`

	// Full regex + replacement structs in case there is different behavior per regex
	// +kubebuilder:validation:Optional
	RegexReplacements []RegexReplacement `json:"regexReplacements,omitempty"`

	// Replacement via overlaying a yaml structure on an existing yaml file
	// +kubebuilder:validation:Optional
	YamlOverlays []YamlOverlay `json:"yamlOverlays,omitempty"`

	// Regexes to apply on each file.
	// +kubebuilder:validation:Optional
	Regexes []*string `json:"regexes,omitempty"`

	// ReplaceTemplate is a template to use when replacing a regex.
	// +kubebuilder:validation:Optional
	ReplaceTemplate *string `json:"replaceTemplate,omitempty"`

	// Yq (unused so far)
	// +kubebuilder:validation:Optional
	Yq *string `json:"yq,omitempty"`
}

PrAutomationUpdateConfiguration defines how to modify existing files in the target repository.

func (*PrAutomationUpdateConfiguration) Attributes

func (*PrAutomationUpdateConfiguration) DeepCopy

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

func (*PrAutomationUpdateConfiguration) DeepCopyInto

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

type PrConfirmationChecklist

type PrConfirmationChecklist struct {
	// The label of this checkbox
	Label string `json:"label"`
}

PrConfirmationChecklist represents a checkbox to render to confirm a PR prerequisite is satisfied.

func (*PrConfirmationChecklist) DeepCopy

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

func (*PrConfirmationChecklist) DeepCopyInto

func (in *PrConfirmationChecklist) DeepCopyInto(out *PrConfirmationChecklist)

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

type PrGovernance

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

	// Spec defines the desired state of the PrGovernance, including governance rules,
	// webhook configurations, and SCM integration settings for pull request management.
	Spec PrGovernanceSpec `json:"spec,omitempty"`

	// Status represents the current state of this PrGovernance resource, including
	// synchronization status with the Console API and governance rule enforcement status.
	Status Status `json:"status,omitempty"`
}

PrGovernance defines governance rules and policies for pull request management within Plural Console. It enforces organizational policies, approval workflows, and compliance requirements for pull requests created through PR automations.

func (*PrGovernance) ConsoleName

func (in *PrGovernance) ConsoleName() string

ConsoleName returns the effective name to be used for this PR governance controller. It returns the explicitly configured name if provided, otherwise falls back to the PrGovernance resource's own name from metadata.

func (*PrGovernance) DeepCopy

func (in *PrGovernance) DeepCopy() *PrGovernance

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

func (*PrGovernance) DeepCopyInto

func (in *PrGovernance) DeepCopyInto(out *PrGovernance)

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

func (*PrGovernance) DeepCopyObject

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

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

func (*PrGovernance) Diff

func (in *PrGovernance) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current PrGovernance configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*PrGovernance) SetCondition

func (in *PrGovernance) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the PrGovernance status.

type PrGovernanceConfiguration

type PrGovernanceConfiguration struct {
	// Webhooks defines webhook integration settings for governance enforcement.
	// This enables the governance controller to receive notifications about pull request
	// events and respond with appropriate policy enforcement actions such as requiring
	// additional approvals, running compliance checks, or blocking merges.
	// +kubebuilder:validation:Required
	Webhooks PrGovernanceWebhook `json:"webhook"`
}

PrGovernanceConfiguration defines the configuration settings for PR governance enforcement. It specifies the mechanisms and integrations used to implement governance policies for pull requests managed through Plural Console automations.

func (*PrGovernanceConfiguration) DeepCopy

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

func (*PrGovernanceConfiguration) DeepCopyInto

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

type PrGovernanceList

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

PrGovernanceList contains a list of PrGovernance resources.

func (*PrGovernanceList) DeepCopy

func (in *PrGovernanceList) DeepCopy() *PrGovernanceList

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

func (*PrGovernanceList) DeepCopyInto

func (in *PrGovernanceList) DeepCopyInto(out *PrGovernanceList)

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

func (*PrGovernanceList) DeepCopyObject

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

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

type PrGovernanceSpec

type PrGovernanceSpec struct {
	// Name specifies the name for this PR governance controller.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// ConnectionRef references an ScmConnection to reuse its credentials for this governance controller's authentication.
	// +kubebuilder:validation:Required
	ConnectionRef corev1.ObjectReference `json:"connectionRef"`

	// Configuration contains the specific governance settings and rules to enforce on pull requests.
	// This includes webhook configurations, approval requirements, and other policy enforcement
	// mechanisms that control how pull requests are managed and processed.
	// +kubebuilder:validation:Optional
	Configuration *PrGovernanceConfiguration `json:"configuration,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PrGovernanceSpec defines the desired state of PrGovernance. It specifies governance rules, approval workflows, and integration settings for managing pull requests created through Plural Console automations.

func (*PrGovernanceSpec) DeepCopy

func (in *PrGovernanceSpec) DeepCopy() *PrGovernanceSpec

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

func (*PrGovernanceSpec) DeepCopyInto

func (in *PrGovernanceSpec) DeepCopyInto(out *PrGovernanceSpec)

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

type PrGovernanceWebhook

type PrGovernanceWebhook struct {
	// Url specifies the HTTP endpoint where governance webhook notifications should be sent.
	// This URL will receive webhook payloads containing pull request information and governance
	// context, allowing external systems to implement custom approval workflows, compliance
	// checks, or other governance processes. The endpoint should be accessible and configured
	// to handle the webhook payload format expected by the governance system.
	// +kubebuilder:validation:Required
	Url string `json:"url"`
}

PrGovernanceWebhook defines webhook configuration for external governance system integration. This enables the PR governance controller to integrate with external approval systems, compliance platforms, or custom governance workflows that need to be notified about or control pull request lifecycle events.

func (*PrGovernanceWebhook) DeepCopy

func (in *PrGovernanceWebhook) DeepCopy() *PrGovernanceWebhook

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

func (*PrGovernanceWebhook) DeepCopyInto

func (in *PrGovernanceWebhook) DeepCopyInto(out *PrGovernanceWebhook)

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

type PreviewEnvironmentTemplate

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

	// Spec defines the desired state of the PreviewEnvironmentTemplate, including the reference service
	// to clone, customization template, and integration settings for pull request workflows.
	Spec PreviewEnvironmentTemplateSpec `json:"spec,omitempty"`

	// Status represents the current state of this PreviewEnvironmentTemplate resource, including
	// synchronization status with the Console API and any deployment information.
	Status Status `json:"status,omitempty"`
}

PreviewEnvironmentTemplate automates the creation of temporary preview environments for pull requests. It defines how to clone and customize existing services when pull requests are opened, enabling developers to test changes in isolated environments before merging. This is particularly useful for feature branches, bug fixes, or any changes that need validation in a running environment. Common use cases include creating preview environments for web applications, API services, or microservices where visual or functional testing is needed before code review approval.

func (*PreviewEnvironmentTemplate) ConsoleName

func (in *PreviewEnvironmentTemplate) ConsoleName() string

ConsoleName returns the effective name to be used for this preview environment template. It returns the explicitly configured name if provided, otherwise falls back to the PreviewEnvironmentTemplate resource's own name from metadata.

func (*PreviewEnvironmentTemplate) DeepCopy

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

func (*PreviewEnvironmentTemplate) DeepCopyInto

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

func (*PreviewEnvironmentTemplate) DeepCopyObject

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

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

func (*PreviewEnvironmentTemplate) Diff

func (in *PreviewEnvironmentTemplate) Diff(hasher Hasher) (changed bool, sha string, err error)

Diff compares the current PreviewEnvironmentTemplate configuration with its last known state to determine if changes have occurred. It returns whether the resource has changed, the new SHA hash, and any error that occurred during comparison.

func (*PreviewEnvironmentTemplate) SetCondition

func (in *PreviewEnvironmentTemplate) SetCondition(condition metav1.Condition)

SetCondition sets a condition on the PreviewEnvironmentTemplate status.

type PreviewEnvironmentTemplateList

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

PreviewEnvironmentTemplateList contains a list of PreviewEnvironmentTemplate resources.

func (*PreviewEnvironmentTemplateList) DeepCopy

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

func (*PreviewEnvironmentTemplateList) DeepCopyInto

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

func (*PreviewEnvironmentTemplateList) DeepCopyObject

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

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

type PreviewEnvironmentTemplateSpec

type PreviewEnvironmentTemplateSpec struct {
	// Name specifies the name for this preview environment template.
	// If not provided, the name from the resource metadata will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// CommentTemplate provides a liquid template for generating custom PR comments.
	// This template can include dynamic information about the preview environment such as
	// URLs, deployment status, or custom instructions for reviewers. Variables from the
	// service template and environment can be interpolated into the comment.
	// +kubebuilder:validation:Optional
	CommentTemplate *string `json:"commentTemplate,omitempty"`

	// ScmConnectionRef references the source control management connection to use for PR operations.
	// This connection is used to post comments on pull requests with preview environment information
	// and to trigger environment creation based on PR events.
	// +kubebuilder:validation:Optional
	ScmConnectionRef *corev1.ObjectReference `json:"scmConnectionRef,omitempty"`

	// ReferenceServiceRef specifies the existing service deployment to use as a template.
	// This service will be cloned and customized according to the Template configuration
	// to create preview environments. The referenced service should be a stable, working
	// deployment that represents the base configuration for preview environments.
	// +kubebuilder:validation:Required
	ReferenceServiceRef corev1.ObjectReference `json:"referenceServiceRef"`

	// FlowRef references the flow that owns and manages this preview environment template.
	// The flow defines the overall workflow and permissions for creating and managing
	// preview environments based on this template.
	// +kubebuilder:validation:Required
	FlowRef corev1.ObjectReference `json:"flowRef"`

	// Template defines the service configuration overrides and customizations to apply
	// when cloning the reference service for preview environments. This includes
	// namespace changes, configuration overrides, and any other modifications needed
	// to create isolated preview environments.
	// +kubebuilder:validation:Required
	Template ServiceTemplate `json:"template"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

PreviewEnvironmentTemplateSpec defines the desired state of PreviewEnvironmentTemplate. It specifies how to create preview environments by cloning an existing service with customizations, enabling automated testing environments for pull requests and feature development.

func (*PreviewEnvironmentTemplateSpec) DeepCopy

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

func (*PreviewEnvironmentTemplateSpec) DeepCopyInto

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

type Project

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

	// Spec reflects a Console API project spec.
	// +kubebuilder:validation:Required
	Spec ProjectSpec `json:"spec"`

	// Status represents the status of this resource.
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

Project provides organizational segmentation and multi-tenancy capabilities within Plural Console. It serves as a unit of an organization to control permissions for sets of resources, enabling enterprise-grade fleet management while maintaining security boundaries. Projects allow resource owners to manage their domain without accessing resources outside their scope, supporting principles of least privilege and preventing credential sprawl across the entire fleet.

func (*Project) ConsoleID

func (in *Project) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*Project) ConsoleName

func (in *Project) ConsoleName() string

ConsoleName implements PluralResource interface

func (*Project) DeepCopy

func (in *Project) DeepCopy() *Project

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

func (*Project) DeepCopyInto

func (in *Project) DeepCopyInto(out *Project)

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

func (*Project) DeepCopyObject

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

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

func (*Project) Diff

func (in *Project) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*Project) SetCondition

func (in *Project) SetCondition(condition metav1.Condition)

type ProjectList

type ProjectList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Project `json:"items"`
}

ProjectList contains a list of Project resources.

func (*ProjectList) DeepCopy

func (in *ProjectList) DeepCopy() *ProjectList

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

func (*ProjectList) DeepCopyInto

func (in *ProjectList) DeepCopyInto(out *ProjectList)

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

func (*ProjectList) DeepCopyObject

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

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

type ProjectSpec

type ProjectSpec struct {
	// Name of the project.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=myprojectname
	Name string `json:"name"`

	// Description provides a human-readable explanation of this project's purpose
	// and the resources it manages within the organizational hierarchy.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=my project description
	Description *string `json:"description,omitempty"`

	// Bindings contain read and write policies that control access to all resources
	// within this project, enabling fine-grained permission management and multi-tenancy.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ProjectSpec defines the desired state of a Project.

func (*ProjectSpec) DeepCopy

func (in *ProjectSpec) DeepCopy() *ProjectSpec

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

func (*ProjectSpec) DeepCopyInto

func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)

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

type Reconciliation

type Reconciliation struct {
	// DriftDetection enables drift detection for this resource.
	// It is destined to detect changes made to the related
	// resources that are not referenced with owner ref.
	// Use with Interval to set how often drift detection runs.
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	// +kubebuilder:example:=false
	DriftDetection *bool `json:"driftDetection,omitempty"`

	// Interval for the drift detection mechanism.
	// It is subject to jitter to avoid the thundering herd problem,
	// it is calculated as a random value between 50% and 150% of the given duration.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:default="30m"
	// +kubebuilder:example:="5m30s"
	Interval *string `json:"interval,omitempty"`
}

Reconciliation parameters for a specific resource.

func (*Reconciliation) DeepCopy

func (in *Reconciliation) DeepCopy() *Reconciliation

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

func (*Reconciliation) DeepCopyInto

func (in *Reconciliation) DeepCopyInto(out *Reconciliation)

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

func (*Reconciliation) DriftDetect

func (r *Reconciliation) DriftDetect() bool

func (*Reconciliation) Requeue

func (r *Reconciliation) Requeue() ctrl.Result

Requeue returns ctrl.Result based on the resource Reconciliation spec. Used for drift detection.

type RegexReplacement

type RegexReplacement struct {
	// Regex to match a substring on.
	// +kubebuilder:validation:Required
	Regex string `json:"regex"`

	// File this replacement will work on.
	// +kubebuilder:validation:Required
	File string `json:"file"`

	// Replacement to be substituted for the match in the regex.
	// +kubebuilder:validation:Required
	Replacement string `json:"replacement"`

	// Templated indicates whether you want to apply templating to the regex before compiling.
	// +kubebuilder:validation:Optional
	Templated *bool `json:"templated"`
}

RegexReplacement defines a specific find-and-replace operation using regular expressions.

func (*RegexReplacement) Attributes

func (*RegexReplacement) DeepCopy

func (in *RegexReplacement) DeepCopy() *RegexReplacement

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

func (*RegexReplacement) DeepCopyInto

func (in *RegexReplacement) DeepCopyInto(out *RegexReplacement)

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

type Renderer

type Renderer struct {
	Path string `json:"path"`

	// +kubebuilder:validation:Enum=AUTO;RAW;HELM;KUSTOMIZE
	Type console.RendererType `json:"type"`

	Helm *HelmMinimal `json:"helm,omitempty"`
}

func (*Renderer) DeepCopy

func (in *Renderer) DeepCopy() *Renderer

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

func (*Renderer) DeepCopyInto

func (in *Renderer) DeepCopyInto(out *Renderer)

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

type RouterFilters

type RouterFilters struct {
	// Regex specifies a regular expression pattern for filtering events based on content.
	// This can be used to filter events by URLs, resource names, error messages, or any
	// other textual content within the event data. Use standard regex syntax.
	// +kubebuilder:validation:Optional
	Regex *string `json:"regex,omitempty"`

	// ServiceRef filters events to only those associated with a specific service deployment.
	// +kubebuilder:validation:Optional
	ServiceRef *corev1.ObjectReference `json:"serviceRef,omitempty"`

	// ClusterRef filters events to only those associated with a specific cluster.
	// +kubebuilder:validation:Optional
	ClusterRef *corev1.ObjectReference `json:"clusterRef,omitempty"`

	// PipelineRef filters events to only those associated with a specific pipeline.
	// +kubebuilder:validation:Optional
	PipelineRef *corev1.ObjectReference `json:"pipelineRef,omitempty"`
}

RouterFilters defines filtering criteria for routing events to notification destinations. Filters can be based on regex patterns, resource associations, or combinations thereof.

func (*RouterFilters) DeepCopy

func (in *RouterFilters) DeepCopy() *RouterFilters

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

func (*RouterFilters) DeepCopyInto

func (in *RouterFilters) DeepCopyInto(out *RouterFilters)

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

type ScmConnection

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

	// +kubebuilder:validation:Required
	Spec ScmConnectionSpec `json:"spec"`
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

ScmConnection is a container for credentials to a scm provider. You can also reference a SCM connection created in the Plural UI via the provider + name, leaving all other fields blank. +kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster +kubebuilder:subresource:status +kubebuilder:printcolumn:name="ID",type="string",JSONPath=".status.id",description="ID of the scm connection in the Console API." +kubebuilder:printcolumn:name="Provider",type="string",JSONPath=".spec.type",description="Name of the scm provider service."

func (*ScmConnection) Attributes

func (s *ScmConnection) Attributes(ctx context.Context, kubeClient client.Client, token *string) (*console.ScmConnectionAttributes, error)

func (*ScmConnection) ConsoleID

func (s *ScmConnection) ConsoleID() *string

ConsoleID implements PluralResource interface

func (*ScmConnection) ConsoleName

func (s *ScmConnection) ConsoleName() string

ConsoleName implements PluralResource interface

func (*ScmConnection) DeepCopy

func (in *ScmConnection) DeepCopy() *ScmConnection

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

func (*ScmConnection) DeepCopyInto

func (in *ScmConnection) DeepCopyInto(out *ScmConnection)

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

func (*ScmConnection) DeepCopyObject

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

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

func (*ScmConnection) Diff

func (s *ScmConnection) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*ScmConnection) SetCondition

func (s *ScmConnection) SetCondition(condition metav1.Condition)

type ScmConnectionList

type ScmConnectionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ScmConnection `json:"items"`
}

ScmConnectionList ... +kubebuilder:object:root=true

func (*ScmConnectionList) DeepCopy

func (in *ScmConnectionList) DeepCopy() *ScmConnectionList

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

func (*ScmConnectionList) DeepCopyInto

func (in *ScmConnectionList) DeepCopyInto(out *ScmConnectionList)

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

func (*ScmConnectionList) DeepCopyObject

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

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

type ScmConnectionSpec

type ScmConnectionSpec struct {
	// Name is a human-readable name of the ScmConnection.
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// Type is the name of the scm service for the ScmConnection.
	// One of (ScmType): [GITHUB, GITLAB, AZURE_DEVOPS, BITBUCKET]
	// +kubebuilder:example:=GITHUB
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:validation:Enum:=GITHUB;GITLAB;BITBUCKET;AZURE_DEVOPS
	Type console.ScmType `json:"type"`
	// A secret containing this access token you will use, stored in the `token` data field.
	// +kubebuilder:validation:Optional
	TokenSecretRef *corev1.SecretReference `json:"tokenSecretRef,omitempty"`
	// Username ...
	// +kubebuilder:validation:Optional
	Username *string `json:"username,omitempty"`
	// BaseUrl is a base URL for Git clones for self-hosted versions.
	// +kubebuilder:validation:Optional
	BaseUrl *string `json:"baseUrl,omitempty"`
	// APIUrl is a base URL for HTTP apis for shel-hosted versions if different from BaseUrl.
	// +kubebuilder:validation:Optional
	APIUrl *string `json:"apiUrl,omitempty"`

	// Settings for configuring Github App authentication
	// +kubebuilder:validation:Optional
	Github *ScmGithubConnection `json:"github,omitempty"`

	// Settings for configuring Azure DevOps authentication
	// +kubebuilder:validation:Optional
	Azure *AzureDevopsSettings `json:"azure,omitempty"`

	// Configures usage of an HTTP proxy for all requests involving this SCM connection.
	// +kubebuilder:validation:Optional
	Proxy *HttpProxyConfiguration `json:"proxy,omitempty"`

	// +kubebuilder:validation:Optional
	Default *bool `json:"default,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

func (*ScmConnectionSpec) DeepCopy

func (in *ScmConnectionSpec) DeepCopy() *ScmConnectionSpec

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

func (*ScmConnectionSpec) DeepCopyInto

func (in *ScmConnectionSpec) DeepCopyInto(out *ScmConnectionSpec)

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

type ScmGithubConnection

type ScmGithubConnection struct {
	// The Github App ID to use for authentication (can be found on the Github Apps settings page)
	AppID string `json:"appId"`
	// The installation ID of your install of the Github App (found on the Github Apps section of your github repo/organization, located in the url path)
	InstallationId string `json:"installationId"`
	// +kubebuilder:validation:Optional
	PrivateKeyRef *corev1.SecretKeySelector `json:"privateKeyRef,omitempty"`
}

func (*ScmGithubConnection) DeepCopy

func (in *ScmGithubConnection) DeepCopy() *ScmGithubConnection

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

func (*ScmGithubConnection) DeepCopyInto

func (in *ScmGithubConnection) DeepCopyInto(out *ScmGithubConnection)

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

type Sentinel

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

	Spec   SentinelSpec `json:"spec,omitempty"`
	Status Status       `json:"status,omitempty"`
}

Sentinel is the Schema for the sentinels API

func (*Sentinel) ConsoleID

func (s *Sentinel) ConsoleID() *string

ConsoleID implements NamespacedPluralResource interface

func (*Sentinel) ConsoleName

func (s *Sentinel) ConsoleName() string

ConsoleName implements NamespacedPluralResource interface

func (*Sentinel) DeepCopy

func (in *Sentinel) DeepCopy() *Sentinel

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

func (*Sentinel) DeepCopyInto

func (in *Sentinel) DeepCopyInto(out *Sentinel)

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

func (*Sentinel) DeepCopyObject

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

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

func (*Sentinel) SetCondition

func (s *Sentinel) SetCondition(condition metav1.Condition)

type SentinelCheck

type SentinelCheck struct {
	// Type the type of check to run.
	//+kubebuilder:validation:Enum=LOG;KUBERNETES;INTEGRATION_TEST
	Type console.SentinelCheckType `json:"type"`
	// Name the name of the check.
	Name string `json:"name"`
	// RuleFile the rule file to use for this check.
	RuleFile *string `json:"ruleFile,omitempty"`
	// Configuration the configuration to use for this check.
	Configuration *SentinelCheckConfiguration `json:"configuration,omitempty"`
}

func (*SentinelCheck) DeepCopy

func (in *SentinelCheck) DeepCopy() *SentinelCheck

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

func (*SentinelCheck) DeepCopyInto

func (in *SentinelCheck) DeepCopyInto(out *SentinelCheck)

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

type SentinelCheckConfiguration

type SentinelCheckConfiguration struct {
	// the log configuration to use for this check
	Log *SentinelCheckLogConfiguration `json:"log,omitempty"`
	// the kubernetes configuration to use for this check
	Kubernetes *SentinelCheckKubernetesConfiguration `json:"kubernetes,omitempty"`

	// the integration test configuration to use for this check
	IntegrationTest *SentinelCheckIntegrationTestConfiguration `json:"integrationTest,omitempty"`
}

func (*SentinelCheckConfiguration) DeepCopy

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

func (*SentinelCheckConfiguration) DeepCopyInto

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

type SentinelCheckGotestsumConfiguration

type SentinelCheckGotestsumConfiguration struct {
	// the value of the p flag for gotestsum
	//+kubebuilder:validation:Optional
	P *string `json:"p,omitempty"`
	// the value of the parallel flag for gotestsum
	//+kubebuilder:validation:Optional
	Parallel *string `json:"parallel,omitempty"`
}

func (*SentinelCheckGotestsumConfiguration) DeepCopy

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

func (*SentinelCheckGotestsumConfiguration) DeepCopyInto

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

type SentinelCheckIntegrationTestConfiguration

type SentinelCheckIntegrationTestConfiguration struct {
	// the test output format of the job
	//+kubebuilder:validation:Required
	//+kubebuilder:validation:Enum=PLAINTEXT;JUNIT
	Format console.SentinelRunJobFormat `json:"format"`

	// the job to run for this check
	Job *JobSpec `json:"jobSpec,omitempty"`

	// the configuration for the gotestsum test runner for this check
	//+kubebuilder:validation:Optional
	Gotestsum *SentinelCheckGotestsumConfiguration `json:"gotestsum,omitempty"`

	// the distro to run the check on
	//+kubebuilder:validation:Enum=GENERIC;EKS;AKS;GKE;RKE;K3S;OPENSHIFT
	Distro *console.ClusterDistro `json:"distro,omitempty"`

	// the cluster tags to select where to run this job
	Tags map[string]string `json:"tags,omitempty"`
}

func (*SentinelCheckIntegrationTestConfiguration) DeepCopy

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

func (*SentinelCheckIntegrationTestConfiguration) DeepCopyInto

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

type SentinelCheckKubernetesConfiguration

type SentinelCheckKubernetesConfiguration struct {
	// Group to use when fetching this resource.
	Group *string `json:"group,omitempty"`
	// Version the api version to use when fetching this resource.
	Version string `json:"version"`
	// Kind the kind to use when fetching this resource.
	Kind string `json:"kind"`
	// Name to use when fetching this resource.
	Name string `json:"name"`
	// Namespace to use when fetching this resource
	Namespace *string `json:"namespace,omitempty"`
	// ClusterRef the cluster to run the query against
	//+kubebuilder:validation:Required
	ClusterRef corev1.ObjectReference `json:"clusterRef"`
}

func (*SentinelCheckKubernetesConfiguration) DeepCopy

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

func (*SentinelCheckKubernetesConfiguration) DeepCopyInto

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

type SentinelCheckLogConfiguration

type SentinelCheckLogConfiguration struct {
	// Namespaces the namespaces to run the query against.
	Namespaces []*string `json:"namespaces,omitempty"`
	// Query a search query this will run against the logs.
	Query string `json:"query"`
	// ClusterRef the cluster to run the query against.
	ClusterRef *corev1.ObjectReference `json:"clusterRef,omitempty"`
	// Duration of the log analysis run.
	Duration string `json:"duration"`
	// Facets the log facets to run the query against.
	Facets map[string]string `json:"facets,omitempty"`
}

func (*SentinelCheckLogConfiguration) DeepCopy

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

func (*SentinelCheckLogConfiguration) DeepCopyInto

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

type SentinelList

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

SentinelList contains a list of Sentinel

func (*SentinelList) DeepCopy

func (in *SentinelList) DeepCopy() *SentinelList

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

func (*SentinelList) DeepCopyInto

func (in *SentinelList) DeepCopyInto(out *SentinelList)

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

func (*SentinelList) DeepCopyObject

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

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

type SentinelSpec

type SentinelSpec struct {
	// Name of this Sentinel.
	// If not provided, the name from Sentinel.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a human-readable explanation of what this Sentinel.
	Description *string `json:"description,omitempty"`

	// RepositoryRef references a Git repository.
	// +kubebuilder:validation:Optional
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef,omitempty"`

	// ProjectRef references the project this object belongs to, enabling
	// project-scoped organization and access control.
	// +kubebuilder:validation:Optional
	ProjectRef *corev1.ObjectReference `json:"projectRef,omitempty"`

	// The git location to use for this sentinel.
	Git *GitRef `json:"git,omitempty"`

	Checks []SentinelCheck `json:"checks,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

SentinelSpec defines the desired state of Sentinel

func (*SentinelSpec) DeepCopy

func (in *SentinelSpec) DeepCopy() *SentinelSpec

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

func (*SentinelSpec) DeepCopyInto

func (in *SentinelSpec) DeepCopyInto(out *SentinelSpec)

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

type ServiceAccount

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

	// Spec defines the desired state of the ServiceAccount, including email identity
	// and scope restrictions for API access control.
	// +kubebuilder:validation:Required
	Spec ServiceAccountSpec `json:"spec"`

	// Status represents the current state of this ServiceAccount resource.
	// +kubebuilder:validation:Optional
	Status Status `json:"status,omitempty"`
}

ServiceAccount provides a programmatic identity for automated processes and tools to interact with the Plural Console API. Unlike user accounts, service accounts are designed for non-human authentication and can be scoped to specific APIs and resources for secure, limited access. This enables to authenticate and perform operations within defined permissions boundaries.

func (*ServiceAccount) Attributes

func (*ServiceAccount) ConsoleID

func (in *ServiceAccount) ConsoleID() *string

ConsoleID returns an ID used in Console API.

func (*ServiceAccount) ConsoleName

func (in *ServiceAccount) ConsoleName() string

ConsoleName returns a name used in Console API.

func (*ServiceAccount) DeepCopy

func (in *ServiceAccount) DeepCopy() *ServiceAccount

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

func (*ServiceAccount) DeepCopyInto

func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount)

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

func (*ServiceAccount) DeepCopyObject

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

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

func (*ServiceAccount) Diff

func (in *ServiceAccount) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*ServiceAccount) SetCondition

func (in *ServiceAccount) SetCondition(condition metav1.Condition)

type ServiceAccountList

type ServiceAccountList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []ServiceAccount `json:"items"`
}

ServiceAccountList contains a list of ServiceAccount resources.

func (*ServiceAccountList) DeepCopy

func (in *ServiceAccountList) DeepCopy() *ServiceAccountList

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

func (*ServiceAccountList) DeepCopyInto

func (in *ServiceAccountList) DeepCopyInto(out *ServiceAccountList)

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

func (*ServiceAccountList) DeepCopyObject

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

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

type ServiceAccountScope

type ServiceAccountScope struct {
	// API specifies a single Console API endpoint name that this service account
	// should be scoped to, such as 'updateServiceDeployment' or 'createCluster'.
	// +kubebuilder:validation:Optional
	// +kubebuilder:example:=updateServiceDeployment
	API *string `json:"api,omitempty"`

	// Apis is a list of Console API endpoint names that this service account
	// should be scoped to.
	// +kubebuilder:validation:Optional
	Apis []string `json:"apis,omitempty"`

	// Identifier specifies a resource ID in the Console API that this service
	// account should be scoped to. Leave blank or use '*' to scope to all resources
	// within the specified API endpoints.
	// +kubebuilder:validation:Optional
	Identifier *string `json:"identifier,omitempty"`

	// Ids is a list of Console API resource IDs that this service account should
	// be scoped to.
	// +kubebuilder:validation:Optional
	Ids []string `json:"ids,omitempty"`
}

ServiceAccountScope defines access restrictions for a service account, allowing fine-grained control over which Console APIs and resources can be accessed. This enables implementing least-privilege principles for automated systems.

func (*ServiceAccountScope) Attributes

func (in *ServiceAccountScope) Attributes() *console.ScopeAttributes

func (*ServiceAccountScope) DeepCopy

func (in *ServiceAccountScope) DeepCopy() *ServiceAccountScope

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

func (*ServiceAccountScope) DeepCopyInto

func (in *ServiceAccountScope) DeepCopyInto(out *ServiceAccountScope)

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

type ServiceAccountSpec

type ServiceAccountSpec struct {
	// Email address that will be bound to this service account for identification
	// and authentication purposes. This email serves as the unique identifier
	// for the service account within the Console API.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=some@email.com
	Email string `json:"email"`

	// Scopes define the access boundaries for this service account, controlling
	// which Console APIs and resources it can interact with. Each scope can restrict
	// access to specific API endpoints and resource identifiers, enabling fine-grained
	// permission control for automated processes.
	// +kubebuilder:validation:Optional
	Scopes []ServiceAccountScope `json:"scopes,omitempty"`

	// TokenSecretRef references a Kubernetes secret that should contain the
	// authentication token for this service account. This enables secure storage
	// and management of credentials within the cluster.
	// +kubebuilder:validation:Optional
	TokenSecretRef *corev1.SecretReference `json:"tokenSecretRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ServiceAccountSpec defines the desired state of the ServiceAccount.

func (*ServiceAccountSpec) DeepCopy

func (in *ServiceAccountSpec) DeepCopy() *ServiceAccountSpec

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

func (*ServiceAccountSpec) DeepCopyInto

func (in *ServiceAccountSpec) DeepCopyInto(out *ServiceAccountSpec)

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

func (*ServiceAccountSpec) ScopeAttributes

func (in *ServiceAccountSpec) ScopeAttributes() (result []*console.ScopeAttributes)

type ServiceComponent

type ServiceComponent struct {
	ID string `json:"id"`

	// Name is the name of the Kubernetes resource, e.g. "test-deployment" or "test-job".
	Name string `json:"name"`

	// Group is a Kubernetes resource group, e.g. "apps" or "batch".
	// +kubebuilder:validation:Optional
	Group *string `json:"group,omitempty"`

	// Version is the Kubernetes resource version, e.g. "v1" or "v1beta1".
	// +kubebuilder:validation:Optional
	Version *string `json:"version,omitempty"`

	// Kind is the Kubernetes resource kind, e.g. "Deployment" or "Job".
	Kind string `json:"kind"`

	// Namespace is the Kubernetes namespace where this component is deployed.
	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`

	// State specifies the component state.
	// One of RUNNING, PENDING, FAILED.
	// +kubebuilder:validation:Enum:=RUNNING;PENDING;FAILED
	// +kubebuilder:validation:Optional
	State *ComponentState `json:"state,omitempty"`

	// Synced indicates whether this component is in sync with the desired state.
	Synced bool `json:"synced"`
}

func (*ServiceComponent) DeepCopy

func (in *ServiceComponent) DeepCopy() *ServiceComponent

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

func (*ServiceComponent) DeepCopyInto

func (in *ServiceComponent) DeepCopyInto(out *ServiceComponent)

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

type ServiceContext

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

	Spec   ServiceContextSpec `json:"spec,omitempty"`
	Status Status             `json:"status,omitempty"`
}

ServiceContext provides a reusable bundle of configuration. It enables sharing configuration data across multiple services. This is particularly useful for passing outputs from infrastructure-as-code tools to Kubernetes services.

func (*ServiceContext) ConsoleID

func (s *ServiceContext) ConsoleID() *string

ConsoleID implements NamespacedPluralResource interface

func (*ServiceContext) ConsoleName

func (s *ServiceContext) ConsoleName() string

func (*ServiceContext) DeepCopy

func (in *ServiceContext) DeepCopy() *ServiceContext

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

func (*ServiceContext) DeepCopyInto

func (in *ServiceContext) DeepCopyInto(out *ServiceContext)

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

func (*ServiceContext) DeepCopyObject

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

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

func (*ServiceContext) Diff

func (s *ServiceContext) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*ServiceContext) DriftDetect

func (s *ServiceContext) DriftDetect() bool

func (*ServiceContext) HasProjectRef

func (s *ServiceContext) HasProjectRef() bool

func (*ServiceContext) ProjectName

func (s *ServiceContext) ProjectName() string

func (*ServiceContext) SetCondition

func (s *ServiceContext) SetCondition(condition metav1.Condition)

type ServiceContextList

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

ServiceContextList contains a list of ServiceContext resources.

func (*ServiceContextList) DeepCopy

func (in *ServiceContextList) DeepCopy() *ServiceContextList

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

func (*ServiceContextList) DeepCopyInto

func (in *ServiceContextList) DeepCopyInto(out *ServiceContextList)

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

func (*ServiceContextList) DeepCopyObject

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

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

type ServiceContextSpec

type ServiceContextSpec struct {
	// Name of this service context.
	// If not provided, the name from ServiceContext.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Configuration is a reusable configuration context that can include any JSON-compatible configuration data
	// that needs to be shared across multiple services.
	Configuration runtime.RawExtension `json:"configuration,omitempty"`

	// ProjectRef references the project this service context belongs to.
	// If not provided, it will use the default project.
	// +kubebuilder:validation:Optional
	ProjectRef *v1.ObjectReference `json:"projectRef,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ServiceContextSpec defines the desired state of the ServiceContext.

func (*ServiceContextSpec) DeepCopy

func (in *ServiceContextSpec) DeepCopy() *ServiceContextSpec

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

func (*ServiceContextSpec) DeepCopyInto

func (in *ServiceContextSpec) DeepCopyInto(out *ServiceContextSpec)

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

type ServiceDependency

type ServiceDependency struct {
	// The name of a service on the same cluster this service depends on
	Name string `json:"name"`
}

func (*ServiceDependency) DeepCopy

func (in *ServiceDependency) DeepCopy() *ServiceDependency

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

func (*ServiceDependency) DeepCopyInto

func (in *ServiceDependency) DeepCopyInto(out *ServiceDependency)

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

type ServiceDeployment

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

	// +kubebuilder:validation:Required
	Spec   ServiceSpec   `json:"spec,omitempty"`
	Status ServiceStatus `json:"status,omitempty"`
}

ServiceDeployment provides a GitOps-driven approach to deploy and manage Kubernetes applications from Git repositories. It represents a reference to a service deployed from a Git repo into a Cluster, enabling complete GitOps workflows with full auditability and automated synchronization. The operator manages the deployment lifecycle by fetching manifests from Git repositories and applying them to target clusters with support for Helm, Kustomize, and raw YAML.

func (*ServiceDeployment) ConsoleID

func (s *ServiceDeployment) ConsoleID() *string

ConsoleID implements NamespacedPluralResource interface

func (*ServiceDeployment) ConsoleName

func (s *ServiceDeployment) ConsoleName() string

ConsoleName implements NamespacedPluralResource interface

func (*ServiceDeployment) ConsoleNamespace

func (s *ServiceDeployment) ConsoleNamespace() string

ConsoleNamespace implements NamespacedPluralResource interface

func (*ServiceDeployment) DeepCopy

func (in *ServiceDeployment) DeepCopy() *ServiceDeployment

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

func (*ServiceDeployment) DeepCopyInto

func (in *ServiceDeployment) DeepCopyInto(out *ServiceDeployment)

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

func (*ServiceDeployment) DeepCopyObject

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

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

func (*ServiceDeployment) SetCondition

func (s *ServiceDeployment) SetCondition(condition metav1.Condition)

type ServiceDeploymentList

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

ServiceDeploymentList contains a list of ServiceDeployment resources.

func (*ServiceDeploymentList) DeepCopy

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

func (*ServiceDeploymentList) DeepCopyInto

func (in *ServiceDeploymentList) DeepCopyInto(out *ServiceDeploymentList)

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

func (*ServiceDeploymentList) DeepCopyObject

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

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

type ServiceError

type ServiceError struct {
	Source  string `json:"source"`
	Message string `json:"message"`
}

func (*ServiceError) DeepCopy

func (in *ServiceError) DeepCopy() *ServiceError

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

func (*ServiceError) DeepCopyInto

func (in *ServiceError) DeepCopyInto(out *ServiceError)

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

type ServiceHelm

type ServiceHelm struct {
	// +kubebuilder:validation:Optional
	URL *string `json:"url,omitempty"`

	// ValuesFrom is a reference to a Kubernetes Secret containing Helm values.
	// It will consider any key with YAML data as a values file and merge them iteratively.
	// This allows you to store Helm values in a secret and reference them here.
	// +kubebuilder:validation:Optional
	ValuesFrom *corev1.SecretReference `json:"valuesFrom,omitempty"`

	// +kubebuilder:validation:Optional
	ValuesConfigMapRef *corev1.ConfigMapKeySelector `json:"valuesConfigMapRef,omitempty"`

	// Release contains the name of the Helm release to use when applying this service.
	// +kubebuilder:validation:Optional
	Release *string `json:"release,omitempty"`

	// RepositoryRef contains a reference to a GitRepository to source the Helm chart from.
	// This is useful for using a multi-source configuration for values files.
	// +kubebuilder:validation:Optional
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef"`

	// Values contains arbitrary YAML values to overlay.
	// +kubebuilder:validation:Optional
	Values *runtime.RawExtension `json:"values,omitempty"`

	//  ValuesFiles contains individual values files to overlay.
	// +kubebuilder:validation:Optional
	ValuesFiles []*string `json:"valuesFiles,omitempty"`

	// Chart is the name of the Helm chart to use.
	// +kubebuilder:validation:Optional
	Chart *string `json:"chart,omitempty"`

	// Version of the Helm chart to use.
	// +kubebuilder:validation:Optional
	Version *string `json:"version,omitempty"`

	// Repository is a pointer to the FluxCD Helm repository to use.
	// +kubebuilder:validation:Optional
	Repository *NamespacedName `json:"repository,omitempty"`

	// Git contains a reference to a Git folder and ref where the Helm chart is located.
	// +kubebuilder:validation:Optional
	Git *GitRef `json:"git,omitempty"`

	// IgnoreHooks indicates whether to completely ignore Helm hooks when actualizing this service.
	// +kubebuilder:validation:Optional
	IgnoreHooks *bool `json:"ignoreHooks,omitempty"`

	// IgnoreCrds indicates whether to not include the CRDs in the /crds folder of the chart.
	// It is useful if you want to avoid installing CRDs that are already present in the cluster.
	// +kubebuilder:validation:Optional
	IgnoreCrds *bool `json:"ignoreCrds,omitempty"`

	// LuaScript to use to generate Helm configuration.
	// This can ultimately return a lua table with keys "values" and "valuesFiles"
	// to supply overlays for either dynamically based on git state or other metadata.
	// +kubebuilder:validation:Optional
	LuaScript *string `json:"luaScript,omitempty"`

	// LuaFile to use to generate Helm configuration.
	// This can ultimately return a Lua table with keys "values" and "valuesFiles"
	// to supply overlays for either dynamically based on Git state or other metadata.
	// +kubebuilder:validation:Optional
	LuaFile *string `json:"luaFile,omitempty"`

	// a folder of lua files to include in the final script used
	// +kubebuilder:validation:Optional
	LuaFolder *string `json:"luaFolder,omitempty"`
}

func (*ServiceHelm) DeepCopy

func (in *ServiceHelm) DeepCopy() *ServiceHelm

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

func (*ServiceHelm) DeepCopyInto

func (in *ServiceHelm) DeepCopyInto(out *ServiceHelm)

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

type ServiceImport

type ServiceImport struct {
	// StackRef is a reference to an InfrastructureStack resource that provides outputs to import.
	// +kubebuilder:validation:Required
	StackRef corev1.ObjectReference `json:"stackRef"`
}

func (*ServiceImport) DeepCopy

func (in *ServiceImport) DeepCopy() *ServiceImport

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

func (*ServiceImport) DeepCopyInto

func (in *ServiceImport) DeepCopyInto(out *ServiceImport)

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

type ServiceKustomize

type ServiceKustomize struct {
	// Path to the kustomization file to use.
	Path string `json:"path"`

	// EnableHelm indicates whether to enable Helm for this Kustomize deployment.
	// Used for inflating Helm charts.
	// +kubebuilder:validation:Optional
	EnableHelm *bool `json:"enableHelm,omitempty"`
}

func (*ServiceKustomize) Attributes

func (sk *ServiceKustomize) Attributes() *console.KustomizeAttributes

func (*ServiceKustomize) DeepCopy

func (in *ServiceKustomize) DeepCopy() *ServiceKustomize

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

func (*ServiceKustomize) DeepCopyInto

func (in *ServiceKustomize) DeepCopyInto(out *ServiceKustomize)

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

type ServiceSpec

type ServiceSpec struct {
	// Name of this service.
	// If not provided, the name from ServiceDeployment.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Namespace where this service will be deployed.
	// If not provided, deploys to the ServiceDeployment namespace.
	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`

	// DocsPath specifies the path to documentation within the Git repository.
	// +kubebuilder:validation:Optional
	DocsPath *string `json:"docsPath,omitempty"`

	// Version specifies the semantic version of this ServiceDeployment.
	// +kubebuilder:validation:Optional
	Version *string `json:"version"`

	// Protect when true, prevents deletion of this service to avoid accidental removal.
	// +kubebuilder:validation:Optional
	Protect bool `json:"protect,omitempty"`

	// Kustomize configuration for applying Kustomize transformations to manifests.
	// +kubebuilder:validation:Optional
	Kustomize *ServiceKustomize `json:"kustomize,omitempty"`

	// Git reference within the repository where the service manifests are located.
	// +kubebuilder:validation:Optional
	Git *GitRef `json:"git,omitempty"`

	// Helm configuration for deploying Helm charts, including values and repository settings.
	// +kubebuilder:validation:Optional
	Helm *ServiceHelm `json:"helm,omitempty"`

	// SyncConfig contains advanced configuration for how manifests are synchronized to the cluster.
	// +kubebuilder:validation:Optional
	SyncConfig *SyncConfigAttributes `json:"syncConfig,omitempty"`

	// RepositoryRef references the GitRepository CRD containing the service source code.
	// +kubebuilder:validation:Optional
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef"`

	// ClusterRef references the target Cluster where this service will be deployed.
	// +kubebuilder:validation:Required
	ClusterRef corev1.ObjectReference `json:"clusterRef"`

	// ConfigurationRef is a secret reference containing service configuration for templating.
	// +kubebuilder:validation:Optional
	ConfigurationRef *corev1.SecretReference `json:"configurationRef,omitempty"`

	// FlowRef provides contextual linkage to a broader application Flow this service belongs within.
	// +kubebuilder:validation:Optional
	FlowRef *corev1.ObjectReference `json:"flowRef,omitempty"`

	// Configuration contains non-secret key-value pairs for lightweight templating of manifests.
	// +kubebuilder:validation:Optional
	Configuration map[string]string `json:"configuration,omitempty"`

	// Bindings contain read and write policies controlling access to this service.
	// +kubebuilder:validation:Optional
	Bindings *Bindings `json:"bindings,omitempty"`

	// Dependencies specify services that must be healthy before this service can be deployed.
	// +kubebuilder:validation:Optional
	Dependencies []ServiceDependency `json:"dependencies,omitempty"`

	// Contexts reference ServiceContext names to inject additional configuration.
	// +kubebuilder:validation:Optional
	Contexts []string `json:"contexts,omitempty"`

	// Templated enables Liquid templating for raw YAML files, defaults to true.
	// +kubebuilder:validation:Optional
	Templated *bool `json:"templated,omitempty"`

	// Imports enable importing outputs from InfrastructureStack resources for use in templating.
	// +kubebuilder:validation:Optional
	Imports []ServiceImport `json:"imports"`

	// Detach when true, detaches the service on deletion instead of destroying it.
	// +kubebuilder:validation:Optional
	Detach bool `json:"detach,omitempty"`

	// Sources specify additional Git repositories to source manifests from for multi-source deployments.
	// +kubebuilder:validation:Optional
	Sources []Source `json:"sources,omitempty"`

	// Renderers define how to process and render manifests using different engines (Helm, Kustomize, etc.).
	// +kubebuilder:validation:Optional
	Renderers []Renderer `json:"renderers,omitempty"`

	// AgentId represents agent session ID that created this service.
	// It is used for UI linking and otherwise ignored.
	// +kubebuilder:validation:Optional
	AgentId *string `json:"agentId,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

ServiceSpec defines the desired state of a ServiceDeployment.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

func (*ServiceSpec) DependenciesAttribute

func (ss *ServiceSpec) DependenciesAttribute() []*console.ServiceDependencyAttributes

func (*ServiceSpec) TemplatedAttribute

func (ss *ServiceSpec) TemplatedAttribute() *bool

type ServiceStatus

type ServiceStatus struct {
	Status `json:",inline"`

	// +kubebuilder:validation:Optional
	Errors []ServiceError `json:"errors,omitempty"`

	// +kubebuilder:validation:Optional
	Components []ServiceComponent `json:"components,omitempty"`
}

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

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

type ServiceTemplate

type ServiceTemplate struct {
	// Name specifies the name for the service deployment.
	// For managed namespaces, this is optional and can be auto-generated
	// if not explicitly provided.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Namespace specifies the namespace for the service deployment.
	// For managed namespaces, this is typically auto-populated with
	// the managed namespace name if not explicitly provided.
	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`

	// Templated indicates whether to apply liquid templating to raw YAML files.
	// When enabled, allows for dynamic configuration injection and
	// environment-specific customization of service manifests.
	// +kubebuilder:validation:Optional
	Templated *bool `json:"templated,omitempty"`

	// RepositoryRef references a GitRepository resource containing the service manifests.
	// This provides the source location for Kubernetes YAML files, Helm charts,
	// or other deployment artifacts needed for the service.
	// +kubebuilder:validation:Optional
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef"`

	// Protect indicates whether to protect this service from deletion.
	// Protected services are not automatically deleted during namespace cleanup
	// or cluster deletion operations, providing safety for critical workloads.
	// +kubebuilder:validation:Optional
	Protect *bool `json:"protect,omitempty"`

	// Contexts specifies a list of context names to add to this service.
	// Contexts provide reusable configuration bundles that can be shared
	// across multiple services for consistent environment setup.
	// +kubebuilder:validation:Optional
	Contexts []string `json:"contexts,omitempty"`

	// Git defines Git-specific settings for sourcing service manifests.
	// This includes repository references, branch/tag specifications,
	// and subdirectory paths within the Git repository.
	// +kubebuilder:validation:Optional
	Git *GitRef `json:"git,omitempty"`

	// Helm defines Helm-specific settings for deploying Helm charts as part of this service.
	// This includes chart specifications, values files, repository references,
	// and Helm-specific deployment options.
	// +kubebuilder:validation:Optional
	Helm *ServiceHelm `json:"helm,omitempty"`

	// Kustomize defines Kustomize-specific settings for manifest customization.
	// This enables sophisticated YAML manipulation and configuration overlay
	// capabilities for complex deployment scenarios.
	// +kubebuilder:validation:Optional
	Kustomize *ServiceKustomize `json:"kustomize,omitempty"`

	// SyncConfig defines advanced synchronization settings for the service deployment.
	// This includes options for namespace management, drift detection configuration,
	// and deployment behavior customization.
	// +kubebuilder:validation:Optional
	SyncConfig *SyncConfigAttributes `json:"syncConfig,omitempty"`

	// Dependencies specify other services that must be healthy before this service is deployed.
	// This ensures proper deployment ordering and dependency resolution
	// within the managed namespace.
	// +kubebuilder:validation:Optional
	Dependencies []corev1.ObjectReference `json:"dependencies,omitempty"`

	// ConfigurationRef references a Kubernetes Secret containing service-specific configuration.
	// This secret should contain key-value pairs that will be made available
	// to the service for runtime configuration and secrets management.
	// +kubebuilder:validation:Optional
	ConfigurationRef *corev1.SecretReference `json:"configurationRef,omitempty"`

	// Configuration provides a set of non-secret service-specific configuration values.
	// These key-value pairs are useful for templating and can be referenced
	// in manifest templates for environment-specific customization.
	// +kubebuilder:validation:Optional
	Configuration map[string]string `json:"configuration,omitempty"`

	// Sources specify additional Git repositories or locations to source manifests from.
	// This enables multi-repository deployments and complex source composition
	// for sophisticated application architectures.
	// +kubebuilder:validation:Optional
	Sources []Source `json:"sources,omitempty"`

	// Renderers specify how manifests should be processed and rendered.
	// This includes options for Helm chart rendering, Kustomize processing,
	// and other manifest transformation workflows.
	// +kubebuilder:validation:Optional
	Renderers []Renderer `json:"renderers,omitempty"`
}

ServiceTemplate defines the configuration for a service to be deployed within a managed namespace. This enables automatic application deployment as part of the namespace provisioning process.

func (*ServiceTemplate) DeepCopy

func (in *ServiceTemplate) DeepCopy() *ServiceTemplate

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

func (*ServiceTemplate) DeepCopyInto

func (in *ServiceTemplate) DeepCopyInto(out *ServiceTemplate)

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

type SinkConfiguration

type SinkConfiguration struct {
	// Slack configuration for delivering notifications to Slack channels via webhook URLs.
	// Requires a valid Slack incoming webhook URL configured in your Slack workspace.
	// +kubebuilder:validation:Optional
	Slack *SinkURL `json:"slack,omitempty"`

	// Teams configuration for delivering notifications to Microsoft Teams channels.
	// Requires a valid Teams incoming webhook URL configured in your Teams workspace.
	// +kubebuilder:validation:Optional
	Teams *SinkURL `json:"teams,omitempty"`

	// Plural configuration for delivering in-app notifications within the Plural Console.
	// These notifications appear in the Console UI and can optionally trigger email delivery.
	// +kubebuilder:validation:Optional
	Plural *PluralSinkConfiguration `json:"plural,omitempty"`
}

SinkConfiguration contains type-specific configuration for different notification channels. Only one configuration section should be populated based on the sink type. Each configuration type has different requirements and delivery mechanisms.

func (*SinkConfiguration) DeepCopy

func (in *SinkConfiguration) DeepCopy() *SinkConfiguration

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

func (*SinkConfiguration) DeepCopyInto

func (in *SinkConfiguration) DeepCopyInto(out *SinkConfiguration)

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

type SinkURL

type SinkURL struct {
	// URL is the webhook endpoint where notifications will be delivered.
	// This should be a valid HTTP/HTTPS URL provided by your Slack or Teams workspace
	// when configuring incoming webhooks for the target channel.
	// +kubebuilder:validation:Required
	URL string `json:"url"`
}

SinkURL defines the webhook URL configuration for external notification services. Used by both Slack and Teams sink types to specify the destination webhook endpoint.

func (*SinkURL) DeepCopy

func (in *SinkURL) DeepCopy() *SinkURL

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

func (*SinkURL) DeepCopyInto

func (in *SinkURL) DeepCopyInto(out *SinkURL)

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

type Source

type Source struct {
	// Path the subdirectory this source will live in the final tarball
	Path *string `json:"path,omitempty"`

	// RepositoryRef the reference of the Git repository to source from.
	RepositoryRef *corev1.ObjectReference `json:"repositoryRef,omitempty"`

	// Git contains a location in a Git repository to use.
	Git *GitRef `json:"git,omitempty"`
}

func (*Source) DeepCopy

func (in *Source) DeepCopy() *Source

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

func (*Source) DeepCopyInto

func (in *Source) DeepCopyInto(out *Source)

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

type SpecTemplate

type SpecTemplate struct {
	// Handle is a short, unique human-readable name used to identify this cluster.
	// Does not necessarily map to the cloud resource name.
	// This has to be specified in order to adopt existing cluster.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:=myclusterhandle
	Handle *string `json:"handle,omitempty"`

	// Version of Kubernetes to use for this cluster. Can be skipped only for BYOK.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	// +kubebuilder:example:="1.25.11"
	Version *string `json:"version,omitempty"`

	// ProviderRef references provider to use for this cluster. Can be skipped only for BYOK.
	// +kubebuilder:validation:Optional
	ProviderRef *ObjectReferenceTemplate `json:"providerRef,omitempty"`

	// ProjectRef references project this cluster belongs to.
	// If not provided, it will use the default project.
	// +kubebuilder:validation:Optional
	ProjectRef *ObjectReferenceTemplate `json:"projectRef,omitempty"`

	// Cloud provider to use for this cluster.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	Cloud *string `json:"cloud,omitempty"`

	// Protect cluster from being deleted.
	// +kubebuilder:validation:Optional
	Protect *string `json:"protect,omitempty"`

	// Tags used to filter clusters.
	// +kubebuilder:validation:Optional
	Tags *string `json:"tags,omitempty"`

	// Metadata for the cluster
	// +kubebuilder:validation:Optional
	Metadata *string `json:"metadata,omitempty"`

	// Bindings contain read and write policies of this cluster
	// +kubebuilder:validation:Optional
	Bindings *BindingsTemplate `json:"bindings,omitempty"`

	// NodePools contains specs of node pools managed by this cluster.
	// +kubebuilder:validation:Optional
	NodePools *string `json:"nodePools,omitempty"`
}

func (*SpecTemplate) DeepCopy

func (in *SpecTemplate) DeepCopy() *SpecTemplate

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

func (*SpecTemplate) DeepCopyInto

func (in *SpecTemplate) DeepCopyInto(out *SpecTemplate)

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

type StackConfiguration

type StackConfiguration struct {
	// Image contains the optional Docker image to use for the IaC tool.
	// If not provided, the default image for the tool will be used.
	// +kubebuilder:validation:Optional
	Image *string `json:"image,omitempty"`

	// Version of the IaC tool to use.
	// +kubebuilder:validation:Optional
	Version *string `json:"version,omitempty"`

	// Tag of the IaC tool Docker image to use.
	// +kubebuilder:validation:Optional
	Tag *string `json:"tag,omitempty"`

	// Hooks to run at various stages of the stack run.
	// +kubebuilder:validation:Optional
	Hooks []*StackHook `json:"hooks,omitempty"`

	// Terraform configuration for this stack.
	// +kubebuilder:validation:Optional
	Terraform *TerraformConfiguration `json:"terraform,omitempty"`

	// Ansible configuration for this stack.
	// +kubebuilder:validation:Optional
	Ansible *AnsibleConfiguration `json:"ansible,omitempty"`

	// AiApproval configuration for this stack to be auto-approved by AI according to rules sourced from Git.
	// +kubebuilder:validation:Optional
	AiApproval *AiApprovalConfiguration `json:"aiApproval,omitempty"`
}

func (*StackConfiguration) DeepCopy

func (in *StackConfiguration) DeepCopy() *StackConfiguration

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

func (*StackConfiguration) DeepCopyInto

func (in *StackConfiguration) DeepCopyInto(out *StackConfiguration)

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

type StackCron

type StackCron struct {
	// The crontab on which to spawn stack runs.
	Crontab string `json:"crontab"`

	// Whether to automatically approve cron-spawned runs.
	// +kubebuilder:validation:Optional
	AutoApprove *bool `json:"autoApprove"`

	// Overrides for the cron triggered stack run configuration.
	// +kubebuilder:validation:Optional
	Overrides *StackOverrides `json:"overrides,omitempty"`
}

func (*StackCron) DeepCopy

func (in *StackCron) DeepCopy() *StackCron

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

func (*StackCron) DeepCopyInto

func (in *StackCron) DeepCopyInto(out *StackCron)

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

type StackDefinition

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

	Spec   StackDefinitionSpec `json:"spec,omitempty"`
	Status Status              `json:"status,omitempty"`
}

StackDefinition provides reusable templates for Infrastructure Stack configurations and execution steps. It allows you to define standardized stack configurations, custom execution steps, and runtime environments that can be referenced by multiple Infrastructure Stacks. This enables consistent deployment patterns and reduces duplication when managing similar infrastructure components across different environments.

func (*StackDefinition) Attributes

func (*StackDefinition) DeepCopy

func (in *StackDefinition) DeepCopy() *StackDefinition

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

func (*StackDefinition) DeepCopyInto

func (in *StackDefinition) DeepCopyInto(out *StackDefinition)

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

func (*StackDefinition) DeepCopyObject

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

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

func (*StackDefinition) Diff

func (in *StackDefinition) Diff(hasher Hasher) (changed bool, sha string, err error)

func (*StackDefinition) SetCondition

func (in *StackDefinition) SetCondition(condition metav1.Condition)

func (*StackDefinition) StackName

func (in *StackDefinition) StackName() string

type StackDefinitionList

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

StackDefinitionList contains a list of StackDefinition resources.

func (*StackDefinitionList) DeepCopy

func (in *StackDefinitionList) DeepCopy() *StackDefinitionList

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

func (*StackDefinitionList) DeepCopyInto

func (in *StackDefinitionList) DeepCopyInto(out *StackDefinitionList)

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

func (*StackDefinitionList) DeepCopyObject

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

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

type StackDefinitionSpec

type StackDefinitionSpec struct {
	// Name of this StackDefinition.
	// If not provided, the name from StackDefinition.ObjectMeta will be used.
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`

	// Description provides a human-readable explanation of what this StackDefinition
	// template is intended for and how it should be used.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty"`

	// Steps defines a list of custom run steps that will be executed as part of
	// any stack run using this definition. Each step specifies a command, arguments,
	// execution stage, and approval requirements.
	// +kubebuilder:validation:Optional
	Steps []CustomRunStep `json:"steps,omitempty"`

	// Configuration allows customization of the stack execution environment,
	// including Docker image settings, version specifications, and execution hooks.
	// +kubebuilder:validation:Optional
	Configuration *StackConfiguration `json:"configuration,omitempty"`

	// Reconciliation settings for this resource.
	// Controls drift detection and reconciliation intervals.
	// +kubebuilder:validation:Optional
	Reconciliation *Reconciliation `json:"reconciliation,omitempty"`
}

StackDefinitionSpec defines the desired state of the StackDefinition.

func (*StackDefinitionSpec) DeepCopy

func (in *StackDefinitionSpec) DeepCopy() *StackDefinitionSpec

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

func (*StackDefinitionSpec) DeepCopyInto

func (in *StackDefinitionSpec) DeepCopyInto(out *StackDefinitionSpec)

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

type StackEnvironment

type StackEnvironment struct {
	// Name of the environment variable to set.
	// +kubebuilder:validation:Required
	Name string `json:"name"`

	// Value of the environment variable to set.
	// +kubebuilder:validation:Optional
	Value *string `json:"value,omitempty"`

	// SecretKeyRef references a key in a Secret to set the environment variable value.
	// +kubebuilder:validation:Optional
	SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"`

	// ConfigMapRef references a key in a ConfigMap to set the environment variable value.
	// +kubebuilder:validation:Optional
	ConfigMapRef *corev1.ConfigMapKeySelector `json:"configMapRef,omitempty"`
}

func (*StackEnvironment) DeepCopy

func (in *StackEnvironment) DeepCopy() *StackEnvironment

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

func (*StackEnvironment) DeepCopyInto

func (in *StackEnvironment) DeepCopyInto(out *StackEnvironment)

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

type StackFile

type StackFile struct {
	// MountPath is the path where the file will be mounted in the stack execution environment.
	MountPath string `json:"mountPath"`

	// SecretRef is a reference to the secret containing the file.
	SecretRef corev1.LocalObjectReference `json:"secretRef"`
}

StackFile represents a file to mount from secrets into the stack execution environment.

func (*StackFile) DeepCopy

func (in *StackFile) DeepCopy() *StackFile

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

func (*StackFile) DeepCopyInto

func (in *StackFile) DeepCopyInto(out *StackFile)

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

type StackHook

type StackHook struct {
	// Cmd is the command to execute.
	// +kubebuilder:validation:Required
	Cmd string `json:"cmd"`

	// Args contain optional arguments to pass to the command.
	// +kubebuilder:validation:Optional
	Args []string `json:"args,omitempty"`

	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=INIT;PLAN;VERIFY;APPLY;DESTROY
	AfterStage console.StepStage `json:"afterStage"`
}

func (*StackHook) DeepCopy

func (in *StackHook) DeepCopy() *StackHook

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

func (*StackHook) DeepCopyInto

func (in *StackHook) DeepCopyInto(out *StackHook)

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

type StackOverrides

type StackOverrides struct {
	// Terraform is the terraform configuration for this stack
	// +kubebuilder:validation:Optional
	Terraform *TerraformConfiguration `json:"terraform,omitempty"`
}

func (*StackOverrides) DeepCopy

func (in *StackOverrides) DeepCopy() *StackOverrides

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

func (*StackOverrides) DeepCopyInto

func (in *StackOverrides) DeepCopyInto(out *StackOverrides)

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

type StackSettings

type StackSettings struct {
	// JobSpec optional k8s job configuration for the job that will apply this stack.
	//
	// +kubebuilder:validation:Optional
	JobSpec *JobSpec `json:"jobSpec,omitempty"`

	// ConnectionRef reference to ScmConnection.
	//
	// +kubebuilder:validation:Optional
	ConnectionRef *corev1.ObjectReference `json:"connectionRef,omitempty"`
}

func (*StackSettings) DeepCopy

func (in *StackSettings) DeepCopy() *StackSettings

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

func (*StackSettings) DeepCopyInto

func (in *StackSettings) DeepCopyInto(out *StackSettings)

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

type Status

type Status struct {
	// ID of the resource in the Console API.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	ID *string `json:"id,omitempty"`
	// SHA of last applied configuration.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type:=string
	SHA *string `json:"sha,omitempty"`
	// Represents the observations of a PrAutomation's current state.
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

func (*Status) DeepCopy

func (in *Status) DeepCopy() *Status

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

func (*Status) DeepCopyInto

func (in *Status) DeepCopyInto(out *Status)

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

func (*Status) GetID

func (p *Status) GetID() string

func (*Status) GetSHA

func (p *Status) GetSHA() string

func (*Status) HasID

func (p *Status) HasID() bool

func (*Status) HasReadonlyCondition

func (p *Status) HasReadonlyCondition() bool

func (*Status) HasSHA

func (p *Status) HasSHA() bool

func (*Status) IsReadonly

func (p *Status) IsReadonly() bool

func (*Status) IsSHAEqual

func (p *Status) IsSHAEqual(sha string) bool

func (*Status) IsStatusConditionTrue

func (p *Status) IsStatusConditionTrue(condition ConditionType) bool

type SyncConfigAttributes

type SyncConfigAttributes struct {
	// Whether to auto-create the namespace for this service (specifying labels and annotations will also add those to the created namespace)
	// +kubebuilder:validation:Optional
	CreateNamespace *bool `json:"createNamespace,omitempty"`

	// Whether to delete the namespace for this service upon deletion
	// +kubebuilder:validation:Optional
	DeleteNamespace *bool `json:"deleteNamespace,omitempty"`

	// Whether to enforce all created resources are placed in the service namespace
	// +kubebuilder:validation:Optional
	EnforceNamespace *bool `json:"enforceNamespace,omitempty"`

	// Whether to require all resources are owned by this service and fail if they are owned by another. Default is true.
	// +kubebuilder:validation:Optional
	RequireOwnership *bool `json:"requireOwnership,omitempty"`

	// +kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// +kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// DiffNormalizers a list of diff normalizers to apply to the service which controls how drift detection works.
	// +kubebuilder:validation:Optional
	DiffNormalizers []DiffNormalizers `json:"diffNormalizers,omitempty"`
}

func (*SyncConfigAttributes) Attributes

func (*SyncConfigAttributes) DeepCopy

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

func (*SyncConfigAttributes) DeepCopyInto

func (in *SyncConfigAttributes) DeepCopyInto(out *SyncConfigAttributes)

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

type Taint

type Taint struct {
	// Effect specifies the effect for the taint.
	// +kubebuilder:validation:Enum=NoSchedule;NoExecute;PreferNoSchedule
	Effect TaintEffect `json:"effect"`

	// Key is the key of the taint.
	Key string `json:"key"`

	// Value is the value of the taint.
	Value string `json:"value"`
}

Taint represents a Kubernetes taint.

func (*Taint) Attributes

func (t *Taint) Attributes() *console.TaintAttributes

func (*Taint) DeepCopy

func (in *Taint) DeepCopy() *Taint

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

func (*Taint) DeepCopyInto

func (in *Taint) DeepCopyInto(out *Taint)

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

type TaintEffect

type TaintEffect string

TaintEffect is the effect for a Kubernetes taint.

type TemplateContext

type TemplateContext struct {
	// Raw contains arbitrary YAML data that can be used as context for templating
	// service deployment properties. This data is made available to template engines
	// for dynamic substitution of values, configurations, or other deployment parameters.
	// +kubebuilder:validation:Optional
	Raw *runtime.RawExtension `json:"raw,omitempty"`
}

TemplateContext provides metadata and configuration data for templating service deployments. It enables dynamic customization of service properties based on cluster-specific or environment-specific requirements during the deployment process.

func (*TemplateContext) Attributes

Attributes converts the TemplateContext to console API attributes.

func (*TemplateContext) DeepCopy

func (in *TemplateContext) DeepCopy() *TemplateContext

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

func (*TemplateContext) DeepCopyInto

func (in *TemplateContext) DeepCopyInto(out *TemplateContext)

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

type TerraformConfiguration

type TerraformConfiguration struct {
	// Parallelism is the number of concurrent operations to run,
	// equivalent to the -parallelism flag in Terraform.
	// +kubebuilder:validation:Optional
	Parallelism *int64 `json:"parallelism,omitempty"`

	// Refresh is whether to refresh the state of the stack,
	// equivalent to the -refresh flag in Terraform.
	// +kubebuilder:validation:Optional
	Refresh *bool `json:"refresh,omitempty"`
}

func (*TerraformConfiguration) DeepCopy

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

func (*TerraformConfiguration) DeepCopyInto

func (in *TerraformConfiguration) DeepCopyInto(out *TerraformConfiguration)

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

type Tools

type Tools struct {
	// CreatePr holds the configuration for the pr automation tool.
	//
	// +kubebuilder:validation:Optional
	CreatePr *CreatePr `json:"createPr,omitempty"`
}

func (*Tools) DeepCopy

func (in *Tools) DeepCopy() *Tools

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

func (*Tools) DeepCopyInto

func (in *Tools) DeepCopyInto(out *Tools)

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

type VectorStore

type VectorStore struct {
	// Enabled controls whether the vector store is enabled or not..
	//
	// +kubebuilder:default=false
	// +kubebuilder:validation:Optional
	Enabled *bool `json:"enabled,omitempty"`

	// VectorStore is the type of the vector store to use.
	//
	// +kubebuilder:validation:Enum=ELASTIC;OPENSEARCH
	// +kubebuilder:validation:Optional
	VectorStore *console.VectorStore `json:"vectorStore,omitempty"`

	// Elastic configuration for the vector store.
	//
	// +kubebuilder:validation:Optional
	Elastic *ElasticsearchConnectionSettings `json:"elastic,omitempty"`

	// Opensearch configuration for the vector store.
	//
	// +kubebuilder:validation:Optional
	Opensearch *OpensearchConnectionSettings `json:"opensearch,omitempty"`
}

func (*VectorStore) Attributes

func (in *VectorStore) Attributes(ctx context.Context, c client.Client, namespace string) (*console.VectorStoreAttributes, error)

func (*VectorStore) DeepCopy

func (in *VectorStore) DeepCopy() *VectorStore

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

func (*VectorStore) DeepCopyInto

func (in *VectorStore) DeepCopyInto(out *VectorStore)

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

type VertexSettings

type VertexSettings struct {
	// Model is the Vertex AI model to use.  Must support the OpenAI completions api, see: https://cloud.google.com/vertex-ai/generative-ai/docs/migrate/openai/overview
	//
	// +kubebuilder:validation:Optional
	Model *string `json:"model,omitempty"`

	// ToolModel to use for tool calling, which is less frequent and often requires more advanced reasoning
	//
	// +kubebuilder:validation:Optional
	ToolModel *string `json:"toolModel,omitempty"`

	// EmbeddingModel to use for generating embeddings
	//
	// +kubebuilder:validation:Optional
	EmbeddingModel *string `json:"embeddingModel,omitempty"`

	// Project is the GCP project you'll be using
	//
	// +kubebuilder:validation:Required
	Project string `json:"project"`

	// Location is the GCP region Vertex is queried from
	//
	// +kubebuilder:validation:Required
	Location string `json:"location"`

	// Endpoint is a custom endpoint for self-deployed models
	//
	// +kubebuilder:validation:Optional
	Endpoint *string `json:"endpoint,omitempty"`

	// ServiceAccountJsonSecretRef is a Service Account json file stored w/in a kubernetes secret to use for authentication to GCP
	//
	// +kubebuilder:validation:Optional
	ServiceAccountJsonSecretRef *corev1.SecretKeySelector `json:"serviceAccountJsonSecretRef,omitempty"`
}

func (*VertexSettings) DeepCopy

func (in *VertexSettings) DeepCopy() *VertexSettings

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

func (*VertexSettings) DeepCopyInto

func (in *VertexSettings) DeepCopyInto(out *VertexSettings)

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

func (*VertexSettings) ServiceAccountJSON

func (in *VertexSettings) ServiceAccountJSON(ctx context.Context, c client.Client, namespace string) (*string, error)

type YamlOverlay

type YamlOverlay struct {
	// File to execute the overlay on.
	// +kubebuilder:validation:Required
	File string `json:"file"`

	// Yaml (possibly templated) to use as the overlayed YAML blob written to the file.
	// +kubebuilder:validation:Required
	Yaml string `json:"yaml"`

	// Templated indicates whether you want to apply templating to the YAML blob before overlaying.
	// +kubebuilder:validation:Optional
	Templated *bool `json:"templated,omitempty"`

	// ListMerge defines how you want list merge to be performed, defaults to OVERWRITE.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=OVERWRITE;APPEND
	ListMerge *console.ListMerge `json:"listMerge,omitempty"`
}

YamlOverlay defines a YAML merge operation to modify existing YAML files.

func (*YamlOverlay) Attributes

func (in *YamlOverlay) Attributes() *console.YamlOverlayAttributes

func (*YamlOverlay) DeepCopy

func (in *YamlOverlay) DeepCopy() *YamlOverlay

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

func (*YamlOverlay) DeepCopyInto

func (in *YamlOverlay) DeepCopyInto(out *YamlOverlay)

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