Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the deployments v1alpha1 API group +kubebuilder:object:generate=true +groupName=deployments.plural.sh
Index ¶
- Constants
- Variables
- func Jitter(t time.Duration) time.Duration
- type AIProviderSettings
- type AISettings
- type AWSCloudConnection
- type AiApprovalConfiguration
- type AnalysisRates
- type AnsibleConfiguration
- type AuthAttributesGetter
- type AzureCloudConnection
- type AzureDevopsSettings
- type AzureOpenAISettings
- type BedrockSettings
- type Binding
- type Bindings
- type BindingsTemplate
- type BootstrapToken
- type BootstrapTokenList
- type BootstrapTokenSpec
- type Cascade
- type Catalog
- func (in *Catalog) CatalogName() string
- func (in *Catalog) ConsoleID() *string
- func (in *Catalog) ConsoleName() string
- func (in *Catalog) DeepCopy() *Catalog
- func (in *Catalog) DeepCopyInto(out *Catalog)
- func (in *Catalog) DeepCopyObject() runtime.Object
- func (in *Catalog) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *Catalog) SetCondition(condition metav1.Condition)
- type CatalogBindings
- type CatalogList
- type CatalogSpec
- type CloudConnection
- func (c *CloudConnection) CloudConnectionName() string
- func (in *CloudConnection) DeepCopy() *CloudConnection
- func (in *CloudConnection) DeepCopyInto(out *CloudConnection)
- func (in *CloudConnection) DeepCopyObject() runtime.Object
- func (c *CloudConnection) Diff(ctx context.Context, getter CloudConnectionGetter, hasher Hasher) (changed bool, sha string, err error)
- func (c *CloudConnection) SetCondition(condition metav1.Condition)
- type CloudConnectionConfiguration
- type CloudConnectionGetter
- type CloudConnectionList
- type CloudConnectionSpec
- type CloudProvider
- type Cluster
- func (c *Cluster) ConsoleID() *string
- func (c *Cluster) ConsoleName() string
- func (in *Cluster) DeepCopy() *Cluster
- func (in *Cluster) DeepCopyInto(out *Cluster)
- func (in *Cluster) DeepCopyObject() runtime.Object
- func (c *Cluster) SetCondition(condition metav1.Condition)
- func (c *Cluster) TagUpdateAttributes() console.ClusterUpdateAttributes
- type ClusterAWSCloudSettings
- type ClusterAzureCloudSettings
- type ClusterCloudSettings
- type ClusterGCPCloudSettings
- type ClusterList
- type ClusterNodePool
- type ClusterNodePoolAWSCloudSettings
- type ClusterNodePoolCloudSettings
- type ClusterRestore
- type ClusterRestoreList
- type ClusterRestoreSpec
- type ClusterRestoreStatus
- type ClusterRestoreTrigger
- type ClusterRestoreTriggerList
- type ClusterRestoreTriggerSpec
- type ClusterSpec
- type ClusterSpecTemplate
- type ClusterStatus
- type ClusterSync
- type ClusterSyncList
- type ClusterSyncSpec
- type ClusterTarget
- type CommandAttributes
- type ComplianceReportGenerator
- func (in *ComplianceReportGenerator) ComplianceReportGeneratorName() string
- func (in *ComplianceReportGenerator) DeepCopy() *ComplianceReportGenerator
- func (in *ComplianceReportGenerator) DeepCopyInto(out *ComplianceReportGenerator)
- func (in *ComplianceReportGenerator) DeepCopyObject() runtime.Object
- func (in *ComplianceReportGenerator) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *ComplianceReportGenerator) SetCondition(condition metav1.Condition)
- type ComplianceReportGeneratorList
- type ComplianceReportGeneratorSpec
- type ComponentState
- type Condition
- type ConditionMessage
- type ConditionReason
- type ConditionType
- type Container
- type ContainerResourceRequests
- type ContainerResources
- type CostSettings
- type CreatePr
- type CustomRunStep
- type CustomStackRun
- type CustomStackRunList
- type CustomStackRunSpec
- type DeploymentSettings
- type DeploymentSettingsBindings
- type DeploymentSettingsList
- type DeploymentSettingsSpec
- type DiffNormalizers
- type ElasticsearchConnection
- func (r *ElasticsearchConnection) Attributes(ctx context.Context, c client.Client, namespace string) (*console.ElasticsearchConnectionAttributes, error)
- func (in *ElasticsearchConnection) DeepCopy() *ElasticsearchConnection
- func (in *ElasticsearchConnection) DeepCopyInto(out *ElasticsearchConnection)
- type ElasticsearchConnectionSettings
- func (in *ElasticsearchConnectionSettings) DeepCopy() *ElasticsearchConnectionSettings
- func (in *ElasticsearchConnectionSettings) DeepCopyInto(out *ElasticsearchConnectionSettings)
- func (in *ElasticsearchConnectionSettings) Password(ctx context.Context, c client.Client, namespace string) (*string, error)
- type Env
- type EnvFrom
- type FederatedCredential
- func (in *FederatedCredential) Attributes(userID string) console.FederatedCredentialAttributes
- func (in *FederatedCredential) DeepCopy() *FederatedCredential
- func (in *FederatedCredential) DeepCopyInto(out *FederatedCredential)
- func (in *FederatedCredential) DeepCopyObject() runtime.Object
- func (in *FederatedCredential) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *FederatedCredential) SetCondition(condition metav1.Condition)
- type FederatedCredentialList
- type FederatedCredentialSpec
- type Flow
- func (in *Flow) ConsoleID() *string
- func (in *Flow) ConsoleName() string
- func (in *Flow) DeepCopy() *Flow
- func (in *Flow) DeepCopyInto(out *Flow)
- func (in *Flow) DeepCopyObject() runtime.Object
- func (in *Flow) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *Flow) FlowName() string
- func (in *Flow) SetCondition(condition metav1.Condition)
- type FlowList
- type FlowServerAssociation
- type FlowSpec
- type GCPCloudConnection
- type GateSpec
- type GeneratedSecret
- type GeneratedSecretDestination
- type GeneratedSecretList
- type GeneratedSecretSpec
- type GeneratedSecretStatus
- type GitHealth
- type GitRef
- type GitRepository
- func (in *GitRepository) ConsoleID() *string
- func (in *GitRepository) ConsoleName() string
- func (in *GitRepository) DeepCopy() *GitRepository
- func (in *GitRepository) DeepCopyInto(out *GitRepository)
- func (in *GitRepository) DeepCopyObject() runtime.Object
- func (in *GitRepository) SetCondition(condition metav1.Condition)
- type GitRepositoryList
- type GitRepositorySpec
- type GitRepositoryStatus
- type GlobalService
- func (gs *GlobalService) Attributes(projectId *string) console.GlobalServiceAttributes
- func (gs *GlobalService) ConsoleName() string
- func (in *GlobalService) DeepCopy() *GlobalService
- func (in *GlobalService) DeepCopyInto(out *GlobalService)
- func (in *GlobalService) DeepCopyObject() runtime.Object
- func (gs *GlobalService) SetCondition(condition metav1.Condition)
- type GlobalServiceList
- type GlobalServiceSpec
- type GraphStore
- type HTTPConnection
- type Hasher
- type HelmMinimal
- type HelmRepository
- func (in *HelmRepository) Attributes(ctx context.Context, authAttributesGetter AuthAttributesGetter) (*console.HelmRepositoryAttributes, error)
- func (in *HelmRepository) ConsoleID() *string
- func (in *HelmRepository) ConsoleName() string
- func (in *HelmRepository) DeepCopy() *HelmRepository
- func (in *HelmRepository) DeepCopyInto(out *HelmRepository)
- func (in *HelmRepository) DeepCopyObject() runtime.Object
- func (in *HelmRepository) Diff(ctx context.Context, getter AuthAttributesGetter, hasher Hasher) (changed bool, sha string, err error)
- func (in *HelmRepository) SetCondition(condition metav1.Condition)
- type HelmRepositoryAuth
- type HelmRepositoryAuthAWS
- type HelmRepositoryAuthAzure
- type HelmRepositoryAuthBasic
- type HelmRepositoryAuthBearer
- type HelmRepositoryAuthGCP
- type HelmRepositoryList
- type HelmRepositorySpec
- type HttpProxyConfiguration
- type InfrastructureStack
- func (in *InfrastructureStack) DeepCopy() *InfrastructureStack
- func (in *InfrastructureStack) DeepCopyInto(out *InfrastructureStack)
- func (in *InfrastructureStack) DeepCopyObject() runtime.Object
- func (p *InfrastructureStack) HasObservableMetrics() bool
- func (p *InfrastructureStack) HasProjectRef() bool
- func (p *InfrastructureStack) HasStackDefinitionRef() bool
- func (p *InfrastructureStack) ProjectName() string
- func (p *InfrastructureStack) SetCondition(condition metav1.Condition)
- func (p *InfrastructureStack) StackDefinitionObjectKey() client.ObjectKey
- func (p *InfrastructureStack) StackName() string
- type InfrastructureStackList
- type InfrastructureStackSpec
- type JobSpec
- type LoggingSettings
- type MCPServer
- func (in *MCPServer) DeepCopy() *MCPServer
- func (in *MCPServer) DeepCopyInto(out *MCPServer)
- func (in *MCPServer) DeepCopyObject() runtime.Object
- func (in *MCPServer) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *MCPServer) GetServerName() string
- func (in *MCPServer) SetCondition(condition metav1.Condition)
- type MCPServerAuthentication
- type MCPServerList
- type MCPServerSpec
- type ManagedNamespace
- func (in *ManagedNamespace) DeepCopy() *ManagedNamespace
- func (in *ManagedNamespace) DeepCopyInto(out *ManagedNamespace)
- func (in *ManagedNamespace) DeepCopyObject() runtime.Object
- func (in *ManagedNamespace) NamespaceName() string
- func (in *ManagedNamespace) SetCondition(condition metav1.Condition)
- type ManagedNamespaceList
- type ManagedNamespaceSpec
- type MetadataTemplate
- type NamespaceCredentials
- type NamespaceCredentialsList
- type NamespaceCredentialsSpec
- type NamespaceCredentialsStatus
- type NamespacedName
- type NamespacedPluralResource
- type NotificationRouter
- func (in *NotificationRouter) DeepCopy() *NotificationRouter
- func (in *NotificationRouter) DeepCopyInto(out *NotificationRouter)
- func (in *NotificationRouter) DeepCopyObject() runtime.Object
- func (p *NotificationRouter) NotificationName() string
- func (p *NotificationRouter) SetCondition(condition metav1.Condition)
- type NotificationRouterList
- type NotificationRouterSpec
- type NotificationSink
- func (in *NotificationSink) DeepCopy() *NotificationSink
- func (in *NotificationSink) DeepCopyInto(out *NotificationSink)
- func (in *NotificationSink) DeepCopyObject() runtime.Object
- func (p *NotificationSink) NotificationName() string
- func (p *NotificationSink) SetCondition(condition metav1.Condition)
- type NotificationSinkList
- type NotificationSinkSpec
- type OIDCProvider
- func (in *OIDCProvider) Attributes() console.OidcProviderAttributes
- func (in *OIDCProvider) ConsoleName() string
- func (in *OIDCProvider) DeepCopy() *OIDCProvider
- func (in *OIDCProvider) DeepCopyInto(out *OIDCProvider)
- func (in *OIDCProvider) DeepCopyObject() runtime.Object
- func (in *OIDCProvider) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *OIDCProvider) SetCondition(condition metav1.Condition)
- type OIDCProviderList
- type OIDCProviderSpec
- type ObjectKeyReference
- type ObjectReferenceTemplate
- type ObservabilityProvider
- func (in *ObservabilityProvider) Attributes(credentials client.ObservabilityProviderCredentialsAttributes) client.ObservabilityProviderAttributes
- func (in *ObservabilityProvider) ConsoleName() string
- func (in *ObservabilityProvider) DeepCopy() *ObservabilityProvider
- func (in *ObservabilityProvider) DeepCopyInto(out *ObservabilityProvider)
- func (in *ObservabilityProvider) DeepCopyObject() runtime.Object
- func (in *ObservabilityProvider) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *ObservabilityProvider) SetCondition(condition metav1.Condition)
- type ObservabilityProviderCredentials
- type ObservabilityProviderList
- type ObservabilityProviderSpec
- type ObservableMetric
- type Observer
- func (o *Observer) Attributes(target console.ObserverTargetAttributes, ...) console.ObserverAttributes
- func (in *Observer) DeepCopy() *Observer
- func (in *Observer) DeepCopyInto(out *Observer)
- func (in *Observer) DeepCopyObject() runtime.Object
- func (o *Observer) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (o *Observer) ObserverName() string
- func (o *Observer) SetCondition(condition metav1.Condition)
- type ObserverAction
- type ObserverAddOn
- type ObserverConfiguration
- type ObserverGit
- type ObserverGitFilter
- type ObserverHelm
- type ObserverList
- type ObserverOci
- type ObserverPipelineAction
- type ObserverPrAction
- type ObserverSpec
- type ObserverTarget
- type OllamaSettings
- type OpensearchConnection
- type OpensearchConnectionSettings
- func (in *OpensearchConnectionSettings) AwsSecretAccessKey(ctx context.Context, c client.Client, namespace string) (*string, error)
- func (in *OpensearchConnectionSettings) DeepCopy() *OpensearchConnectionSettings
- func (in *OpensearchConnectionSettings) DeepCopyInto(out *OpensearchConnectionSettings)
- type Persona
- func (in *Persona) ConsoleID() *string
- func (in *Persona) ConsoleName() string
- func (in *Persona) DeepCopy() *Persona
- func (in *Persona) DeepCopyInto(out *Persona)
- func (in *Persona) DeepCopyObject() runtime.Object
- func (in *Persona) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *Persona) PersonaName() string
- func (in *Persona) SetCondition(condition metav1.Condition)
- type PersonaAI
- type PersonaConfiguration
- type PersonaDeployment
- type PersonaHome
- type PersonaList
- type PersonaServices
- type PersonaSidebar
- type PersonaSpec
- type Pipeline
- type PipelineContext
- type PipelineContextList
- type PipelineContextSpec
- type PipelineEdge
- type PipelineGate
- type PipelineList
- type PipelineSpec
- type PipelineStage
- type PipelineStageService
- type PipelineStageServicePromotionCriteria
- type PluralResource
- type PluralSinkConfiguration
- type PolicyEngine
- type PrAutomation
- func (in *PrAutomation) ConsoleID() *string
- func (in *PrAutomation) ConsoleName() string
- func (in *PrAutomation) DeepCopy() *PrAutomation
- func (in *PrAutomation) DeepCopyInto(out *PrAutomation)
- func (in *PrAutomation) DeepCopyObject() runtime.Object
- func (in *PrAutomation) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *PrAutomation) SetCondition(condition metav1.Condition)
- type PrAutomationBindings
- type PrAutomationConfiguration
- type PrAutomationConfigurationValidation
- type PrAutomationConfirmation
- type PrAutomationCreateConfiguration
- type PrAutomationDeleteConfiguration
- type PrAutomationList
- type PrAutomationSecretConfiguration
- type PrAutomationSecretEntry
- type PrAutomationSpec
- type PrAutomationTemplate
- type PrAutomationTrigger
- type PrAutomationTriggerList
- type PrAutomationTriggerSpec
- type PrAutomationUniqBy
- type PrAutomationUpdateConfiguration
- type PrConfirmationChecklist
- type PrGovernance
- func (in *PrGovernance) ConsoleName() string
- func (in *PrGovernance) DeepCopy() *PrGovernance
- func (in *PrGovernance) DeepCopyInto(out *PrGovernance)
- func (in *PrGovernance) DeepCopyObject() runtime.Object
- func (in *PrGovernance) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *PrGovernance) SetCondition(condition metav1.Condition)
- type PrGovernanceConfiguration
- type PrGovernanceList
- type PrGovernanceSpec
- type PrGovernanceWebhook
- type PreviewEnvironmentTemplate
- func (in *PreviewEnvironmentTemplate) ConsoleName() string
- func (in *PreviewEnvironmentTemplate) DeepCopy() *PreviewEnvironmentTemplate
- func (in *PreviewEnvironmentTemplate) DeepCopyInto(out *PreviewEnvironmentTemplate)
- func (in *PreviewEnvironmentTemplate) DeepCopyObject() runtime.Object
- func (in *PreviewEnvironmentTemplate) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *PreviewEnvironmentTemplate) SetCondition(condition metav1.Condition)
- type PreviewEnvironmentTemplateList
- type PreviewEnvironmentTemplateSpec
- type Project
- func (in *Project) ConsoleID() *string
- func (in *Project) ConsoleName() string
- func (in *Project) DeepCopy() *Project
- func (in *Project) DeepCopyInto(out *Project)
- func (in *Project) DeepCopyObject() runtime.Object
- func (in *Project) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *Project) SetCondition(condition metav1.Condition)
- type ProjectList
- type ProjectSpec
- type Reconciliation
- type RegexReplacement
- type Renderer
- type RouterFilters
- type ScmConnection
- func (s *ScmConnection) Attributes(ctx context.Context, kubeClient client.Client, token *string) (*console.ScmConnectionAttributes, error)
- func (s *ScmConnection) ConsoleID() *string
- func (s *ScmConnection) ConsoleName() string
- func (in *ScmConnection) DeepCopy() *ScmConnection
- func (in *ScmConnection) DeepCopyInto(out *ScmConnection)
- func (in *ScmConnection) DeepCopyObject() runtime.Object
- func (s *ScmConnection) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (s *ScmConnection) SetCondition(condition metav1.Condition)
- type ScmConnectionList
- type ScmConnectionSpec
- type ScmGithubConnection
- type Sentinel
- type SentinelCheck
- type SentinelCheckConfiguration
- type SentinelCheckGotestsumConfiguration
- type SentinelCheckIntegrationTestConfiguration
- type SentinelCheckKubernetesConfiguration
- type SentinelCheckLogConfiguration
- type SentinelList
- type SentinelSpec
- type ServiceAccount
- func (in *ServiceAccount) Attributes() console.ServiceAccountAttributes
- func (in *ServiceAccount) ConsoleID() *string
- func (in *ServiceAccount) ConsoleName() string
- func (in *ServiceAccount) DeepCopy() *ServiceAccount
- func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount)
- func (in *ServiceAccount) DeepCopyObject() runtime.Object
- func (in *ServiceAccount) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *ServiceAccount) SetCondition(condition metav1.Condition)
- type ServiceAccountList
- type ServiceAccountScope
- type ServiceAccountSpec
- type ServiceComponent
- type ServiceContext
- func (s *ServiceContext) ConsoleID() *string
- func (s *ServiceContext) ConsoleName() string
- func (in *ServiceContext) DeepCopy() *ServiceContext
- func (in *ServiceContext) DeepCopyInto(out *ServiceContext)
- func (in *ServiceContext) DeepCopyObject() runtime.Object
- func (s *ServiceContext) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (s *ServiceContext) DriftDetect() bool
- func (s *ServiceContext) HasProjectRef() bool
- func (s *ServiceContext) ProjectName() string
- func (s *ServiceContext) SetCondition(condition metav1.Condition)
- type ServiceContextList
- type ServiceContextSpec
- type ServiceDependency
- type ServiceDeployment
- func (s *ServiceDeployment) ConsoleID() *string
- func (s *ServiceDeployment) ConsoleName() string
- func (s *ServiceDeployment) ConsoleNamespace() string
- func (in *ServiceDeployment) DeepCopy() *ServiceDeployment
- func (in *ServiceDeployment) DeepCopyInto(out *ServiceDeployment)
- func (in *ServiceDeployment) DeepCopyObject() runtime.Object
- func (s *ServiceDeployment) SetCondition(condition metav1.Condition)
- type ServiceDeploymentList
- type ServiceError
- type ServiceHelm
- type ServiceImport
- type ServiceKustomize
- type ServiceSpec
- type ServiceStatus
- type ServiceTemplate
- type SinkConfiguration
- type SinkURL
- type Source
- type SpecTemplate
- type StackConfiguration
- type StackCron
- type StackDefinition
- func (in *StackDefinition) Attributes() console.StackDefinitionAttributes
- func (in *StackDefinition) DeepCopy() *StackDefinition
- func (in *StackDefinition) DeepCopyInto(out *StackDefinition)
- func (in *StackDefinition) DeepCopyObject() runtime.Object
- func (in *StackDefinition) Diff(hasher Hasher) (changed bool, sha string, err error)
- func (in *StackDefinition) SetCondition(condition metav1.Condition)
- func (in *StackDefinition) StackName() string
- type StackDefinitionList
- type StackDefinitionSpec
- type StackEnvironment
- type StackFile
- type StackHook
- type StackOverrides
- type StackSettings
- type Status
- func (in *Status) DeepCopy() *Status
- func (in *Status) DeepCopyInto(out *Status)
- func (p *Status) GetID() string
- func (p *Status) GetSHA() string
- func (p *Status) HasID() bool
- func (p *Status) HasReadonlyCondition() bool
- func (p *Status) HasSHA() bool
- func (p *Status) IsReadonly() bool
- func (p *Status) IsSHAEqual(sha string) bool
- func (p *Status) IsStatusConditionTrue(condition ConditionType) bool
- type SyncConfigAttributes
- type Taint
- type TaintEffect
- type TemplateContext
- type TerraformConfiguration
- type Tools
- type VectorStore
- type VertexSettings
- type YamlOverlay
Constants ¶
const ( RequeueDefault = 30 * time.Minute WaitDefault = 30 * time.Second )
const (
// GroupName uniquely identifies this API group
GroupName = "deployments.plural.sh"
)
Variables ¶
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 ¶
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.
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 (in *AiApprovalConfiguration) Attributes() *console.AiApprovalAttributes
func (*AiApprovalConfiguration) DeepCopy ¶
func (in *AiApprovalConfiguration) DeepCopy() *AiApprovalConfiguration
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 ¶
func (in *AnsibleConfiguration) DeepCopy() *AnsibleConfiguration
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 ¶
func (in *AzureCloudConnection) DeepCopy() *AzureCloudConnection
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.
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.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.
func (*Binding) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Bindings.
func (*Bindings) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cascade.
func (*Cascade) DeepCopyInto ¶
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 (*Catalog) ConsoleID ¶
ConsoleID implements PluralResource interface
func (*Catalog) ConsoleName ¶
ConsoleName implements PluralResource interface
func (*Catalog) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Catalog.
func (*Catalog) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Catalog) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Catalog) SetCondition ¶
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 ¶
func (in *CloudConnectionConfiguration) DeepCopy() *CloudConnectionConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudConnectionConfiguration.
func (*CloudConnectionConfiguration) DeepCopyInto ¶
func (in *CloudConnectionConfiguration) DeepCopyInto(out *CloudConnectionConfiguration)
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) ConsoleName ¶
ConsoleName implements PluralResource interface
func (*Cluster) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (*Cluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Cluster) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Cluster) SetCondition ¶
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 ¶
func (in *ClusterAWSCloudSettings) DeepCopy() *ClusterAWSCloudSettings
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 ¶
func (in *ClusterAzureCloudSettings) DeepCopy() *ClusterAzureCloudSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterAzureCloudSettings.
func (*ClusterAzureCloudSettings) DeepCopyInto ¶
func (in *ClusterAzureCloudSettings) DeepCopyInto(out *ClusterAzureCloudSettings)
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 ¶
func (in *ClusterCloudSettings) DeepCopy() *ClusterCloudSettings
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 ¶
func (in *ClusterGCPCloudSettings) DeepCopy() *ClusterGCPCloudSettings
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 ¶
func (in *ClusterNodePoolAWSCloudSettings) DeepCopy() *ClusterNodePoolAWSCloudSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNodePoolAWSCloudSettings.
func (*ClusterNodePoolAWSCloudSettings) DeepCopyInto ¶
func (in *ClusterNodePoolAWSCloudSettings) DeepCopyInto(out *ClusterNodePoolAWSCloudSettings)
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 ¶
func (in *ClusterNodePoolCloudSettings) DeepCopy() *ClusterNodePoolCloudSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNodePoolCloudSettings.
func (*ClusterNodePoolCloudSettings) DeepCopyInto ¶
func (in *ClusterNodePoolCloudSettings) DeepCopyInto(out *ClusterNodePoolCloudSettings)
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 ¶
func (in *ClusterRestoreStatus) DeepCopy() *ClusterRestoreStatus
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 ¶
func (in *ClusterRestoreTrigger) DeepCopy() *ClusterRestoreTrigger
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 ¶
func (in *ClusterRestoreTriggerList) DeepCopy() *ClusterRestoreTriggerList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRestoreTriggerList.
func (*ClusterRestoreTriggerList) DeepCopyInto ¶
func (in *ClusterRestoreTriggerList) DeepCopyInto(out *ClusterRestoreTriggerList)
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 ¶
func (in *ClusterRestoreTriggerSpec) DeepCopy() *ClusterRestoreTriggerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRestoreTriggerSpec.
func (*ClusterRestoreTriggerSpec) DeepCopyInto ¶
func (in *ClusterRestoreTriggerSpec) DeepCopyInto(out *ClusterRestoreTriggerSpec)
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 ¶
func (in *ComplianceReportGenerator) DeepCopy() *ComplianceReportGenerator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComplianceReportGenerator.
func (*ComplianceReportGenerator) DeepCopyInto ¶
func (in *ComplianceReportGenerator) DeepCopyInto(out *ComplianceReportGenerator)
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 ¶
func (in *ComplianceReportGeneratorList) DeepCopy() *ComplianceReportGeneratorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComplianceReportGeneratorList.
func (*ComplianceReportGeneratorList) DeepCopyInto ¶
func (in *ComplianceReportGeneratorList) DeepCopyInto(out *ComplianceReportGeneratorList)
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 ¶
func (in *ComplianceReportGeneratorSpec) DeepCopy() *ComplianceReportGeneratorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComplianceReportGeneratorSpec.
func (*ComplianceReportGeneratorSpec) DeepCopyInto ¶
func (in *ComplianceReportGeneratorSpec) DeepCopyInto(out *ComplianceReportGeneratorSpec)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.
func (*Condition) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.
func (*Container) DeepCopyInto ¶
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 ¶
func (in *ContainerResourceRequests) DeepCopy() *ContainerResourceRequests
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceRequests.
func (*ContainerResourceRequests) DeepCopyInto ¶
func (in *ContainerResourceRequests) DeepCopyInto(out *ContainerResourceRequests)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreatePr.
func (*CreatePr) DeepCopyInto ¶
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 ¶
func (in *DeploymentSettingsBindings) DeepCopy() *DeploymentSettingsBindings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSettingsBindings.
func (*DeploymentSettingsBindings) DeepCopyInto ¶
func (in *DeploymentSettingsBindings) DeepCopyInto(out *DeploymentSettingsBindings)
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 ¶
func (in *DeploymentSettingsList) DeepCopy() *DeploymentSettingsList
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 ¶
func (in *DeploymentSettingsSpec) DeepCopy() *DeploymentSettingsSpec
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 (r *ElasticsearchConnection) Attributes(ctx context.Context, c client.Client, namespace string) (*console.ElasticsearchConnectionAttributes, error)
func (*ElasticsearchConnection) DeepCopy ¶
func (in *ElasticsearchConnection) DeepCopy() *ElasticsearchConnection
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 ¶
func (in *ElasticsearchConnectionSettings) DeepCopy() *ElasticsearchConnectionSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchConnectionSettings.
func (*ElasticsearchConnectionSettings) DeepCopyInto ¶
func (in *ElasticsearchConnectionSettings) DeepCopyInto(out *ElasticsearchConnectionSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Env.
func (*Env) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvFrom.
func (*EnvFrom) DeepCopyInto ¶
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 (in *FederatedCredential) Attributes(userID string) console.FederatedCredentialAttributes
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 ¶
func (in *FederatedCredentialList) DeepCopy() *FederatedCredentialList
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 ¶
func (in *FederatedCredentialSpec) DeepCopy() *FederatedCredentialSpec
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) ConsoleName ¶
ConsoleName implements PluralResource interface
func (*Flow) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Flow.
func (*Flow) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Flow) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Flow) SetCondition ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowList.
func (*FlowList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlowList) DeepCopyObject ¶
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 ¶
func (in *FlowServerAssociation) DeepCopy() *FlowServerAssociation
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSpec.
func (*FlowSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*FlowSpec) HasProjectRef ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GateSpec.
func (*GateSpec) DeepCopyInto ¶
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 ¶
func (in *GeneratedSecretDestination) DeepCopy() *GeneratedSecretDestination
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeneratedSecretDestination.
func (*GeneratedSecretDestination) DeepCopyInto ¶
func (in *GeneratedSecretDestination) DeepCopyInto(out *GeneratedSecretDestination)
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 ¶
func (in *GeneratedSecretStatus) DeepCopy() *GeneratedSecretStatus
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 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRef.
func (*GitRef) DeepCopyInto ¶
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 (r *HTTPConnection) Attributes(ctx context.Context, c client.Client, namespace string) (*console.HTTPConnectionAttributes, error)
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 ¶
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 ¶
func (in *HelmRepositoryAuthAWS) DeepCopy() *HelmRepositoryAuthAWS
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 ¶
func (in *HelmRepositoryAuthAzure) DeepCopy() *HelmRepositoryAuthAzure
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 ¶
func (in *HelmRepositoryAuthBasic) DeepCopy() *HelmRepositoryAuthBasic
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 ¶
func (in *HelmRepositoryAuthBearer) DeepCopy() *HelmRepositoryAuthBearer
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 ¶
func (in *HelmRepositoryAuthGCP) DeepCopy() *HelmRepositoryAuthGCP
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 ¶
func (in *HttpProxyConfiguration) DeepCopy() *HttpProxyConfiguration
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 ¶
func (in *InfrastructureStackList) DeepCopy() *InfrastructureStackList
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 ¶
func (in *InfrastructureStackSpec) DeepCopy() *InfrastructureStackSpec
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.
func (*JobSpec) DeepCopyInto ¶
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 (in *LoggingSettings) Attributes(ctx context.Context, c client.Client, namespace string) (*console.LoggingSettingsAttributes, error)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCPServer.
func (*MCPServer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*MCPServer) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*MCPServer) GetServerName ¶
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 ¶
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 ¶
func (in *MCPServerAuthentication) DeepCopy() *MCPServerAuthentication
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 ¶
func (in *ManagedNamespaceList) DeepCopy() *ManagedNamespaceList
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 ¶
func (in *ManagedNamespaceSpec) DeepCopy() *ManagedNamespaceSpec
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 ¶
func (in *NamespaceCredentials) DeepCopy() *NamespaceCredentials
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 ¶
func (in *NamespaceCredentialsList) DeepCopy() *NamespaceCredentialsList
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 ¶
func (in *NamespaceCredentialsSpec) DeepCopy() *NamespaceCredentialsSpec
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 ¶
func (in *NamespaceCredentialsStatus) DeepCopy() *NamespaceCredentialsStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceCredentialsStatus.
func (*NamespaceCredentialsStatus) DeepCopyInto ¶
func (in *NamespaceCredentialsStatus) DeepCopyInto(out *NamespaceCredentialsStatus)
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 ¶
func (in *NotificationRouterList) DeepCopy() *NotificationRouterList
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 ¶
func (in *NotificationRouterSpec) DeepCopy() *NotificationRouterSpec
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 ¶
func (in *NotificationSinkList) DeepCopy() *NotificationSinkList
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 ¶
func (in *NotificationSinkSpec) DeepCopy() *NotificationSinkSpec
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 ¶
func (in *ObjectReferenceTemplate) DeepCopy() *ObjectReferenceTemplate
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 ¶
func (in *ObservabilityProvider) Attributes(credentials client.ObservabilityProviderCredentialsAttributes) client.ObservabilityProviderAttributes
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 ¶
func (in *ObservabilityProvider) DeepCopy() *ObservabilityProvider
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 ¶
func (in *ObservabilityProviderCredentials) DeepCopy() *ObservabilityProviderCredentials
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityProviderCredentials.
func (*ObservabilityProviderCredentials) DeepCopyInto ¶
func (in *ObservabilityProviderCredentials) DeepCopyInto(out *ObservabilityProviderCredentials)
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 ¶
func (in *ObservabilityProviderList) DeepCopy() *ObservabilityProviderList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityProviderList.
func (*ObservabilityProviderList) DeepCopyInto ¶
func (in *ObservabilityProviderList) DeepCopyInto(out *ObservabilityProviderList)
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 ¶
func (in *ObservabilityProviderSpec) DeepCopy() *ObservabilityProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityProviderSpec.
func (*ObservabilityProviderSpec) DeepCopyInto ¶
func (in *ObservabilityProviderSpec) DeepCopyInto(out *ObservabilityProviderSpec)
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 ¶
func (o *Observer) Attributes(target console.ObserverTargetAttributes, actions []*console.ObserverActionAttributes, projectID *string) console.ObserverAttributes
Attributes converts the Observer spec to Console API attributes for upstream synchronization.
func (*Observer) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Observer.
func (*Observer) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Observer) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Observer) Diff ¶
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 ¶
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 ¶
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 ¶
func (in *ObserverConfiguration) DeepCopy() *ObserverConfiguration
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 ¶
func (in *ObserverPipelineAction) DeepCopy() *ObserverPipelineAction
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 (*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 (r *OpensearchConnection) Attributes(ctx context.Context, c client.Client, namespace string) (*console.OpensearchConnectionAttributes, error)
func (*OpensearchConnection) DeepCopy ¶
func (in *OpensearchConnection) DeepCopy() *OpensearchConnection
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 (*OpensearchConnectionSettings) DeepCopy ¶
func (in *OpensearchConnectionSettings) DeepCopy() *OpensearchConnectionSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpensearchConnectionSettings.
func (*OpensearchConnectionSettings) DeepCopyInto ¶
func (in *OpensearchConnectionSettings) DeepCopyInto(out *OpensearchConnectionSettings)
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 ¶
ConsoleID returns the unique identifier used in the Console API for this Persona.
func (*Persona) ConsoleName ¶
ConsoleName returns the name used in the Console API for this Persona.
func (*Persona) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Persona.
func (*Persona) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Persona) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Persona) Diff ¶
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 ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersonaAI.
func (*PersonaAI) DeepCopyInto ¶
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 ¶
func (in *PersonaConfiguration) Attributes() *console.PersonaConfigurationAttributes
Attributes converts the PersonaConfiguration to Console API attributes.
func (*PersonaConfiguration) DeepCopy ¶
func (in *PersonaConfiguration) DeepCopy() *PersonaConfiguration
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 ¶
func (in *PersonaDeployment) Attributes() *console.PersonaDeploymentAttributes
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 ¶
func (in *PersonaServices) Attributes() *console.PersonaServicesAttributes
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 ¶
func (in *PersonaSidebar) Attributes() *console.PersonaSidebarAttributes
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pipeline.
func (*Pipeline) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Pipeline) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Pipeline) HasProjectRef ¶
func (*Pipeline) ProjectName ¶
func (*Pipeline) SetCondition ¶
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 ¶
func (in *PipelineStageService) DeepCopy() *PipelineStageService
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 ¶
func (in *PipelineStageServicePromotionCriteria) DeepCopy() *PipelineStageServicePromotionCriteria
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PipelineStageServicePromotionCriteria.
func (*PipelineStageServicePromotionCriteria) DeepCopyInto ¶
func (in *PipelineStageServicePromotionCriteria) DeepCopyInto(out *PipelineStageServicePromotionCriteria)
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 ¶
func (in *PluralSinkConfiguration) DeepCopy() *PluralSinkConfiguration
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 ¶
func (in *PrAutomationBindings) DeepCopy() *PrAutomationBindings
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 (in *PrAutomationConfiguration) Attributes() *console.PrConfigurationAttributes
func (*PrAutomationConfiguration) DeepCopy ¶
func (in *PrAutomationConfiguration) DeepCopy() *PrAutomationConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationConfiguration.
func (*PrAutomationConfiguration) DeepCopyInto ¶
func (in *PrAutomationConfiguration) DeepCopyInto(out *PrAutomationConfiguration)
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 ¶
func (in *PrAutomationConfigurationValidation) DeepCopy() *PrAutomationConfigurationValidation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationConfigurationValidation.
func (*PrAutomationConfigurationValidation) DeepCopyInto ¶
func (in *PrAutomationConfigurationValidation) DeepCopyInto(out *PrAutomationConfigurationValidation)
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 (in *PrAutomationConfirmation) Attributes() *console.PrConfirmationAttributes
func (*PrAutomationConfirmation) DeepCopy ¶
func (in *PrAutomationConfirmation) DeepCopy() *PrAutomationConfirmation
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 (in *PrAutomationCreateConfiguration) Attributes() *console.PrAutomationCreateSpecAttributes
func (*PrAutomationCreateConfiguration) DeepCopy ¶
func (in *PrAutomationCreateConfiguration) DeepCopy() *PrAutomationCreateConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationCreateConfiguration.
func (*PrAutomationCreateConfiguration) DeepCopyInto ¶
func (in *PrAutomationCreateConfiguration) DeepCopyInto(out *PrAutomationCreateConfiguration)
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 (in *PrAutomationDeleteConfiguration) Attributes() *console.PrAutomationDeleteSpecAttributes
func (*PrAutomationDeleteConfiguration) DeepCopy ¶
func (in *PrAutomationDeleteConfiguration) DeepCopy() *PrAutomationDeleteConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationDeleteConfiguration.
func (*PrAutomationDeleteConfiguration) DeepCopyInto ¶
func (in *PrAutomationDeleteConfiguration) DeepCopyInto(out *PrAutomationDeleteConfiguration)
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 (in *PrAutomationSecretConfiguration) Attributes() *console.PrSecretsAttributes
func (*PrAutomationSecretConfiguration) DeepCopy ¶
func (in *PrAutomationSecretConfiguration) DeepCopy() *PrAutomationSecretConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationSecretConfiguration.
func (*PrAutomationSecretConfiguration) DeepCopyInto ¶
func (in *PrAutomationSecretConfiguration) DeepCopyInto(out *PrAutomationSecretConfiguration)
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 (in *PrAutomationSecretEntry) Attributes() *console.PrSecretEntryAttributes
func (*PrAutomationSecretEntry) DeepCopy ¶
func (in *PrAutomationSecretEntry) DeepCopy() *PrAutomationSecretEntry
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 (in *PrAutomationTemplate) Attributes() *console.PrAutomationTemplateAttributes
func (*PrAutomationTemplate) DeepCopy ¶
func (in *PrAutomationTemplate) DeepCopy() *PrAutomationTemplate
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 ¶
func (in *PrAutomationTriggerList) DeepCopy() *PrAutomationTriggerList
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 ¶
func (in *PrAutomationTriggerSpec) DeepCopy() *PrAutomationTriggerSpec
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 (in *PrAutomationUpdateConfiguration) Attributes() *console.PrAutomationUpdateSpecAttributes
func (*PrAutomationUpdateConfiguration) DeepCopy ¶
func (in *PrAutomationUpdateConfiguration) DeepCopy() *PrAutomationUpdateConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrAutomationUpdateConfiguration.
func (*PrAutomationUpdateConfiguration) DeepCopyInto ¶
func (in *PrAutomationUpdateConfiguration) DeepCopyInto(out *PrAutomationUpdateConfiguration)
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 ¶
func (in *PrConfirmationChecklist) DeepCopy() *PrConfirmationChecklist
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 ¶
func (in *PrGovernanceConfiguration) DeepCopy() *PrGovernanceConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrGovernanceConfiguration.
func (*PrGovernanceConfiguration) DeepCopyInto ¶
func (in *PrGovernanceConfiguration) DeepCopyInto(out *PrGovernanceConfiguration)
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 ¶
func (in *PreviewEnvironmentTemplate) DeepCopy() *PreviewEnvironmentTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreviewEnvironmentTemplate.
func (*PreviewEnvironmentTemplate) DeepCopyInto ¶
func (in *PreviewEnvironmentTemplate) DeepCopyInto(out *PreviewEnvironmentTemplate)
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 ¶
func (in *PreviewEnvironmentTemplateList) DeepCopy() *PreviewEnvironmentTemplateList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreviewEnvironmentTemplateList.
func (*PreviewEnvironmentTemplateList) DeepCopyInto ¶
func (in *PreviewEnvironmentTemplateList) DeepCopyInto(out *PreviewEnvironmentTemplateList)
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 ¶
func (in *PreviewEnvironmentTemplateSpec) DeepCopy() *PreviewEnvironmentTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreviewEnvironmentTemplateSpec.
func (*PreviewEnvironmentTemplateSpec) DeepCopyInto ¶
func (in *PreviewEnvironmentTemplateSpec) DeepCopyInto(out *PreviewEnvironmentTemplateSpec)
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 ¶
ConsoleID implements PluralResource interface
func (*Project) ConsoleName ¶
ConsoleName implements PluralResource interface
func (*Project) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project.
func (*Project) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Project) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Project) SetCondition ¶
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 (in *RegexReplacement) Attributes() *console.RegexReplacementAttributes
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Renderer.
func (*Renderer) DeepCopyInto ¶
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) ConsoleName ¶
ConsoleName implements NamespacedPluralResource interface
func (*Sentinel) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sentinel.
func (*Sentinel) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Sentinel) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Sentinel) SetCondition ¶
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 ¶
func (in *SentinelCheckConfiguration) DeepCopy() *SentinelCheckConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SentinelCheckConfiguration.
func (*SentinelCheckConfiguration) DeepCopyInto ¶
func (in *SentinelCheckConfiguration) DeepCopyInto(out *SentinelCheckConfiguration)
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 ¶
func (in *SentinelCheckGotestsumConfiguration) DeepCopy() *SentinelCheckGotestsumConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SentinelCheckGotestsumConfiguration.
func (*SentinelCheckGotestsumConfiguration) DeepCopyInto ¶
func (in *SentinelCheckGotestsumConfiguration) DeepCopyInto(out *SentinelCheckGotestsumConfiguration)
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 ¶
func (in *SentinelCheckIntegrationTestConfiguration) DeepCopy() *SentinelCheckIntegrationTestConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SentinelCheckIntegrationTestConfiguration.
func (*SentinelCheckIntegrationTestConfiguration) DeepCopyInto ¶
func (in *SentinelCheckIntegrationTestConfiguration) DeepCopyInto(out *SentinelCheckIntegrationTestConfiguration)
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 ¶
func (in *SentinelCheckKubernetesConfiguration) DeepCopy() *SentinelCheckKubernetesConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SentinelCheckKubernetesConfiguration.
func (*SentinelCheckKubernetesConfiguration) DeepCopyInto ¶
func (in *SentinelCheckKubernetesConfiguration) DeepCopyInto(out *SentinelCheckKubernetesConfiguration)
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 ¶
func (in *SentinelCheckLogConfiguration) DeepCopy() *SentinelCheckLogConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SentinelCheckLogConfiguration.
func (*SentinelCheckLogConfiguration) DeepCopyInto ¶
func (in *SentinelCheckLogConfiguration) DeepCopyInto(out *SentinelCheckLogConfiguration)
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 (in *ServiceAccount) Attributes() console.ServiceAccountAttributes
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 ¶
func (in *ServiceDeploymentList) DeepCopy() *ServiceDeploymentList
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SinkURL.
func (*SinkURL) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Source.
func (*Source) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackCron.
func (*StackCron) DeepCopyInto ¶
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 (in *StackDefinition) Attributes() console.StackDefinitionAttributes
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackFile.
func (*StackFile) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackHook.
func (*StackHook) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.
func (*Status) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Status) HasReadonlyCondition ¶
func (*Status) IsReadonly ¶
func (*Status) IsSHAEqual ¶
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 (sca *SyncConfigAttributes) Attributes() (*console.SyncConfigAttributes, error)
func (*SyncConfigAttributes) DeepCopy ¶
func (in *SyncConfigAttributes) DeepCopy() *SyncConfigAttributes
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Taint.
func (*Taint) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
func (tc *TemplateContext) Attributes() *console.TemplateContextAttributes
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 ¶
func (in *TerraformConfiguration) DeepCopy() *TerraformConfiguration
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tools.
func (*Tools) DeepCopyInto ¶
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 ¶
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.
Source Files
¶
- binding_types.go
- bootstraptoken_types.go
- catalog_types.go
- cloudconnection_types.go
- cluster_types.go
- clusterrestore_types.go
- clusterrestoretrigger_types.go
- clustersync_types.go
- common_types.go
- compliancereportgenerator_types.go
- condition_types.go
- customstackrun_types.go
- deploymentsettings_types.go
- federatedcredential_types.go
- flow_types.go
- generatedsecret_types.go
- git_ref_types.go
- gitrepository_types.go
- globalservice_types.go
- groupversion_info.go
- helmrepository_types.go
- infrastructurestack_types.go
- managednamespace_types.go
- mcpserver_types.go
- namespacecredentials_types.go
- notificationrouter_types.go
- notificationsink_types.go
- observabilityprovider_types.go
- observer_types.go
- oidcprovider_types.go
- persona_types.go
- pipeline_types.go
- pipelinecontext_types.go
- prautomation_types.go
- prautomationtrigger_types.go
- previewenvironmenttemplate_types.go
- prgovernance_types.go
- project_types.go
- reconciliation.go
- scmconnection_types.go
- sentinel_types.go
- serviceaccount_types.go
- servicecontext_types.go
- servicedeployment_types.go
- stackdefinition_types.go
- status_types.go
- taint_types.go
- zz_generated.deepcopy.go