Skip to main content
Version: 1.15.0

Slice Configuration Parameters

This topic describes the parameters required to create a slice across the registered worker cluster.

Slice Configuration Parameters

The following tables describe the configuration parameters used to create a slice with registered worker clusters.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceConfig.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Slice Metadata Parameters

These parameters are related to the metadata configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the slice you create. Each slice must have a unique name within a Project namespace.Mandatory
namespaceStringThe project namespace on which you apply the slice configuration file.Mandatory

Slice Spec Parameters

These parameters are related to the spec configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
sliceSubnetString (IP/16 Subnet) (RFC 1918 addresses)This subnet is used to assign IP addresses to pods that connect to the slice overlay network. The CIDR range can be re-used for each slice or can be modified as required. Example: 192.168.0.0/16Mandatory
maxClustersIntegerThe maximum number of clusters that are allowed to connect a slice. The value of maxClusters can only be set during the slice creation. The maxClusters value is immutable after the slice creation. The minimum value is 2, and the maximum value is 32. The default value is 16. Example: 5. The maxClusters affect the subnetting across the clusters. For example, if the slice subnet is 10.1.0.0/16 and the maxClusters=16, then each cluster would get a subnet of 10.1.x.0/20, x=0,16,32.Optional
sliceTypeStringDenotes the type of the slice. The value must be set to Application.Mandatory
overlayNetworkDeploymentModeStringThis parameter is to set the overlay network deployment mode to multi-network. The default value is single-network. This parameter value becomes immutable after it is set. If this parameter is not passed, then a single-network slice is created. A single-network slice contains flat overlay network, and the pod-to-pod connectivity is at L3. A multi-network slice contains the pod-to-pod connectivity across clusters that is set up through a network of L7 ingress and egress gateways. A multi-network slice only supports HTTP and HTTPs protocols where as a single network-slice supports HTTP, HTTPs, TCP, and UDP protocols. To know more, refer to the slice overlay network deployment mode.Optional
sliceGatewayProviderObjectIt is the type of slice gateway created for inter cluster communication.Mandatory
sliceIpamTypeStringIt is the type of the IP address management for the slice subnet. The value must be always set to Local.Mandatory
rotationIntervalIntegerThe duration in which SliceGateway certificates are periodically renewed or rotated to ensure security and compliance. The default interval is 30 days and the supported range is 30 to 90 days.Optional
renewBeforeTimeThe time period before the expiration of SliceGateway certificates during which the renewal process is initiated. It represents the duration prior to certificate expiration when the renewal process is triggered to ensure seamless continuation of secure communication. By setting an appropriate value for renewBefore, certificates can be renewed ahead of time, allowing for any necessary updates or adjustments to be completed before the current certificates expire. This parameter helps avoid potential disruptions by ensuring the availability of valid certificates without waiting until the last moment. If you want to renew it now, provide the current Timestamp. Warning: Do not set this parameter during slice creation.Optional
vpnConfigObjectThe Slice VPN Gateway is a slice network service component that provides a secure VPN tunnel between multiple clusters that are a part of the slice configuration.Optional
clustersList of StringsThe names of the worker clusters that would be part of the slice. You can provide the list of worker clusters.Mandatory
qosProfileDetailsObjectQoS profile for the slice inter cluster traffic.Mandatory
namespaceIsolationProfileObjectIt is the configuration to onboard namespaces and/or isolate namespaces with the network policy.Mandatory
externalGatewayConfigObjectIt is the slice ingress/egress gateway configuration. It is an optional configuration.Optional

Slice Gateway Provider Parameters

These parameters are related to the slice gateway created for the inter-cluster communication and they are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
sliceGatewayTypeStringThe slice gateway type for inter cluster communication. The value must be OpenVPN.Mandatory
sliceCaTypeStringThe slice gateway certificate authority type that provides certificates to secure inter-cluster traffic. The value must be always set to Local.Mandatory
SliceGatewayServiceTypeObjectThe type of gateway connectivity to use on a cluster. The default value is NodePort.Optional

Slice Gateway Service Type Parameters

These parameters are related to the slice gateway service type parameters that provides an option to use the external Load Balancer. The user can add the slice gateway type and protocol for each cluster.

