radixapplication

package
v1.113.1-rc.3 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2026 License: MIT Imports: 27 Imported by: 1

Documentation

Index

Constants

View Source
const (

	// MaxReplica Max number of replicas a deployment is allowed to have
	MaxReplica = 64
)

Variables

View Source
var (
	ErrInternalError = errors.New("internal error. Please try again later or contact support if the issue persists")

	ErrNoRadixApplication                                            = errors.New("no corresponding radix application found. Name of the application in radixconfig.yaml needs to be exactly the same as used when defining the app in the console")
	ErrDNSAliasComponentIsNotMarkedAsPublic                          = errors.New("component for dns alias is not marked as public")
	ErrDNSAliasAlreadyUsedByAnotherApplication                       = errors.New("dns alias is already used by another application")
	ErrDNSAliasReservedForRadixPlatformApplication                   = errors.New("dns alias is reserved for Radix platform application")
	ErrDNSAliasReservedForRadixPlatformService                       = errors.New("dns alias is reserved for Radix platform service")
	ErrComponentNameReservedSuffix                                   = errors.New("component name reserved suffix")
	ErrComponentJobNamesMustBeUnique                                 = errors.New("component and job names must be unique across both lists")
	ErrDNSAliasEnvironmentNotDefined                                 = errors.New("environment for dns alias is not defined in radix application")
	ErrDNSAliasComponentNotDefinedOrDisabled                         = errors.New("component for dns alias is not defined or disabled in radix application")
	ErrExternalAliasCannotBeEmpty                                    = errors.New("external alias cannot be empty")
	ErrExternalAliasEnvironmentNotDefined                            = errors.New("environment for external alias is not defined in radix application")
	ErrExternalAliasComponentNotDefined                              = errors.New("component for external alias is not defined or not enabled in radix application")
	ErrExternalAliasComponentNotMarkedAsPublic                       = errors.New("component for external alias is not marked as public")
	ErrRequestedResourceExceedsLimit                                 = errors.New("requested resource exceeds defined limit")
	ErrPublicPortNotFound                                            = errors.New("public port not found in component ports")
	ErrMonitoringNamedPortNotFound                                   = errors.New("monitoring named port not found in component ports")
	ErrMonitoringNoPortsDefined                                      = errors.New("no ports defined for component with monitoring enabled")
	ErrOAuthClientIdEmpty                                            = errors.New("oauth2 clientId cannot be empty")
	ErrOAuthRequiresPublicPort                                       = errors.New("oauth2 requires component to have a public port")
	ErrOAuthProxyPrefixEmpty                                         = errors.New("oauth2 proxyPrefix cannot be empty")
	ErrOAuthProxyPrefixIsRoot                                        = errors.New("oauth2 proxyPrefix cannot be root path '/'")
	ErrOAuthSessionStoreTypeInvalid                                  = errors.New("oauth2 sessionStoreType is invalid")
	ErrOAuthRedisStoreEmpty                                          = errors.New("oauth2 redisStore cannot be empty when sessionStoreType is redis")
	ErrOAuthRedisStoreConnectionURLEmpty                             = errors.New("oauth2 redisStore connectionURL cannot be empty")
	ErrOAuthOidcEmpty                                                = errors.New("oauth2 oidc configuration cannot be empty")
	ErrOAuthOidcSkipDiscoveryEmpty                                   = errors.New("oauth2 oidc skipDiscovery cannot be empty")
	ErrOAuthOidcJwksUrlEmpty                                         = errors.New("oauth2 oidc jwksUrl cannot be empty when skipDiscovery is true")
	ErrOAuthLoginUrlEmpty                                            = errors.New("oauth2 loginUrl cannot be empty when oidc skipDiscovery is true")
	ErrOAuthRedeemUrlEmpty                                           = errors.New("oauth2 redeemUrl cannot be empty when oidc skipDiscovery is true")
	ErrOAuthCookieEmpty                                              = errors.New("oauth2 cookie configuration cannot be empty")
	ErrOAuthCookieNameEmpty                                          = errors.New("oauth2 cookie name cannot be empty")
	ErrOAuthCookieSameSiteInvalid                                    = errors.New("oauth2 cookie sameSite is invalid")
	ErrOAuthCookieExpireInvalid                                      = errors.New("oauth2 cookie expire is invalid or negative")
	ErrOAuthCookieRefreshInvalid                                     = errors.New("oauth2 cookie refresh is invalid or negative")
	ErrOAuthCookieRefreshMustBeLessThanExpire                        = errors.New("oauth2 cookie refresh must be less than expire")
	ErrOAuthCookieStoreMinimalIncorrectCookieRefreshInterval         = errors.New("oauth2 cookie refresh must be 0 when cookieStore minimal is true")
	ErrOAuthCookieStoreMinimalIncorrectSetXAuthRequestHeaders        = errors.New("oauth2 setXAuthRequestHeaders must be false when cookieStore minimal is true")
	ErrOAuthCookieStoreMinimalIncorrectSetAuthorizationHeader        = errors.New("oauth2 setAuthorizationHeader must be false when cookieStore minimal is true")
	ErrOAuthSkipAuthRoutesInvalid                                    = errors.New("oauth2 skipAuthRoutes contains invalid route")
	ErrInvalidVerificationType                                       = errors.New("invalid verification type")
	ErrRuntimeArchitectureWithNodeType                               = errors.New("runtime architecture cannot be set when nodeType is set")
	ErrInvalidHealthCheckProbe                                       = errors.New("healthcheck probe configuration error, only one action allowed")
	ErrSuccessThresholdMustBeOne                                     = errors.New("healthcheck success threshold must be equal to one")
	ErrEnvironmentReferencedByComponentDoesNotExist                  = errors.New("environment referenced by component is not defined in spec.environments")
	ErrInvalidNumberOfReplicas                                       = errors.New("number of replicas is invalid, must be positive and less than 64")
	WarnComponentWithDynamicTagRequiresImageTag                      = "component with image tag set on environment config requires dynamic tag on image setting"
	WarnMemoryResourceBelowRecommendedMinimum                        = "memory resource below recommended minimum of 20M"
	ErrMemoryResourceRequirementFormat                               = errors.New("memory resource requirement format")
	ErrCPUResourceRequirementFormat                                  = errors.New("cpu resource requirement format")
	ErrInvalidResourceType                                           = errors.New("invalid resource type")
	ErrInvalidResourceFormat                                         = errors.New("invalid resource format")
	ErrFailurePolicyRuleExitCodeZeroNotAllowedForInOperator          = errors.New("value 0 cannot be used for the In operator")
	WarnPublicImageComponentCannotHaveSourceOrDockerfileSetWithImage = "job or component cannot have 'src' or 'Dockerfile' set when image is defined"
	WarnDeprecatedFieldPublicUsed                                    = "deprecated: instead of using spec.components.public: true, set publicPort to name of port"
	ErrSchedulerPortCannotBeEmptyForJob                              = errors.New("scheduler port cannot be empty for job")
	ErrPayloadPathCannotBeEmptyForJob                                = errors.New("payload path cannot be empty for job")
	ErrSecretNameConflictsWithVariable                               = errors.New("secret name conflicts with variable")
	ErrMissingAzureIdentityForAzureKeyVault                          = errors.New("missing Azure identity for Azure Key vault with useAzureIdentity enabled")
	ErrDuplicateEnvVarName                                           = errors.New("duplicate environment variable name in Azure Key vault secret references")
	ErrDuplicateAlias                                                = errors.New("duplicate alias in Azure Key vault secret references")
	ErrSecretRefEnvVarNameConflictsWithEnvironmentVariable           = errors.New("secret reference environment variable name conflicts with environment variable")
	ErrDuplicatePathForAzureKeyVault                                 = errors.New("duplicate path for Azure Key vault")
	ErrInvalidEnvironmentNameLength                                  = errors.New("combined app-name and environment name length must be between 2 and 62 characters")
	ErrEnvironmentNameIsNotAvailable                                 = errors.New("environment name is not available. it is already in use or conflicts with reserved namespace")
	ErrEgressRuleMustContainAtLeastOneDestination                    = errors.New("egress rule must contain at least one destination")
	ErrEgressRulePortOutOfRange                                      = errors.New("egress rule port must be equal to or greater than 1 and lower than or equal to 65535")
	ErrInvalidEgressPortProtocol                                     = errors.New("invalid egress port protocol")
	ErrNotValidCidr                                                  = errors.New("not a valid CIDR")
	ErrNotValidIPv4Cidr                                              = errors.New("not a valid IPv4 CIDR")
	ErrEgressRulesExceedMaxNumber                                    = errors.New("number of egress rules exceeds maximum allowed")
	ErrVariableNameCannotStartWithReservedPrefix                     = errors.New("variable name cannot start with reserved prefix RADIX_ or RADIXOPERATOR_")
	ErrVariableNameCannotContainIllegalCharacters                    = errors.New("variable name cannot contain illegal characters")
	ErrVariableNameCannotExceedMaxLength                             = errors.New("variable name cannot exceed maximum length of 253 characters")
	ErrBranchFromTooLong                                             = errors.New("branch from exceeds maximum length of 253 characters")
	ErrInvalidBranchName                                             = errors.New("invalid branch name pattern")

	ErrInvalidWebhookUrl                   = errors.New("invalid webhook URL")
	ErrNotAllowedSchemeInWebhookUrl        = errors.New("webhook URL scheme not allowed, must be http or https")
	ErrMissingPortInWebhookUrl             = errors.New("webhook URL must include a port")
	ErrOnlyAppComponentAllowedInWebhookUrl = errors.New("webhook URL hostname must reference a component defined in the application")
	ErrInvalidPortInWebhookUrl             = errors.New("webhook URL port does not match any port defined in the target component")
	ErrInvalidUseOfPublicPortInWebhookUrl  = errors.New("webhook URL cannot use the public port of the target component")

	ErrNoDefinitionInTrigger                                       = errors.New("no definition in trigger")
	ErrMoreThanOneDefinitionInTrigger                              = errors.New("each trigger must contain only one definition")
	ErrInvalidTriggerDefinition                                    = errors.New("invalid trigger definition")
	ErrDuplicateTriggerName                                        = errors.New("duplicate trigger name")
	ErrInvalidMinimumReplicasConfigurationWithMemoryAndCPUTriggers = errors.New("invalid minimum replicas configured. Minimum 1 replica required when configuring only CPU and/or memory triggers")
	ErrCombiningTriggersWithResourcesIsIllegal                     = errors.New("combining triggers with resources is invalid")
	ErrMaxReplicasForHPANotSetOrZero                               = errors.New("max replicas for hpa not set or zero")
	ErrMinReplicasGreaterThanMaxReplicas                           = errors.New("min replicas greater than max replicas")

	ErrVolumeMountMissingType                               = errors.New("no types defined")
	ErrVolumeMountInvalidType                               = errors.New("invalid type")
	ErrVolumeMountMultipleTypes                             = errors.New("multiple types defined")
	ErrVolumeMountMissingName                               = errors.New("name not set")
	ErrVolumeMountDuplicateName                             = errors.New("duplicate name")
	ErrVolumeMountMissingPath                               = errors.New("path not set")
	ErrVolumeMountDuplicatePath                             = errors.New("duplicate path")
	ErrVolumeMountMissingStorage                            = errors.New("storage not set")
	ErrVolumeMountMissingContainer                          = errors.New("container not set")
	ErrVolumeMountInvalidProtocol                           = errors.New("invalid protocol")
	ErrVolumeMountInvalidStorageAccount                     = errors.New("storage account is invalid")
	ErrVolumeMountMissingAzureIdentity                      = errors.New("missing component Azure identity")
	ErrVolumeMountMissingSizeLimit                          = errors.New("sizeLimit is not set")
	ErrVolumeMountWithUseAzureIdentityMissingSubscriptionId = errors.New("missing subscription Id")
	ErrVolumeMountWithUseAzureIdentityMissingStorageAccount = errors.New("missing storage account")
	ErrVolumeMountWithUseAzureIdentityMissingResourceGroup  = errors.New("missing resource group")
	ErrInvalidBlobFuse2BlockCachePrefetchCount              = errors.New("prefetchCount must be 0 or greater than 10")
	WarnDeprecatedFieldVolumeMountTypeUsed                  = "deprecated: field 'type' in volumeMount is deprecated. Use BlobFuse2 volume mount type instead."
)

Functions

This section is empty.

Types

type Validator

type Validator struct {
	// contains filtered or unexported fields
}

func CreateOfflineValidator

func CreateOfflineValidator() Validator

func CreateOnlineValidator

func CreateOnlineValidator(client client.Client, reservedDNSAliases []string, reservedDNSAppAliases map[string]string) *Validator

func (*Validator) Validate

func (validator *Validator) Validate(ctx context.Context, ra *radixv1.RadixApplication) (admission.Warnings, error)

Jump to

Keyboard shortcuts

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