Preliminary version. The functionality may change, but the basic features will be preserved. Compatibility with future versions is ensured, but may require additional migration actions.
CodeInstance
Scope: Cluster
Version: v1
-
apiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
kindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata
-
specCodeInstanceSpec defines the desired state of the CodeInstance.
-
spec.appConfigAppConfig defines application-specific configurations.
Default:
{}
-
spec.appConfig.contentSecurityPolicyContent Security Policy (CSP) settings for prevent XSS attack
Default:
{}
-
spec.appConfig.contentSecurityPolicy.directivesContent Security Policy directives
Default:
{}
-
spec.appConfig.contentSecurityPolicy.directives.child_src
-
spec.appConfig.contentSecurityPolicy.directives.connect_src
-
spec.appConfig.contentSecurityPolicy.directives.default_src
-
spec.appConfig.contentSecurityPolicy.directives.font_src
-
spec.appConfig.contentSecurityPolicy.directives.frame_ancestors
-
spec.appConfig.contentSecurityPolicy.directives.frame_src
-
spec.appConfig.contentSecurityPolicy.directives.img_src
-
spec.appConfig.contentSecurityPolicy.directives.media_src
-
spec.appConfig.contentSecurityPolicy.directives.object_src
-
spec.appConfig.contentSecurityPolicy.directives.script_src
-
spec.appConfig.contentSecurityPolicy.directives.style_src
-
-
spec.appConfig.contentSecurityPolicy.enabledEnable Content Security Policy
Default:
true
-
spec.appConfig.contentSecurityPolicy.reportOnlyEnable Content Security Policy in report-only mode
Default:
false
-
-
spec.appConfig.cronJobsPeriodically executed jobs, to self-heal GitLab, do external synchronizations, etc.
Default:
{}
-
spec.appConfig.customHtmlHeaderTagsOption to add some header tags for scripts and stylesheets
Default:
-
spec.appConfig.defaultColorModeDefault color mode for GitLab UI
Default:
Light
Allowed values:
Light
,Dark
,Auto
-
spec.appConfig.ldapSettings for LDAP integration with module
-
spec.appConfig.ldap.preventSigninWhen LDAP web sign in is disabled, users don’t see an LDAP tab on the sign-in page
Default:
false
-
spec.appConfig.ldap.servers
Required value
LDAP servers settings. Refer to documentation for more detailsDefault:
{}
-
-
spec.appConfig.omniauthOmniauth defines OmniAuth configurations.
-
spec.appConfig.omniauth.allowBypassTwoFactorsign in without using two-factor authentication (2FA) with certain OmniAuth provider
Default:
[]
-
spec.appConfig.omniauth.allowSingleSignOnAllowSingleSignOn defines the list of providers that can be used for single sign-on
Default:
[]
-
spec.appConfig.omniauth.autoLinkLdapUserautomatically link OmniAuth users with existing GitLab users if their email addresses match
Default:
false
-
spec.appConfig.omniauth.autoLinkSamlUserautomatically link OmniAuth users with existing GitLab users if their email addresses match
Default:
false
-
spec.appConfig.omniauth.autoLinkUserautomatically link OmniAuth users with existing GitLab users if their email addresses match
Default:
[]
-
spec.appConfig.omniauth.autoSignInWithProviderto redirect login requests to your OmniAuth provider for authentication
-
spec.appConfig.omniauth.blockAutoCreatedUsersPlaces automatically-created users in a pending approval state (unable to sign in) until they are approved by an administrator
Default:
true
-
spec.appConfig.omniauth.enabledEnable OmniAuth
Default:
false
-
spec.appConfig.omniauth.externalProvidersEnables you to define which OmniAuth providers you want to be external, so that all users creating accounts, or signing in through these providers are unable to access internal projects
Default:
[]
-
spec.appConfig.omniauth.providersThe provider names are available in the supported providers list
Default:
[]
-
spec.appConfig.omniauth.providers.args
-
spec.appConfig.omniauth.providers.icon
-
spec.appConfig.omniauth.providers.label
-
spec.appConfig.omniauth.providers.name
Allowed values:
alicloud
,atlassioan_oauth2
,auth0
,cognito
,azute_activedirectory_v2
,bitbucket
,oauth2_generic
,github
,gitlab
,google_oauth2
,jwt
,kerberos
,openid_connect
,salesforce
,saml
,shibboleth
-
-
spec.appConfig.omniauth.syncProfileAttributesList of profile attributes to sync from the provider when signing in
Default:
[ "name", "email" ]
-
spec.appConfig.omniauth.syncProfileFromProviderList of provider names that GitLab should automatically sync profile information from
Default:
[]
-
-
spec.appConfig.rackAttackRackAttack contains basic authentication settings.
-
spec.appConfig.rackAttack.gitlabBasicAuthGitlabBasicAuth defines rate-limiting configurations.
-
spec.appConfig.rackAttack.gitlabBasicAuth.banTime
Allowed values:
0 <= X
-
spec.appConfig.rackAttack.gitlabBasicAuth.findTime
Allowed values:
0 <= X
-
spec.appConfig.rackAttack.gitlabBasicAuth.ipWhitelist
-
spec.appConfig.rackAttack.gitlabBasicAuth.maxRetry
Allowed values:
0 <= X
-
-
-
spec.appConfig.signInEnabledwhether to enable sign-in page or not
Default:
true
-
spec.appConfig.signUpEnabledwhether to enable sign-up for new users or not
Default:
false
-
spec.appConfig.usernameChangingEnabledallow username changes for existing users
Default:
false
-
-
spec.backupBackup defines backup configurations.
Default:
{}
-
spec.backup.backupBeforeUpdateAutomatic backup creation before module update
Default:
false
-
spec.backup.backupStorageGbexpected overall size of backups (tar archive) to tune up underlying storage
Default:
3
Allowed values:
1 <= X
-
spec.backup.cronScheduleCron schedule for automatic backups
Default:
0 0 1 * *
-
spec.backup.enabledEnable automatic backups
Default:
false
-
spec.backup.nodeSelectorkubernetes selector to choose node where to run backup process from (by toolbox)
-
spec.backup.persistentVolumeClaimsection to describe params of persistent k8s storage used during backup and restore
Default:
{}
-
spec.backup.persistentVolumeClaim.enabledwhether to use persistent volumes. Otherwise
emptyDir
will be usedDefault:
false
-
spec.backup.persistentVolumeClaim.storageClasswhether to use specific k8s storageClass for persistence volumes
-
-
spec.backup.restoreFromBackupModeDeprecated
Default:
false
-
spec.backup.s3prarams of remote object storage that will keep your backups
-
spec.backup.s3.bucketNamename of the backet where backups will be stored
Default:
d8-code-backups
-
spec.backup.s3.external
-
spec.backup.s3.external.accessKeyaccess key for the bucket
-
spec.backup.s3.external.endpointendpoint for the bucket
Default:
-
spec.backup.s3.external.provider
Required value
object storage providerAllowed values:
Generic
,YCloud
-
spec.backup.s3.external.regionbucket’s region
Default:
-
spec.backup.s3.external.secretKeysecret key for the bucket
-
-
spec.backup.s3.modewhether to use external object storage or internal one
Default:
External
-
spec.backup.s3.tmpBucketNamename of the temp bucket where backups will be stored before upload
Default:
d8-code-tmp
-
-
spec.backup.skipComponentsList of components to skip during backup
Default:
[ "Artifacts" ]
-
spec.backup.skipComponents.Element of the array
Allowed values:
Db
,Repositories
,Uploads
,Builds
,Artifacts
,Pages
,Lfs
,TerraformState
,Registry
,Packages
,CiSecureFiles
,ExternalDiffs
-
-
spec.backup.tolerationsTolerations for backup pod(toolbox)
Default:
[]
-
spec.backup.tolerations.effect
-
spec.backup.tolerations.key
-
spec.backup.tolerations.operator
-
spec.backup.tolerations.tolerationSeconds
-
spec.backup.tolerations.value
-
-
-
spec.featuresFeatures defines additional feature configurations.
Default:
{}
-
spec.features.mailMail defines configurations for email-related features.
Default:
{}
-
spec.features.mail.incomingEmailMailIncomingEmail defines incoming email configurations for Mail.
Default:
{ "address": "", "enabled": false, "host": "", "password": "", "user": "" }
-
spec.features.mail.incomingEmail.address
Required value
The email address to reference the item being replied to (example - gitlab-incoming+%{key}@gmail.com). Note that the +%{key} suffix should be included in its entirety within the email address and not replaced by another value.Default:
-
spec.features.mail.incomingEmail.enabled
Required value
enable incoming emailDefault:
false
-
spec.features.mail.incomingEmail.host
Required value
Host for IMAPDefault:
imap.gmail.com
-
spec.features.mail.incomingEmail.password
Required value
IMAP passwordDefault:
-
spec.features.mail.incomingEmail.portPort for IMAP
Default:
993
-
spec.features.mail.incomingEmail.serviceDeskEmailMailServiceDeskEmail defines incoming email configurations for Mail.
Default:
{ "address": "", "enabled": false, "host": "", "password": "", "user": "" }
-
spec.features.mail.incomingEmail.serviceDeskEmail.address
Required value
The email address to reference the item being replied to (example - project_contact+%{key}@gmail.com)Default:
-
spec.features.mail.incomingEmail.serviceDeskEmail.enabled
Required value
Enable Service Desk emailDefault:
false
-
spec.features.mail.incomingEmail.serviceDeskEmail.host
Required value
Host for IMAPDefault:
imap.gmail.com
-
spec.features.mail.incomingEmail.serviceDeskEmail.password
Required value
Password for IMAPDefault:
-
spec.features.mail.incomingEmail.serviceDeskEmail.portPort for IMAP
Default:
993
-
spec.features.mail.incomingEmail.serviceDeskEmail.sslWhether IMAP server uses SSL
Default:
true
-
spec.features.mail.incomingEmail.serviceDeskEmail.startTlsWhether IMAP server uses StartTLS
Default:
false
-
spec.features.mail.incomingEmail.serviceDeskEmail.user
Required value
Username for IMAP authenticationDefault:
-
-
spec.features.mail.incomingEmail.sslWhether IMAP server uses SSL
Default:
true
-
spec.features.mail.incomingEmail.startTlsWhether IMAP server uses StartTLS
Default:
false
-
spec.features.mail.incomingEmail.user
Required value
Username for IMAP authenticationDefault:
-
-
spec.features.mail.outgoingEmail
Default:
{ "displayName": "Deckhouse", "from": "no-reply@deckhouse.io", "replyTo": "no-reply@deckhouse.io" }
-
spec.features.mail.outgoingEmail.displayName
Required value
Name that appears as the sender for emails from GitLabDefault:
Deckhouse Code
-
spec.features.mail.outgoingEmail.from
Required value
Email address that appears as the sender for emails from GitLabDefault:
deckhouse.code@example.com
-
spec.features.mail.outgoingEmail.replyTo
Required value
Reply-to email listed in emails from GitLabDefault:
noreply@example.com
-
spec.features.mail.outgoingEmail.smtpMailSMTP defines SMTP-related configurations for Mail.
Default:
{}
-
spec.features.mail.outgoingEmail.smtp.addressHostname or IP of the remote mail server
Default:
smtp.mailgun.org
-
spec.features.mail.outgoingEmail.smtp.authenticationType of SMTP authentication (
Plain
,Login
,CramMd5
, orNone
for no authentication)Allowed values:
None
,Plain
,Login
,CramMd5
-
spec.features.mail.outgoingEmail.smtp.domainOptional HELO domain for SMTP
Default:
-
spec.features.mail.outgoingEmail.smtp.enabledenable outgoing email
Default:
false
-
spec.features.mail.outgoingEmail.smtp.opensslVerifyModeTLS verification mode (“None”, “Peer”, “ClientOnce”, or “FailIfNoPeerCert”)
Default:
Peer
Allowed values:
None
,Peer
,ClientOnce
,FailIfNoPeerCert
-
spec.features.mail.outgoingEmail.smtp.passwordSMTP password
Default:
-
spec.features.mail.outgoingEmail.smtp.portPort for SMTP
Default:
2525
-
spec.features.mail.outgoingEmail.smtp.starttlsAutoUse STARTTLS if enabled on the mail server
Default:
false
-
spec.features.mail.outgoingEmail.smtp.tlsEnables SMTP/TLS (SMTPS - SMTP over direct TLS connection)
Default:
false
-
spec.features.mail.outgoingEmail.smtp.usernameUsername for SMTP authentication https
Default:
-
-
spec.features.mail.outgoingEmail.subjectSuffixSuffix on the subject of all outgoing email from GitLab
Default:
-
-
-
spec.features.pagesPages defines configurations for GitLab Pages.
Default:
{}
-
spec.features.pages.enabledwhether to enable GitLab Pages component
Default:
false
-
spec.features.pages.s3StorageS3 defines S3 storage configurations.
-
spec.features.pages.s3.bucketPrefixprefix for bucket name
Default:
d8-code
-
spec.features.pages.s3.externalS3External defines external S3 storage settings.
-
spec.features.pages.s3.external.accessKeyaccess key for the bucket
-
spec.features.pages.s3.external.endpointbucket endpoint
Default:
-
spec.features.pages.s3.external.provider
Required value
bucket provider nameAllowed values:
Generic
,YCloud
-
spec.features.pages.s3.external.regionbucket region
Default:
-
spec.features.pages.s3.external.secretKeybucket secret key
-
spec.features.pages.s3.external.storageOptions
Default:
{}
-
spec.features.pages.s3.external.storageOptions.serverSideEncryptionEncryption mode for S3 bucket (
AES256
orAwsKms
)Allowed values:
AES256
,AwsKms
-
spec.features.pages.s3.external.storageOptions.serverSideEncryptionKmsKeyIdAmazon Resource Name. Only needed when
AwsKms
is used inserverSideEncryption
.
-
-
-
spec.features.pages.s3.modewhether to use external or internal object storage for Pages component
Default:
External
Allowed values:
Internal
,External
-
-
-
spec.features.registryRegistry defines configurations for GitLab Registry.
Default:
{}
-
spec.features.registry.enabledwhether registry service enabled or not
Default:
false
-
spec.features.registry.ingressdefines the network-related configurations for registry
Default:
{}
-
spec.features.registry.ingress.annotationsmap of additional annotations to be populated for registry service
-
spec.features.registry.ingress.hostnametop-level prefix for registry hostname
Default:
code.
-
spec.features.registry.ingress.httpsHttpsConfig specifies the HTTPS configuration.
-
spec.features.registry.ingress.https.certManagerCertManager contains CertManager-related parameters.
-
spec.features.registry.ingress.https.certManager.clusterIssuerNamename of cluster issuer of SSL certificates
Default:
letsencrypt
-
-
spec.features.registry.ingress.https.customCertificateCustomCertificate contains parameters for custom certificate usage.
-
spec.features.registry.ingress.https.customCertificate.secretNamename of secret where custom certificate is stored
-
-
spec.features.registry.ingress.https.mode
Default:
CertManager
Allowed values:
CertManager
,CustomCertificate
,Global
-
-
-
spec.features.registry.maintenanceRegistryMaintenance defines maintenance-related configurations for Registry.
Default:
{}
-
spec.features.registry.maintenance.readOnlyReadOnlyMaintenance enables or disables read-only mode.
Default:
{}
-
spec.features.registry.maintenance.readOnly.enabledEnable read-only mode for registry for maintenance purposes
Default:
false
-
-
spec.features.registry.maintenance.uploadPurgingUploadPurging defines configurations for purging uploads.
Default:
{}
-
spec.features.registry.maintenance.uploadPurging.ageage thresholds for artifacts to be deleted. Measured in hours
Default:
168h
-
spec.features.registry.maintenance.uploadPurging.dryrunwhether to use in test / dry-run mode or not
Default:
false
-
spec.features.registry.maintenance.uploadPurging.enabledwhether to enable uploadPurging or not. Disabled while in readOnly mode
Default:
true
-
spec.features.registry.maintenance.uploadPurging.intervalinterval of run
Default:
24h
-
-
-
spec.features.registry.s3StorageS3 defines S3 storage configurations.
Default:
{}
-
spec.features.registry.s3.bucketNamename of registry’s bucket
Default:
d8-code-registry
-
spec.features.registry.s3.external
-
spec.features.registry.s3.external.accessKeyaccess key for the bucket
-
spec.features.registry.s3.external.endpointbucket endpoint
Default:
-
spec.features.registry.s3.external.provider
Required value
s3 storage provider nameAllowed values:
Generic
,YCloud
-
spec.features.registry.s3.external.regionbucket region
Default:
-
spec.features.registry.s3.external.secretKeysecret key for the bucket
-
-
spec.features.registry.s3.modewhether use external or internal object storage for Registry component
Default:
External
Allowed values:
Internal
,External
-
-
-
-
spec.gitDataGitData defines Git-related data configurations.
-
spec.gitData.resourcesResourceList is a set of (resource name, quantity) pairs.
-
spec.gitData.storageClasskubernetes storageClass to be used for persistence volumes
-
spec.gitData.storagePerReplicaGbsize of all your git data. Needed to calculate size of Volumes for each replica
Default:
1
Allowed values:
1 <= X
-
-
spec.networkNetworkSettings contains the network-related configurations.
Default:
{}
-
spec.network.gitSshGitSshConfig contains SSH-related configurations.
-
spec.network.gitSsh.hostnameDefine hostname where Git SSH will be available. If prefix is stated, it defaults to cluster domain template. Set it to
'
to inherit UI hostname. Be sure that Ingress Nginx controller and SSH Service share same IP address.Default:
code-ssh.
-
spec.network.gitSsh.serviceGitSshService specifies the service type for Git SSH.
-
spec.network.gitSsh.service.annotationsmap of additional annotations to be populated for shell deployment
-
spec.network.gitSsh.service.nodePortnodePort used to expose your service. Applicable only for service.type=NodePort
Default:
32022
Allowed values:
1024 <= X <= 65535
-
spec.network.gitSsh.service.typetype of kubernetes service for exposing your shell component. For singleNode cluster nodePort is reasonable, otherwise LoadBalancer is recommended
Allowed values:
LoadBalancer
,NodePort
,ClusterIP
-
-
-
spec.network.ingressClassIngress class to use in module. If empty defaults to deckhouse global ingress class
Default:
-
spec.network.useOwnLoadBalancerIf true define one LoadBalance service for both Git SSH and UI.
Default:
false
-
spec.network.webWebConfig defines the web-related configurations.
-
spec.network.web.annotationsmap of additional annotations to be populated for webservice deployment
-
spec.network.web.hostnameDefine hostname where UI will be available. If prefix is stated, it defaults to cluster domain template Warning! Be sure that https mode and TLS certificate are valid for given hostname
Default:
code.
-
spec.network.web.httpsHttpsConfig specifies the HTTPS configuration.
-
spec.network.web.https.certManagerCertManager contains CertManager-related parameters.
-
spec.network.web.https.certManager.clusterIssuerNamename of the clusterIssuer to be used for certificate generations
Default:
letsencrypt
-
-
spec.network.web.https.customCertificateCustomCertificate contains parameters for custom certificate usage
-
spec.network.web.https.customCertificate.secretNamename of secret where custom certificate is tored
-
-
spec.network.web.https.modeway you store/issue certificate. Might be custom/certManager/global
Default:
CertManager
Allowed values:
CertManager
,CustomCertificate
,Global
-
-
-
-
spec.scalingscaling-related configurations
Default:
{}
-
spec.scaling.highAvailabilitySwitch to enable the high availability mode.
Default:
false
-
spec.scaling.targetUserCounthow many users are expecte to use the app
Default:
100
Allowed values:
10
,100
,300
,500
,1000
-
-
spec.storages
Required value
Storages defines the storage-related configurations.-
spec.storages.postgres
Required value
StoragePostgres defines Postgres database configurations.-
spec.storages.postgres.externalPostgresExternal defines external Postgres settings.
-
spec.storages.postgres.external.database
Required value
name of the main database -
spec.storages.postgres.external.host
Required value
FQDN address of database serverDefault:
localhost
-
spec.storages.postgres.external.passwordpassword for main database
-
spec.storages.postgres.external.portport of the database server
Default:
5432
-
spec.storages.postgres.external.praefectDatabasename of the praefect database
Default:
-
spec.storages.postgres.external.praefectPasswordpassword for praefect database
-
spec.storages.postgres.external.praefectUsernameusername for praefect database
Default:
postgres
-
spec.storages.postgres.external.sslModeSSL mode priority for database connection
Allowed values:
disabled
,allow
,prefer
,require
,verify-ca
,verify-full
-
spec.storages.postgres.external.username
Required value
username for main databaseDefault:
postgres
-
-
spec.storages.postgres.modewhether to use external database or internal one
Allowed values:
Internal
,External
-
-
spec.storages.redis
Required value
StorageRedis defines Redis configurations.-
spec.storages.redis.externalRedisExternal defines external Redis settings.
-
spec.storages.redis.external.auth
Required value
RedisAuth defines authentication settings for Redis.-
spec.storages.redis.external.auth.enabled
Required value
redis auth enabledDefault:
false
-
spec.storages.redis.external.auth.passwordredis auth password
-
spec.storages.redis.external.auth.usernameredis auth username
-
-
spec.storages.redis.external.hostFQDN address of redis server
Default:
-
spec.storages.redis.external.masterNamename of the master node in case of sentinel
-
spec.storages.redis.external.portredis server port
Default:
6379
-
spec.storages.redis.external.schemeredis connection scheme
Default:
redis
Allowed values:
redis
,rediss
,tcp
-
spec.storages.redis.external.sentinels
-
spec.storages.redis.external.sentinels.host
-
spec.storages.redis.external.sentinels.port
-
-
spec.storages.redis.external.serverCACA certificate for redis server
-
-
spec.storages.redis.mode
Required value
whether to use external redis or internal oneAllowed values:
Internal
,External
-
-
spec.storages.s3
Required value
defines S3 storage configurations.-
spec.storages.s3.bucketNamesS3BucketNames defines bucket naming conventions for S3 storage
Default:
{}
-
spec.storages.s3.bucketNames.artifactsname of the bucket for artifacts
Default:
d8-code-artifacts
-
spec.storages.s3.bucketNames.ciSecureFilesname of the bucket for ci secure files like CI secrets
Default:
d8-code-ci-secure-files
-
spec.storages.s3.bucketNames.dependencyProxyname of the bucket for dependecy proxy
Default:
d8-code-dependency-proxy
-
spec.storages.s3.bucketNames.externalDiffsname of the bucket for mr diffs
Default:
d8-code-mr-diffs
-
spec.storages.s3.bucketNames.lfsname of the bucket for git-lfs
Default:
d8-code-git-lfs
-
spec.storages.s3.bucketNames.packagesname of the bucket for packages
Default:
d8-code-packages
-
spec.storages.s3.bucketNames.terraformStatename of the bucket for terraform states
Default:
d8-code-terraform-state
-
spec.storages.s3.bucketNames.uploadsname of the bucket for uploads
Default:
d8-code-uploads
-
-
spec.storages.s3.externaldefines external S3 storage settings.
-
spec.storages.s3.external.accessKeyaccess key for the bucket
-
spec.storages.s3.external.endpointbucket endpoint
Default:
-
spec.storages.s3.external.provider
Required value
s3 storage provider nameAllowed values:
Generic
,YCloud
-
spec.storages.s3.external.proxyDownloadOption allows to reduce egress traffic as this allows clients to download directly from remote storage instead of proxying all data
Default:
true
-
spec.storages.s3.external.regionbucket region
Default:
-
spec.storages.s3.external.secretKeysecret key for the bucket
-
spec.storages.s3.external.storageOptions
Default:
{}
-
spec.storages.s3.external.storageOptions.serverSideEncryptionEncryption mode for S3 bucket (
AES256
orAwsKms
)Allowed values:
AES256
,AwsKms
-
spec.storages.s3.external.storageOptions.serverSideEncryptionKmsKeyIdAmazon Resource Name. Only needed when
AwsKms
is used inserverSideEncryption
.
-
-
-
spec.storages.s3.mode
Default:
External
Allowed values:
Internal
,External
-
-
-