ParameterParameterDescriptionRequired
clusterStringThe name of the worker cluster for which the user configures slice gateway connectivity. This field supports wildcard entries. To configure the slice gateway connectivity for all clusters connected to the slice, specify *(asterisk) as the parameter's value.Mandatory
typeStringIt defines the type of inter-cluster connectivity in KubeSlice. It has two options: NodePort and LoadBalancer. The default value is NodePort. The type value set to LoadBalancer is immutable after the slice creation.Optional
protocolStringIt defines the protocol for gateway configuration. It has two options: TCP and UDP. The default value is UDP. The protocol is immutable after the slice creation.Optional

OpenVPN Configuration

This parameter is related to the open VPN certificate generation and is configured in the slice configuration YAML file.

ParameterParameter TypeParameter DescriptionRequired
cipherAlphanumericThis is the type of cipher used to generate the open VPN certificates. The value can be set to AES_128_CBC. The default value is AES_256_CBC.This parameter is provided as part of the slice configuration during creation. This configuration is immutable during the lifetime of the slice.OptionalOptional

QOS Profile Parameters

These parameters are related to the QoS profile for the slice inter-cluster traffic configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
queueTypeStringIt is the slice traffic control queue type. The value must be Hierarchical Token Bucket (HTB). HTB facilitates guaranteed bandwidth for the slice traffic.Mandatory
priorityIntegerQoS profiles allows traffic management within a slice as well as prioritization across slices. The value range is 0-3. Integer 0 represents the lowest priority and integer 3 represents the highest priority.Mandatory
tcTypeStringIt is the traffic control type. The value must be BANDWIDTH_CONTROL.Mandatory
bandwidthCeilingKbpsIntegerThe maximum bandwidth in Kbps that is allowed for the slice traffic.Mandatory
bandwidthGuaranteedKbpsIntegerThe guaranteed bandwidth in Kbps for the slice traffic.Mandatory
dscpClassAlphanumericDSCP marking code for the slice inter-cluster traffic.Mandatory

Namespace Isolation Profile Parameters

These parameters are related to onboarding namespaces, isolating the slice, and allowing external namespaces to communicate with the slice. They are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
applicationNamespacesArray objectDefines the namespaces that will be onboarded to the slice and their corresponding worker clusters.Mandatory
allowedNamespacesArray objectContains the list of namespaces from which the traffic flow is allowed to the slice. By default, native Kubernetes namespaces such as kube-system are allowed. If isolationEnabled is set to true, then you must include namespaces that you want to allow traffic from.Optional
isolationEnabledBooleanDefines if the namespace isolation is enabled. By default, it is set to false. The isolation policy only applies to the traffic from the application and allowed namespaces to the same slice.Optional

Application Namespaces Parameters

These parameters are related to onboarding namespaces onto a slice, which are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
namespaceStringThe namespace that you want to onboard to the slice. These namespaces can be isolated using the namespace isolation feature.Mandatory
clustersList of StringsCorresponding cluster names for the namespaces listed above. To onboard the namespace on all clusters, specify the asterisk * as this parameter's value.Mandatory

Allowed Namespaces Parameters

These parameters are related to allowing external namespaces to communicated with the slice, which are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
namespaceStringsList of external namespaces that are not a part of the slice from which traffic is allowed into the slice.Optional
clustersList of StringsCorresponding cluster names for the namespaces listed above. To onboard the namespace on all clusters, specify the asterisk * as this parameter's value.Optional

External Gateway Configuration Parameters

These parameters are related to external gateways, which are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
ingressBooleanTo use the ingress gateway for East-West traffic on your slice, set the value to true.Optional
egressBooleanTo use the egress gateway for East-West traffic on your slice, set the value to true.Optional
gatewayTypeStringThe type of ingress/egress gateways that need to be provisioned for the slice. It can be none, envoy, or istio. If set to envoy, cloud services access gateway is enabled. If set to istio, the ingress gateway is created for a slice when ingress is enabled. - The egress gateway is created for a slice when egress is enabled. If set to istio, and ingress and egress are set to false then Istio gateways are not created.Mandatory
clustersList of StringsNames of the clusters to which the externalGateway configuration should be applied.Optional
vpcServiceAccessObjectThis object contains configuration options to set up an access gateway to a cloud managed service on a worker cluster.Mandatory and required only if you are onboarding a cloud-based service onto a slice.

