The module lifecycle stage: Preview
Available in: EE
Requirements
To the Deckhouse version: 1.72 and above.
Conversions
The module is configured using the ModuleConfig resource, the schema of which contains a version number. When you apply an old version of the ModuleConfig schema in a cluster, automatic transformations are performed. To manually update the ModuleConfig schema version, the following steps must be completed sequentially for each version:
-
Updates from version 1 to 2:
Replace
.gc.skipThresholdwith.gc.timeout.
parameters
Schema version: 2
-
-
objectsettings.gcGarbage collection settings.
-
booleansettings.gc.enabledEnable periodic garbage collection.
Default:
false -
stringsettings.gc.schedule
Сron schedule for the garbage collector. Supports predefined descriptors:
@yearly/@annually=0 0 1 1 *@monthly=0 0 1 * *@weekly=0 0 * * 0@daily=0 0 * * *@hourly=0 * * * *Link for check: https://crontab.guru
Examples:
schedule: 0 20 * * 1schedule: 5 3 * * *schedule: 0 2 * * *schedule: '@daily' -
stringsettings.gc.timeout
Defines the time interval within which the garbage collection task must be completed:
- If the task does not start within the specified interval, its execution is postponed to the next scheduled time.
- If the task runs longer than the specified interval, it is forcibly terminated. To enforce termination, the
timeoutvalue is set in the Kubernetes task under thespec.activeDeadlineSecondsfield.
If this parameter is empty, the time limit is considered disabled (default behavior).
Supported units:
h(hours),m(minutes),s(seconds). The minimum allowable value is 10 minutes.Pattern:
^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$Examples:
timeout: 30mtimeout: 1htimeout: 2h30m
-
-
objectsettings.https
What certificate type to use with the payload registry.
This parameter completely overrides the
global.modules.httpssettings.Examples:
customCertificate: secretName: foobar mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
objectsettings.https.certManager
Default:
{}-
stringsettings.https.certManager.clusterIssuerName
What ClusterIssuer to use for the payload registry.
Currently,
letsencrypt,letsencrypt-staging,selfsignedare available. Also, you can define your own.Default:
letsencrypt
-
-
objectsettings.https.customCertificate
Default:
{}-
stringsettings.https.customCertificate.secretName
The name of the secret in the
d8-systemnamespace to use with the payload registry.This secret must have the kubernetes.io/tls format.
Default:
false
-
-
stringsettings.https.mode
The HTTPS usage mode:
Disabled— in this mode, the payload registry can only be accessed over HTTP. Caution! This mode is not supported. HTTPS is required for the module to function properly. If HTTPS is disabled, the payload registry will be unavailable.CertManager— the payload registry is accessed over HTTPS using a certificate obtained from a clusterIssuer specified in thecertManager.clusterIssuerNameparameter.CustomCertificate— the payload registry is accessed over HTTPS using the certificate from thed8-systemnamespace.OnlyInURI— the payload registry serves HTTP inside the cluster while an external HTTPS load balancer terminates TLS. All links will use the HTTPS scheme. The external load balancer must redirect HTTP to HTTPS.
Allowed values:
Disabled,CertManager,CustomCertificate,OnlyInURI
-
-
objectsettings.persistenceConfiguration parameters for
PersistentVolumeClaimDefault:
{}-
array of stringssettings.persistence.accessModes
Access modes for the
PersistentVolumeClaim. This field is immutable, and to change it, a newPersistentVolumeClaimmust be created.To change the parameter, go to the section “How to create a new PVC?”.
Default:
[ "ReadWriteOnce" ]Examples:
accessModes: - ReadWriteOnceaccessModes: - ReadWriteMany-
stringsettings.persistence.accessModes.Element of the array
Allowed values:
ReadWriteOnce,ReadWriteMany
-
-
stringsettings.persistence.nameThe name of the
PersistentVolumeClaim. Be careful: changing this field will result in the creation of a newPersistentVolumeClaim. The oldPersistentVolumeClaimwill remain in the namespace and must be manually deleted if it is no longer needed.Default:
registryLength:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Examples:
name: registryname: registry-hddname: registry-network-ssd-2 -
stringsettings.persistence.sizeDisk size of the
PersistentVolumeClaim. The minimum allowable value is 1Gi. Specify the desired disk size. You can increase the size later if necessary.Default:
10GiPattern:
^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$Examples:
size: 10Gisize: 1500Mi -
stringsettings.persistence.storageClass
The name of the
StorageClassto be set when initializing thePersistentVolumeClaim. If this field is omitted, theStorageClassof the existingPersistentVolumeClaimwill be used. If there is noPersistentVolumeClaimyet, either the globalStorageClassorglobal.discovery.defaultStorageClasswill be used. This field is immutable, and to change it, a newPersistentVolumeClaimmust be created.To change the parameter, go to the section “How to create a new PVC?”.
Examples:
storageClass: ceph-ssdstorageClass: network-hddstorageClass: network-ssd
-
-
objectsettings.usersConfiguration settings for user authorization within the payload registry.
Default:
{}Examples:
username-1: passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2 projects: - access: FULL name: project-1 subPath: path-* - access: READ name: project-1 subPath: '*' - access: FULL name: project-2 subPath: test/*username-2: passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2-
objectsettings.users.<KEY_NAME>
<KEY_NAME>— item (key) name.-
stringsettings.users.<KEY_NAME>.passwordHash
Required value
The bcrypt hash of the user’s password for payload registry access. To generate a hash, use the following command:
echo -n '${PASSWORD}' | htpasswd -BinC 10 "" | cut -d: -f2 | tr -d '\n'; echo
Example:
passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2 -
array of objectssettings.users.<KEY_NAME>.projects
Default:
[]-
stringsettings.users.<KEY_NAME>.projects.accessDefines the level of access for the specified subPath: READ - permits pull operations. FULL - permits pull and push operations. Full access is granted only if the project namespace exists in Kubernetes. If not, READ access will be used.
Allowed values:
READ,FULL -
stringsettings.users.<KEY_NAME>.projects.nameThe name of the project. For FULL access, the project name must be equivalent to the kubernetes namespace.
Length:
1..63Pattern:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Example:
name: project-1 -
stringsettings.users.<KEY_NAME>.projects.subPathThe specific path or wildcard pattern within the project. The aggregate path is represented as
projectName/subPath.Pattern:
^([^/].*[^/]|[^/])$Examples:
subPath: path/*subPath: path-*subPath: pathsubPath: '*'
-
-
-
-