Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the installer v1alpha1 API group +kubebuilder:object:generate=true +groupName=install.relay.sh
Index ¶
- Variables
- type AdmissionWebhookServerConfig
- type JWTSigningKeySource
- type LogServiceConfig
- type MetadataAPIConfig
- type OperatorConfig
- type RelayCore
- type RelayCoreList
- type RelayCoreSpec
- type ToolInjectionConfig
- type VaultAuthConfig
- type VaultAuthData
- type VaultAuthSource
- type VaultConfig
- type VaultEngineConfig
- type VaultServerBuiltInConfig
- type VaultServerConfig
- type VaultSidecarConfig
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "install.relay.sh", Version: "v1alpha1"} RelayCoreKind = GroupVersion.WithKind("RelayCore") // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AdmissionWebhookServerConfig ¶
type AdmissionWebhookServerConfig struct { // CertificateControllerImage is the image to use for the certificate // controller that managers the TLS certificates for the operator's webhook // server // // +kubebuilder:default="us-docker.pkg.dev/puppet-relay-contrib-oss/relay-core/relay-operator-webhook-certificate-controller:latest" // +optional CertificateControllerImage string `json:"certificateControllerImage,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional CertificateControllerImagePullPolicy corev1.PullPolicy `json:"certificateControllerImagePullPolicy,omitempty"` // Domain is the domain to use as a suffix for the webhook subdomain. // Example: admission.controller.example.com Domain string `json:"domain,omitempty"` // NamespaceSelector is the map of labels to use in the NamespaceSelector // section of the MutatingWebhooks. NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"` }
func (*AdmissionWebhookServerConfig) DeepCopy ¶
func (in *AdmissionWebhookServerConfig) DeepCopy() *AdmissionWebhookServerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionWebhookServerConfig.
func (*AdmissionWebhookServerConfig) DeepCopyInto ¶
func (in *AdmissionWebhookServerConfig) DeepCopyInto(out *AdmissionWebhookServerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JWTSigningKeySource ¶
type JWTSigningKeySource struct { // PrivateKeyRef is a reference to a secret containing the private key. PrivateKeyRef corev1.SecretKeySelector `json:"privateKeyRef,omitempty"` // PublicKeyRef is a reference to a secret containing the public key. PublicKeyRef corev1.SecretKeySelector `json:"publicKeyRef,omitempty"` }
func (*JWTSigningKeySource) DeepCopy ¶
func (in *JWTSigningKeySource) DeepCopy() *JWTSigningKeySource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTSigningKeySource.
func (*JWTSigningKeySource) DeepCopyInto ¶
func (in *JWTSigningKeySource) DeepCopyInto(out *JWTSigningKeySource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogServiceConfig ¶
type LogServiceConfig struct { // Image is the container image to use for the log service. // // +kubebuilder:default="relaysh/relay-pls:latest" // +optional Image string `json:"image,omitempty"` // ImagePullPolicy instructs the cluster when it should attempt to pull the // container image. // // +kubebuilder:default="IfNotPresent" // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Env is the slice of environment variables to use when launching the log // service. // // +optional Env []corev1.EnvVar `json:"env,omitempty"` // NodeSelector instructs the cluster how to choose a node to run the log // service pods. // // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceAccountName is the service account to use to run this service's pods. // This is the service account that is also handed to Vault for Kubernetes Auth. // // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Affinity is an optional set of affinity constraints to apply to operator // pods. // // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // Replicas is the number of pods to run for this server. // // +kubebuilder:default=1 // +optional Replicas int32 `json:"replicas,omitempty"` // VaultAgentRole is the role to use when configuring the vault agent. // // +kubebuilder:default="log-service" // +optional VaultAgentRole string `json:"vaultAgentRole,omitempty"` // CredentialsSecretKeyRef is the secret and key to use for the log service // cloud credentials CredentialsSecretKeyRef *corev1.SecretKeySelector `json:"credentialsSecretKeyRef,omitempty"` // Project is the BigQuery project to use for logging. Project string `json:"project,omitempty"` // Dataset is the BigQuery dataset to use for logging. Dataset string `json:"dataset,omitempty"` // Project is the BigQuery table to use for logging. Table string `json:"table,omitempty"` }
LogServiceConfig is the configuration for the relay-log-service deployment
func (*LogServiceConfig) DeepCopy ¶
func (in *LogServiceConfig) DeepCopy() *LogServiceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogServiceConfig.
func (*LogServiceConfig) DeepCopyInto ¶
func (in *LogServiceConfig) DeepCopyInto(out *LogServiceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetadataAPIConfig ¶
type MetadataAPIConfig struct { // +kubebuilder:default="us-docker.pkg.dev/puppet-relay-contrib-oss/relay-core/relay-metadata-api:latest" // +optional Image string `json:"image,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // +optional Env []corev1.EnvVar `json:"env,omitempty"` // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceAccountName is the service account to use to run this service's pods. // This is the service account that is also handed to Vault for Kubernetes Auth. // // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Affinity is an optional set of affinity constraints to apply to // metadata-api pods. // // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // +kubebuilder:default=1 // +optional Replicas int32 `json:"replicas,omitempty"` // TLSSecretName is the name of the secret that holds the TLS certificate // for enabling HTTPS on the metadata-api server. The secret object MUST // have two data fields called "tls.key" and "tls.crt". // // +optional TLSSecretName *string `json:"tlsSecretName,omitempty"` // URL is the URL of the metadata-api that will be used by workflows and // the operator. This defaults to: // http(s)://<RelayCore.Name>-metadata-api.<RelayCore.Namespace>.svc.cluster.local // // +optional URL *string `json:"url,omitempty"` // LogServiceURL is the URL of the service used to persist log messages. // // +optional LogServiceURL *string `json:"logServiceURL,omitempty"` // StepMetadataURL is the URL to use to fetch step metadata for schema // validation. // // +kubebuilder:default="https://relay.sh/step-metadata.json" // +optional StepMetadataURL string `json:"stepMetadataURL,omitempty"` // VaultAgentRole is the role to use when configuring the vault agent. // // +kubebuilder:default="metadata-api" // +optional VaultAgentRole string `json:"vaultAgentRole,omitempty"` // +kubebuilder:default="tenant" // +optional VaultAuthRole string `json:"vaultAuthRole,omitempty"` // +kubebuilder:default="auth/jwt-tenants" // +optional VaultAuthPath string `json:"vaultAuthPath,omitempty"` }
MetadataAPIConfig is the configuration for the relay-metadata-api deployment
func (*MetadataAPIConfig) DeepCopy ¶
func (in *MetadataAPIConfig) DeepCopy() *MetadataAPIConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataAPIConfig.
func (*MetadataAPIConfig) DeepCopyInto ¶
func (in *MetadataAPIConfig) DeepCopyInto(out *MetadataAPIConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OperatorConfig ¶
type OperatorConfig struct { // +kubebuilder:default="us-docker.pkg.dev/puppet-relay-contrib-oss/relay-core/relay-operator:latest" // +optional Image string `json:"image,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // +optional Env []corev1.EnvVar `json:"env,omitempty"` // MetricsEnabled enables the metrics server for the operator deployment // and creates a service that can be used to scrape those metrics. // // +kubebuilder:default=false // +optional MetricsEnabled bool `json:"metricsEnabled"` // TenantSandboxingRuntimeClassName sets the class to use for sandboxing // application kernels on tenant pods. If this is set to a value, then // tenant sandboxing is enabled in the operator. // TODO: should this be an kubebuilder enum of supported runtimes? // // +optional TenantSandboxingRuntimeClassName *string `json:"tenantSandboxingRuntimeClassName,omitempty"` // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // ServiceAccountName is the service account to use to run this service's pods. // This is the service account that is also handed to Vault for Kubernetes Auth. // // +optional ServiceAccountName string `json:"serviceAccountName,omitempty"` // Affinity is an optional set of affinity constraints to apply to operator // pods. // // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // +kubebuilder:default=false // +optional Standalone bool `json:"standalone"` // StorageAddr is the storage address URI for log storage. // // +optional StorageAddr *string `json:"storageAddr,omitempty"` // TenantNamespace is the Kubernetes namespace the operator should look for // tenant workloads on. // // +optional TenantNamespace *string `json:"tenantNamespace,omitempty"` // Workers is the number of workers the operator should run to process // workflows // // +kubebuilder:default=2 // +optional Workers int32 `json:"workers,omitempty"` // ToolInjection is the configuration for the entrypointer and tool // injection runtime tooling. // // +optional ToolInjection *ToolInjectionConfig `json:"toolInjection,omitempty"` // AdmissionWebhookServer is the configuration for the // admissionregistration webhook server. // // +optional AdmissionWebhookServer *AdmissionWebhookServerConfig `json:"admissionWebhookServer,omitempty"` // VaultAgentRole is the role to use when configuring the vault agent. // // +kubebuilder:default="operator" // +optional VaultAgentRole string `json:"vaultAgentRole,omitempty"` }
OperatorConfig is the configuration for the relay-operator deployment
func (*OperatorConfig) DeepCopy ¶
func (in *OperatorConfig) DeepCopy() *OperatorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperatorConfig.
func (*OperatorConfig) DeepCopyInto ¶
func (in *OperatorConfig) DeepCopyInto(out *OperatorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RelayCore ¶
type RelayCore struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RelayCoreSpec `json:"spec"` }
func (*RelayCore) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RelayCore.
func (*RelayCore) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RelayCore) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RelayCoreList ¶
type RelayCoreList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []RelayCore `json:"items"` }
RelayCoreList contains a list of RelayCore
func (*RelayCoreList) DeepCopy ¶
func (in *RelayCoreList) DeepCopy() *RelayCoreList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RelayCoreList.
func (*RelayCoreList) DeepCopyInto ¶
func (in *RelayCoreList) DeepCopyInto(out *RelayCoreList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RelayCoreList) DeepCopyObject ¶
func (in *RelayCoreList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RelayCoreSpec ¶
type RelayCoreSpec struct { // Environment is the environment this instance is running in. // // +kubebuilder:default="dev" // +optional Environment string `json:"environment,omitempty"` // Debug enabled debug logging and tools where possible. // // +kubebuilder:default=false // +optional Debug bool `json:"debug"` // LogService is the configuration for the log service. // // +optional LogService *LogServiceConfig `json:"logService,omitempty"` // Operator is the configuration for the workflow run operator. Operator OperatorConfig `json:"operator"` // MetadataAPI is the configuration for the step metadata-api server. MetadataAPI MetadataAPIConfig `json:"metadataAPI"` // Vault is the configuration for accessing vault. Vault VaultConfig `json:"vault"` // SentryDSNSecretName is the secret that holds the DSN address for Sentry // error and stacktrace collection. The secret object MUST have a data // field called "dsn". // // +optional SentryDSNSecretName *string `json:"sentryDSNSecretName,omitempty"` }
RelayCoreSpec defines the desired state of RelayCore
func (*RelayCoreSpec) DeepCopy ¶
func (in *RelayCoreSpec) DeepCopy() *RelayCoreSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RelayCoreSpec.
func (*RelayCoreSpec) DeepCopyInto ¶
func (in *RelayCoreSpec) DeepCopyInto(out *RelayCoreSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ToolInjectionConfig ¶
type ToolInjectionConfig struct { // Image is the image to use for the relay tool injection. // // +kubebuilder:default="us-docker.pkg.dev/puppet-relay-contrib-oss/relay-core/relay-runtime-tools:latest" // +optional Image string `json:"image,omitempty"` }
func (*ToolInjectionConfig) DeepCopy ¶
func (in *ToolInjectionConfig) DeepCopy() *ToolInjectionConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ToolInjectionConfig.
func (*ToolInjectionConfig) DeepCopyInto ¶
func (in *ToolInjectionConfig) DeepCopyInto(out *ToolInjectionConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAuthConfig ¶
type VaultAuthConfig struct { // Token is the token to use for vault server authentication when // configuring engine mounts and policies for relay-core components. // // +optional Token *VaultAuthData `json:"token,omitempty"` // UnsealKey enables a Job to unseal a vault server. // This Job only supports a singular unseal key, so // servers that require multiple keys will not be unsealed. // // +optional UnsealKey *VaultAuthData `json:"unsealKey,omitempty"` }
func (*VaultAuthConfig) DeepCopy ¶
func (in *VaultAuthConfig) DeepCopy() *VaultAuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAuthConfig.
func (*VaultAuthConfig) DeepCopyInto ¶
func (in *VaultAuthConfig) DeepCopyInto(out *VaultAuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAuthData ¶
type VaultAuthData struct { // Value allows data to be provided directly. // // +optional Value string `json:"value,omitempty"` // ValueFrom allows data to be provided by another source // such as a Secret. // // +optional ValueFrom *VaultAuthSource `json:"valueFrom,omitempty"` }
func (*VaultAuthData) DeepCopy ¶
func (in *VaultAuthData) DeepCopy() *VaultAuthData
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAuthData.
func (*VaultAuthData) DeepCopyInto ¶
func (in *VaultAuthData) DeepCopyInto(out *VaultAuthData)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultAuthSource ¶
type VaultAuthSource struct { // SecretKeyRef selects data by looking up the value in a secret. // // +optional SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"` }
func (*VaultAuthSource) DeepCopy ¶
func (in *VaultAuthSource) DeepCopy() *VaultAuthSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultAuthSource.
func (*VaultAuthSource) DeepCopyInto ¶
func (in *VaultAuthSource) DeepCopyInto(out *VaultAuthSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultConfig ¶
type VaultConfig struct { // Auth provides credentials for vault server authentication. // // +optional Auth *VaultAuthConfig `json:"auth"` // Engine provides the configuration for the internal vault engine. Engine VaultEngineConfig `json:"engine"` // JWTSigningKeys provides the JWT signing keys used for operations with // vault. If this field is not set, signing keys will be generated // automatically. // // +optional JWTSigningKeys *JWTSigningKeySource `json:"jwtSigningKeys,omitempty"` // Server provides the configuration for the vault server. Server VaultServerConfig `json:"server"` // Sidecar is the configuration for the vault sidecar containers. Sidecar VaultSidecarConfig `json:"sidecar"` }
func (*VaultConfig) DeepCopy ¶
func (in *VaultConfig) DeepCopy() *VaultConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultConfig.
func (*VaultConfig) DeepCopyInto ¶
func (in *VaultConfig) DeepCopyInto(out *VaultConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultEngineConfig ¶
type VaultEngineConfig struct { // +kubebuilder:default="us-docker.pkg.dev/puppet-relay-contrib-oss/relay-core/relay-operator-vault-init:latest" // +optional VaultInitializationImage string `json:"vaultInitializationImage,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional VaultInitializationImagePullPolicy corev1.PullPolicy `json:"vaultInitializationImagePullPolicy,omitempty"` // +kubebuilder:default="pls" // +optional LogServicePath string `json:"logServicePath,omitempty"` // +kubebuilder:default="metadata-api" // +optional TransitKey string `json:"transitKey,omitempty"` // +kubebuilder:default="transit-tenants" // +optional TransitPath string `json:"transitPath,omitempty"` // +kubebuilder:default="customers" // +optional TenantPath string `json:"tenantPath,omitempty"` // AuthDelegatorServiceAccount is the name of the service account that // should be used to give vault token review access for the kubernetes auth // method. // // +optional AuthDelegatorServiceAccountName string `json:"authDelegatorServiceAccountName,omitempty"` }
func (*VaultEngineConfig) DeepCopy ¶
func (in *VaultEngineConfig) DeepCopy() *VaultEngineConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultEngineConfig.
func (*VaultEngineConfig) DeepCopyInto ¶
func (in *VaultEngineConfig) DeepCopyInto(out *VaultEngineConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultServerBuiltInConfig ¶
type VaultServerBuiltInConfig struct { // +kubebuilder:default="vault:latest" // +optional Image string `json:"image,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Resources sets the resource requirements for the vault sidecar containers. // // +kubebuilder:default={limits: {cpu: "50m", memory: "64Mi"}, requests: {cpu: "25m", memory: "32Mi"}} // +optional Resources corev1.ResourceRequirements `json:"resources,omitempty"` // ConfigMapRef is the reference to the config map that contains the // scripts and policies to configure vault with. // // +optional ConfigMapRef corev1.LocalObjectReference `json:"configMapRef,omitempty"` }
func (*VaultServerBuiltInConfig) DeepCopy ¶
func (in *VaultServerBuiltInConfig) DeepCopy() *VaultServerBuiltInConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultServerBuiltInConfig.
func (*VaultServerBuiltInConfig) DeepCopyInto ¶
func (in *VaultServerBuiltInConfig) DeepCopyInto(out *VaultServerBuiltInConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultServerConfig ¶
type VaultServerConfig struct { // Address is the address to the vault server. // // +kubebuilder:default="http://vault:8200" // +optional Address string `json:"address,omitempty"` // BuiltIn optionally instantiates an internal vault deployment for use. // // +optional BuiltIn *VaultServerBuiltInConfig `json:"builtIn"` }
func (*VaultServerConfig) DeepCopy ¶
func (in *VaultServerConfig) DeepCopy() *VaultServerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultServerConfig.
func (*VaultServerConfig) DeepCopyInto ¶
func (in *VaultServerConfig) DeepCopyInto(out *VaultServerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VaultSidecarConfig ¶
type VaultSidecarConfig struct { // +kubebuilder:default="vault:latest" // +optional Image string `json:"image,omitempty"` // +kubebuilder:default="IfNotPresent" // +optional ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Resources sets the resource requirements for the vault sidecar containers. // // +kubebuilder:default={limits: {cpu: "50m", memory: "64Mi"}, requests: {cpu: "25m", memory: "32Mi"}} // +optional Resources corev1.ResourceRequirements `json:"resources,omitempty"` }
func (*VaultSidecarConfig) DeepCopy ¶
func (in *VaultSidecarConfig) DeepCopy() *VaultSidecarConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VaultSidecarConfig.
func (*VaultSidecarConfig) DeepCopyInto ¶
func (in *VaultSidecarConfig) DeepCopyInto(out *VaultSidecarConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.