VPC Service Access Paramters

ParameterParameter TypeDescriptionRequired
egressBooleanTo set up an egress gateway on a worker-cluster to access a cloud managed service in the VPC, set this parameter value to true.Mandatory

Service Export Configuration Parameters

The following tables describe the configuration parameters used to create Service Export.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be networking.kubeslice.io/v1beta1.Mandatory
kindStringThe name of a particular object schema. The value must be ServiceExport.Mandatory
metadataObjectThe metadatadescribes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

ServiceExport Metadata Parameters

These parameters are related to metadata for exporting a service, which are configured in the ServiceExport YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the service export.Mandatory
namespaceStringThe application namespace.Mandatory

ServiceExport Spec Parameters

These parameters are related to the exporting service specification configured in the ServiceExport YAML file.

ParameterParameter TypeDescriptionRequired
sliceStringThe name of the slice on which the service should be exported.Mandatory
aliasesString ArrayOne or more aliases can be provided for the service being exported from a worker cluster. This parameter is required when the exported services have arbitrary names instead of the slice.local name.Optional
selectorObjectThe labels used to select the endpoints.Mandatory
portObjectThe details of the port for the service.Mandatory

Service Selector Parameters

These parameters are related to the labels for selecting the endpoints in a service export, which are configured in the ServiceExport YAML file.

ParameterParameter TypeDescriptionRequired
matchLabelsMapThe labels used to select the endpoints.Mandatory

Service Ports Parameters

These parameters contains the details of the port for the export service, which are configured in the ServiceExport YAML file.

ParameterParameter TypeDescriptionRequired
nameStringIt is a unique identifier for the port. It must be prefixed with http for HTTP services or tcp for TCP services.Mandatory
containerPortIntegerThe port number for the service.Mandatory
ProtocolStringThe protocol type for the service. For example: TCP.Mandatory
serviceProtocolStringThis is the application protocol the service is based on. The supported values are HTTP or HTTPS. By default, the service protocol is assumed to be HTTP. This parameter is relevant only for slices with overlayNetworkDeploymentMode set to multi-network.Optional
servicePortStringThis is the application port number of the service. This parameter is mandatory only when the slice's overlayNetworkDeploymentMode is set to multi-network.Only mandatory for a multi-network slice

No-Network Slice Configuration Parameters

The following tables describe the configuration parameters used to create a no-network slice with registered worker clusters.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceConfig.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Slice Metadata Parameters

These parameters are related to the metadata configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the slice you create. Each slice must have a unique name within a Project namespace.Mandatory
namespaceStringThe project namespace on which you apply the slice configuration file.Mandatory

Slice Spec Parameters

These parameters are related to the spec configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
sliceSubnetString (IP/16 Subnet) (RFC 1918 addresses)This subnet is used to assign IP addresses to pods that connect to the slice overlay network. The CIDR range can be re-used for each slice or can be modified as required. Example: 192.168.0.0/16Mandatory
maxClustersIntegerThe maximum number of clusters that are allowed to connect a slice. The value of maxClusters can only be set during the slice creation. The maxClusters value is immutable after the slice creation. The minimum value is 2, and the maximum value is 32. The default value is 16. Example: 5. The maxClusters affect the subnetting across the clusters. For example, if the slice subnet is 10.1.0.0/16 and the maxClusters=16, then each cluster would get a subnet of 10.1.x.0/20, x=0,16,32.Optional
sliceTypeStringDenotes the type of the slice. The value must be set to Application.Mandatory
clustersList of StringsThe names of the worker clusters that would be part of the slice. You can provide the list of worker clusters.Mandatory
overlayNetworkDeploymentModeStringThis parameter is to set the overlay network deployment mode for a slice to single-network, multi-network, or no-network. If this parameter is not passed, then a single-network slice is created. The value is no-network for a slice without inter-cluster connectivity. For A single-network slice contains flat overlay network, and the pod-to-pod connectivity is at L3. A multi-network slice contains the pod-to-pod connectivity across clusters that is set up through a network of L7 ingress and egress gateways. A multi-network slice only supports HTTP and HTTPs protocols where as a single network-slice supports HTTP, HTTPs, TCP, and UDP protocols. A no-network slice does not contain inter-cluster connectivity. To know more, refer to the slice overlay network deployment mode.Optional
namespaceIsolationProfileObjectIt is the configuration to onboard namespaces and/or isolate namespaces with the network policy.Mandatory

