Help us shape the future of Go! Take the 2026 Go Developer Survey

radixapplication

package
v1.133.0 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2026 License: MIT Imports: 29 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")
	ErrApplicationNameTooLong                                        = errors.New("application name cannot exceed 40 characters")
	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")
	ErrSchedulerPortOrCronRequiredForJob                             = errors.New("job must specify either a schedulerPort or a cron schedule")
	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")
	ErrInvalidHostnameLength                                         = errors.New("hostname length must be between 2 and 63 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_")
	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."

	ErrCronScheduleInvalid    = errors.New("cron schedule format is invalid")
	ErrCronScheduleEmpty      = errors.New("cron schedule must contain at least one entry")
	ErrCronTimeZoneInvalid    = errors.New("cron time zone is invalid")
	ErrCronConcurrencyInvalid = errors.New("cron concurrency policy is invalid")

	ErrMissingConfiguredCertificateAutomationIssuers = errors.New("missing configured certificate automation issuers")
	ErrMissingCertificateAutomationIssuer            = errors.New("certificateAutomation.issuer must be set when useCertificateAutomation is true, as no default issuer is configured for this cluster")
	ErrInvalidCertificateAutomationIssuer            = errors.New("invalid selected certificate automation issuer")
	WarnUnusedCertificateAutomation                  = "unused certificate automation configuration"
)

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, cfg config.Config) *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