Namespace Isolation Profile Parameters

These parameters are related to onboarding namespaces, isolating the slice, and allowing external namespaces to communicate with the slice. They are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
applicationNamespacesArray objectDefines the namespaces that will be onboarded to the slice and their corresponding worker clusters.Mandatory
allowedNamespacesArray objectContains the list of namespaces from which the traffic flow is allowed to the slice. By default, native Kubernetes namespaces such as kube-system are allowed. If isolationEnabled is set to true, then you must include namespaces that you want to allow traffic from.Optional
isolationEnabledBooleanDefines if the namespace isolation is enabled. By default, it is set to false. The isolation policy only applies to the traffic from the application and allowed namespaces to the same slice.Optional

Application Namespaces Parameters

These parameters are related to onboarding namespaces onto a slice, which are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
namespaceStringThe namespace that you want to onboard to the slice. These namespaces can be isolated using the namespace isolation feature.Mandatory
clustersList of StringsCorresponding cluster names for the namespaces listed above. To onboard the namespace on all clusters, specify the asterisk * as this parameter's value.Mandatory

Allowed Namespaces Parameters

These parameters are related to allowing external namespaces to communicated with the slice, which are configured in the slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
namespaceStringsList of external namespaces that are not a part of the slice from which traffic is allowed into the slice.Optional
clustersList of StringsCorresponding cluster names for the namespaces listed above. To onboard the namespace on all clusters, specify the asterisk * as this parameter's value.Optional

Assign Node Label Configuration Parameters

The following tables describe the configuration parameters used to assign node labels in the assign-node-labels YAML file.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceNodeAffinity.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Node Label Metadata Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe name of the node label object for a slice.Mandatory

Node Label Spec Parameters

The following tables describe the configuration spec parameters used to assign node labels in the assign-node-labels YAML file.

ParameterParameter TypeDescriptionRequired
nodeAffinityProfilesObjectThis defines the node affinity profile for the slice.Mandatory

Node Affinity Profile Parameters

ParameterParameter TypeDescriptionRequired
clusterStringThis is the cluster in the slice for which this node affinity rule applies to. If you want to assign node labels to a namespace of all the worker clusters, add an asterisk (*) as the value of this property.Mandatory
nodeAffinityRulesObjectThese rules define the node affinity profile for the slice.Mandatory

Node Affinity Rules Parameters

ParameterParameter TypeDescriptionRequired
namespaceStringThis is the namespace in the slice for which the node affinity rules apply to. If you want to assign node labels to all the namespaces of a worker cluster, add an asterisk (*) as the value of this property.Mandatory
nodeSelectorLabelsObjectThis object defines the label selectors to select nodes for assigning to pods. It contains values, a key, and an operator that relates the key and values.Mandatory

Node Selector Labels Parameters

ParameterParameter TypeDescriptionRequired
keyStringThe label key that the selector applies to.Mandatory
operatorStringThis represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.Mandatory
valuesArray of StringsThis is an array of string values. If the operator is In or NotIn, the values must not be empty. If the operator is Exists or DoesNotExist, the values must be empty. If the operator is Gt or Lt, the values array must have a single value, which will be interpreted as an integer.Mandatory

Resource Quota Configuration Parameters

The following tables describe the configuration parameters used to set quotas in the sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceResourceQuotaConfig.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Resource Quota Metadata Parameters

These parameters are related to setting quotas, which are configured in the sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the slice resource quota.Mandatory

Resource Quota Spec Parameters

These parameters are related to the setting quotas, which are configured in the sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
sliceQuotaObjectIt contains the resources for which the total limits that can be consumed by the namespaces on this slice. The total limits are configured at a slice level.Optional
clusterQuotaObjectIt contains the name of the worker clusters, and the quotas set for the namespaces on a slice.Optional

sliceQuota Parameters

These parameters are related to setting the total number of quotas for a slice, which are configured in the sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
resourcesObjectThe resources contains the limit and request objects that sets limits for CPU, memory, ephemeral storage and pod count (only apply to limits) for all namespaces on a slice.Optional
resources Parameters
ParameterParameter TypeDescriptionRequired
limitObjectIt is the quota object for the limits set for CPU, memory, ephemeral storage, and pod count for all namespaces on a slice.Optional
requestObjectIt is the quota object for the total requests set for CPU, memory, and ephemeral storage for all namespaces on a slice.Optional
defaultRequestPerContainerObjectIt is the quota object for the default requests per container set for CPU, memory, and ephemeral storage for all namespaces on a slice. For a resource type, the default request per container must be less than or equal to the corresponding request.Optional
limit Parameters
ParameterParameter TypeDescriptionRequired
cpuStringIt sets the CPU limit for all namespaces on a slice. Its value is in millicores and it does not accept negative values.Optional
memoryStringIt sets the total memory limit for all namespaces on a slice. Its value is in Mi and it does not accept negative values.Optional
podCountStringIt sets the limit for the total number of application pods on a slice.Optional
ephemeralStorageStringIt sets the total limit for the local ephemeral storage for all namespaces on a slice. Its value is in Mi and it does not accept negative values.Optional
request Parameters
ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the CPU request total for all the namespaces on a slice. Its value is in millicores and it does not accept negative values. The value must be less than or equal to the CPU limit.Optional
memoryStringIt sets the memory request total for all the namespaces on a slice. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the memory limit.Optional
ephemeralStorageStringIt sets the request for the total ephemeral storage for all the namespaces on a slice. The value must be less than or equal to the ephemeral storage limit.Optional
defaultRequestPerContainer Parameters
info

This default request per container value holds good to all namespaces. To override this value, you can set the same parameter under namespaceQuota.

ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the default CPU request per container for all the pods of a namespace. Its value is in millicores and it does not accept negative values. The value must be less than or equal to the CPU request.Optional
memoryStringIt sets the default memory request per container for all the pods of a namespace. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the memory request.Optional
ephemeralStorageStringIt sets the default request for the local ephemeral storage per container for all the pods of a namespace. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the ephemeral storage request.Optional

clusterQuota Parameters

These parameters are related to enforcing the quotas on the namespaces on all the worker clusters connected to a slice. They are configured in the
sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
clusterNameStringIt is the name of the worker cluster that contains the namespaces onboarded onto the slice.Mandatory
namespaceQuotaObjectIt contains the configuration of the resources' limits set for all the application pods in the namespace.Optional

namespaceQuota Parameters

These parameters are related to the quotas enforced for a namespace, which are configured in the sliceResourceQuotaConfig YAML file.

ParameterParameter TypeDescriptionRequired
enforceQuotaBooleanWhen enabled, it enforces the quota limit at the namespace level. The value should be set to true.Mandatory
namespaceStringThe namespace on which you want to enforce the quota.Mandatory
resourcesObjectThe resources contains the limit object that sets limits for CPU, memory, ephemeral storage and pod count (only apply to limits).Optional

resources Parameters under namespaceQuota

ParameterParameter TypeDescriptionRequired
limitObjectIt is the quota object for limits set for CPU, memory, ephemeral storage, and pods count.Optional
requestObjectIt is the quota object for requests set for CPU, memory, and ephemeral storage.Optional
defaultLimitPerContainerObjectIt is the quota object for default limits per container set for CPU, memory, and ephemeral storage of a namespace.Optional
defaultRequestPerContainerObjectIt is the quota object for the default requests per container set for CPU, memory, and ephemeral storage of a namespace.Optional.

limit Parameters under nameSpaceQuota

ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the CPU limit for all the pods of a namespace. Its value is in millicores and it does not accept negative values. The value must be less than less than or equal to the CPU limit set under sliceQuota. If you want to set the CPU limit for more than one namespace, then ensure that the total CPU limit of all the namespaces does not exceed the corresponding CPU limit set under sliceQuota.Optional
memoryStringIt sets the memory limit for all the pods of a namespace. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the memory limit set under sliceQuota. If you want to set the memory limit for more than one namespace, then ensure that the total memory limit of all the namespaces does not exceed the corresponding memory limit set under sliceQuota.Optional
podCountStringIt sets the limit for the total number of application pods that can exist in a namespace. The value must be less than the pod count limit set under sliceQuota. If you want to set the pod count limit for more than one namespace, then ensure that the total pod count limit of all the namespaces does not exceed the corresponding pod count limit set under sliceQuota.Optional
ephemeralStorageStringIt sets the limit for the local ephemeral storage for all the pods of a namespace. Its value is Mi and it does not accept negative values. The value must be less than or equal to the ephemeral storage limit set under sliceQuota. If you want to set the ephemeral storage limit for more than one namespace, then ensure that the total ephemeral storage limit of all the namespaces does not exceed to the corresponding ephemeral storage limit set under sliceQuota.Optional

request Parameters under namespaceQuota

ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the CPU request total for all the pods of the namespace. Its value is in millicores and it does not accept negative values. The value must be less than or equal to the CPU limit set for the namespace. If you want to set the CPU request for more than one namespace, then ensure that the total requests of all the namespaces does not exceed the corresponding request set under sliceQuota.Optional
memoryStringIt sets the memory request total for all the pods of the namespace. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the memory limit set for the namespace. If you want to set the memory request for more than one namespace, then ensure that the total request of all the namespaces does not exceed the corresponding request set under sliceQuota.Optional
ephemeralStorageStringIt sets the request for local ephemeral storage for all pods of the namespace. Its value is in Mi and it does not accept negative values. The value must be less than or equal to the ephemeral storage request set for the namespace. If you want to set the ephemeral storage request for more than one namespace, then ensure that the total requests of all the namespaces does not exceed the corresponding request set under sliceQuota.Optional

defaultLimitPerContainer Parameters under namespaceQuota

ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the default CPU limit per container for all the pods of a namespace. Its value is in millicores and it does not accept negative values. If the CPU limit is configured, then you must set the default CPU limit per container. This value must be less than or equal to the CPU limit set for the namespace.Optional
memoryStringIt sets the default memory limit per container for all the pods of a namespace. Its value is in Mi and it does not accept negative values. If the memory limit is configured, then you must set the default memory limit per container. This value must be less than or equal to the memory limit set for the namespace.Optional
ephemeralStorageStringIt sets the default local ephemeral storage limit per container for all the pods of a namespace. Its value is in Mi and it does not accept negative values. If the ephemeral storage limit is configured, then you must set the default ephemeral storage limit per container. This value must be less than or equal to the ephemeral storage limit set for the namespace.Optional

defaultRequestPerContainer Parameters under namespaceQuota

info

The defaultRequestPerContainer set at the namespace level overrides the corresponding value set under sliceQuota.

ParameterParameter TypeDescriptionRequired
cpuStringIt sets the the default CPU request per container for all the pods of a namespace. Its value is in millicores and it does not accept negative values. If this parameter is not set at the slice level, then you must set it at the namespace level. This value must be less than or equal to the default limit per container and the request set for the namespace.Optional
memoryStringIt sets the default memory request for all the pods of a namespace. Its value is in Mi and it does not accept negative values. If this parameter is not set at the slice level, then you must set it at the namespace level. This value must be less than or equal to the default limit per container and the request set for the namespace.Optional
ephemeralStorageStringIt sets the default ephemeral storage request for all the pods of the namespace. Its value is in Mi and it does not accept negative values. If this parameter is not set at the slice level, then you must set it at the namespace level. This value must be less than or equal to the default limit per container and the request set for the namespace.Optional

Replication Slice Configuration Parameters

The following tables describe the configuration parameters used to create a slice with source and destination worker clusters.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be MigrationSlice.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Replication Slice Metadata Parameters

These parameters are related to the metadata configured in the replication slice configuration YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the slice you create. Each slice must have a unique name within a project namespace.Mandatory
namespaceStringThe project namespace on which you apply the slice configuration file.Mandatory

Replication Slice Spec Parameters

ParameterParameter TypeDescriptionRequired
destinationClusterStringThe name of the worker cluster that you identify as the destination for replicating a namespace. This cluster cannot serve as the destination for the same source in another replication slice. You can specify the source and destination as the same cluster when you want to backup the data and restore it later.Mandatory
sourceClusterStringThe name of the worker cluster that you identify as the source from which a namespace will be replicated. This cluster cannot serve as the source for the same destination in another replication slice. You can specify the source and destination as the same cluster when you want to backup the data and restore it later.Mandatory
minIOBucketNameStringThe name of the MinIO bucket that you want for this replication slice being created. You can create a separate MinIO bucket for each replication slice.Mandatory

Replication Job Configuration Parameters

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be MigrationJobConfig.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
specObjectThe specification of the desired state of an object.Mandatory

Replication Job Metadata Parameters

These parameters are related to the metadata configured in the replication job configuration YAML file.

ParameterParameter TypeDescriptionRequired
nameStringThe name of the replication job you create. Each job must have a unique name within a Project namespace.Mandatory
namespaceStringThe project namespace on which you apply the slice configuration file.Mandatory

Replication Job Spec Parameters

ParameterParameter TypeDescriptionRequired
replicationSliceNameStringThe name of the replication slice for which this job is being created. Each job must have a unique name within a Project namespace.Mandatory
namespaceStringThe name of namespace that you want to replicate from the source cluster to the destination cluster.Mandatory

RBAC Role Configuration parameters

These parameters are related to roles and they are configured in the role configuration YAML file.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceRoleTemplate.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
rulesObjectThis parameter holds information that describes a policy rule. It does not contain information about who the rule applies to or which namespace the rule applies to.Mandatory

Role Metadata Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe name of the role that you define.Mandatory

rules Parameters

These parameters are related to roles and they are configured in the role configuration YAML file.

ParameterParameter TypeDescriptionRequired
apiGroupsString ArrayThe name of the API group that contains the resources. If multiple API groups are specified, an action requested against one of the resources in any API group is allowed. You must not add an asterisk * to represent all API groups. An empty apiGroup represents the core API group.Mandatory
resourcesString ArrayThis contains an array of optional list of names that the rule applies to. An empty set means that all resources are allowed.Mandatory
verbsString ArrayA list of verbs that apply to all the resource types contained in this rule. * represents all verbs that apply to the resource types.Mandatory

RBAC Slice Configuration Parameters

These parameters are related to managing role-based access control (RBAC) for a slice and they are configured in the YAML file for assigning roles to a slice.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1.Mandatory
kindStringThe name of a particular object schema. The value must be SliceRoleBinding.Mandatory
metadataObjectThe metadata describes parameters (names and types) and attributes that have been applied.Mandatory
bindingsObjectThe role assignment parameters of a slice.Mandatory

RBAC for a Slice Metadata Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe name of the role assignment object of a slice. The value must be the name of the slice to which the roles are assigned.Mandatory

Slice Role Assignment Parameters

These parameters are related to managing role-based access control (RBAC) for a slice and they are configured in the YAML file for assigning roles to a slice.

ParameterParameter TypeDescriptionRequired
roleRefObjectThis object contains the parameters that refer to a role.
applyToString Array ObjectThis object contains the resource-parameters for which the above role is applied.

roleRef Parameters

These parameters are related to managing role-based access control (RBAC) for a slice and they are configured in the YAML file for assigning roles to a slice.

ParameterParameter TypeDescriptionRequired
apiVersionStringThe KubeSlice Controller API version. A set of resources that are exposed together, along with the version. The value must be controller.kubeslice.io/v1alpha1 for roles. The value must be rbac.authorization.k8s.io/v1 for Kubernetes (K8s) roles.Mandatory
kindStringThe kind of the role that is being referenced. The value must be Role for a Kubernetes (K8s) role. The value must be SliceRoleTemplate for roles when the API version is controller.kubeslice.io/v1alpha1.Mandatory
nameStringThe name of the role that you assign to the slice and namespaces onboarded onto that slice.Mandatory

applyTo Parameters

These parameters are related to managing role-based access control (RBAC) for a slice and they are configured in the YAML file for assigning roles to a slice.

ParameterParameter TypeDescriptionRequired
namespaceStringThe namespace to which the role is applied. To add more than one namespace, you must create an array for each namespace followed by subjects. You must only add a namespace as the parameter value.Mandatory
subjectsObjectThe name of the resource and schema to which the role is applied. For each namespace, the subjects must be added separately in an array.Mandatory
clusterAlphaNumericThe name of the cluster to which the role is applied.Mandatory
subjects Parameters
ParameterParameter TypeDescriptionRequired
kindStringThe type of the resource for which you assign the role. For example, the kind is a User, ServiceAccount, or a Group.Mandatory
nameStringThe name of the resource to which the role is applied.Mandatory