Configuration Parameters
Introduction
This topic describes the configuration parameters used in creating a configuration or YAML files.
Configuration Tips
- Specify the latest API version while defining the configurations.
- Use only required values to create minimal and simple configurations.
- Use YAML to create your configuration file, instead of JSON.
Controller Configuration Parameters
The following tables describe the configuration parameters used to install the KubeSlice Controller.
KubeSlice Parameters
This parameter contains the configuration object used in the
KubeSlice Controller YAML file.
Parameter | Parameter Type | Description | Required |
---|
controller | Object | The cluster where the KubeSlice Controller is installed. | Mandatory |
Controller Parameters
This object contains the different parameters used in the KubeSlice Controller YAML file.
Parameter | Parameter Type | Description | Required |
---|
loglevel | String | The log level of Controller. The default value is INFO . The other values are DEBUG or ERROR . | Optional |
rbacResourcePrefix | String | The RBAC resource prefix. | Optional |
projectnsPrefix | String | The project namespace prefix. | Optional |
endpoint | AlphaNumeric | The URL of the Kubernetes control plane. | Mandatory |
Project Namespace Configuration Parameters
The following tables list the parameters in the configuration file used to create the
project namespace.
Parameter | Parameter Type | Description | Required |
---|
apiVersion | String | The KubeSlice Controller API version. The value must be controller.kubeslice.io/v1alpha1 . | Mandatory |
kind | String | The name of a mandatory particular object schema. The value must be Project . | Mandatory |
metadata | Object | The metadata describes the parameters (names and types) and attributes that have been applied. | Mandatory |
spec | Object | The specification of the desired state of an object. | Mandatory |
These parameters are required for configuring the metadata in the
project YAML file.
Parameter | Parameter Type | Description | Required |
---|
name | String | The name of the project. Each project should have a unique name. | Mandatory |
namespace | String | The namespace on which you apply the project configuration file. The value must be kubeslice-controller . | Mandatory |
Project Specification Parameters
Parameter | Parameter Type | Description | Required |
---|
serviceAccount | Object | To specify permissions on the Project namespace. | Mandatory |
Service Account Parameters
A service account provides an identity for running processes in application pods. It
contains the list of users configured in the in the
project YAML file.
Parameter | Parameter Type | Description | Required |
---|
readOnly | List of Strings | The user to be created with read-only permission. | Optional |
readWrite | List of Strings | The user to be created with read-write permission. | Optional |
Cluster Registration Configuration Parameters
The following tables describe the configuration parameters used to
register the worker cluster with the controller cluster.
Parameter | Parameter Type | Required | Description |
---|
apiVersion | String | The KubeSlice Controller API version. The value must be controller.kubeslice.io/v1alpha1 . | Mandatory |
kind | String | The name of a particular object schema. The value must be Cluster . | Mandatory |
metadata | Object | The meta data parameters (names and types) and attributes that have been applied. | Mandatory |
spec | Object | The specification of the desired state of an object. | Mandatory |
The parameters are related to metadata configured in the
worker cluster registration YAML file.
Parameter | Parameter Type | Description | Required |
---|
name | String | The given name of the cluster. | Mandatory |
namespace | String | The project namespace on which you apply the project configuration file. | Mandatory |
Cluster Registration Specification Parameters
The parameters are related to the specification configured in the
worker cluster registration YAML file.
Parameter | Parameter Type | Description | Required |
---|
clusterProperty | Object | It contains the worker cluster details. | Mandatory |
networkInterface | String | The name of the network interface for egress traffic on a gateway node. The QoS profile for a slice will be applied to this interface. Default Interface: eth0 | Deprecated |
nodeIPs | String Array | The IP addresses used for inter-cluster tunnel creation. (Supports IPv4 and IPv6 IP address). If a node IP is not provided, Kubeslice will auto detect it from the gateway nodes. | Optional |
Cluster Property Parameters
The parameters are related to the cluster property configured in the
worker cluster registration YAML file.
Parameter | Parameter Type | Description | Required |
---|
geoLocation | Object | It contains information on the geological location of the worker cluster. | Optional |
Geolocation Parameters
Parameter | Parameter Type | Description | Required |
---|
cloudProvider | String | The name of your cloud provider | Optional |
cloudRegion | String | The cloud provider region where your cluster is located. | Optional |
Slice Operator Configuration Parameters
The following tables describe the configuration parameters used to
install the Slice Operator in the worker cluster.
Parameter | Parameter Type | Description | Required |
---|
operator | Object | This contains the Slice Operator information. | Optional |
controllerSecret | Object | This contains the secrets to connect to controller cluster. | Optional |
cluster | Object | This contains the information about the worker cluster. | Optional |
netop | Object | This contains the parameters related to network operations such as enforcing the QoS profile configured for a slice. | Mandatory |
Slice Operator Parameters
These parameters are related to the installation of the Slice Operator and
they are configured in the Slice Operator YAML file.
Parameter | Parameter Type | Description | Required |
---|
logLevel | String | The log level can be set to INFO or DEBUG. The default value is set to INFO. | Optional |
Controller Secret Parameters
These parameters are related to the KubeSlice Controller that are required to install
the Slice Operator and they are configured in the Slice Operator YAML file.
Parameter | Parameter Type | Description | Required |
---|
namespace | String | The namespace that you get from the secret. | Mandatory |
endpoint | String | The controllerEndpoint that you get from the secret. | Mandatory |
ca.crt | String | The ca.crt that you get from the secret. | Mandatory |
token | String | The token that you get from the secret. | Mandatory |
Cluster Parameters
These parameters are related to the worker cluster that are configured in the
Slice Operator YAML file.
Parameter | Parameter Type | Description | Required |
---|
name | String | The name of the cluster that is registered with the KubeSlice controller. The cluster name must be unique in the project. | Mandatory |
nodeIp | String | The Node IP address of the registered worker cluster (Required for Kind cluster only). | (deprecated) |
Network Operator Parameters
This parameter is related to network operations such as enforcing the QoS profile configured for a slice and is configured in the
Slice Operator YAML file.
Parameter | Parameter Type | Description | Required |
---|
networkInterface | AlphaNumeric | The name of the network interface on the gateway nodes that is the egress interface for external traffic. It may be obtained by doing a route lookup on a well-known public IP address like the Google public DNS IP address 8.8.8.8 . | Mandatory |
Slice Configuration Parameters
The following tables describe the configuration parameters used to create the Slice with registered worker cluster.
Parameter | Parameter Type | Description | Required |
---|
apiVersion | String | The 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 |
kind | String | The name of a particular object schema. The value must be SliceConfig . | Mandatory |
metadata | Object | The metadata describes parameters (names and types) and attributes that have been applied. | Mandatory |
spec | Object | The specification of the desired state of an object. | Mandatory |
These parameters are related to the metadata configured in the
slice configuration YAML file.
Parameter | Parameter Type | Description | Required |
---|
name | String | The name of the Slice. The name of the slice you are creating. Each slice must have a unique name within a project namespace. | Mandatory |
namespace | String | The 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.
Parameter | Parameter Type | Description | Required |
---|
sliceSubnet | String (IP/16 Subnet) (RFC 1918 addresses) | This subnet would be 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/16 | Mandatory |
maxClusters | Integer | The 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, where x=0,16,32. | Optional |
sliceType | String | Denotes the type of the slice. The value must be set to Application . | Mandatory |
sliceGatewayProvider | Object | It is the type of slice gateway created for inter cluster communication. | Mandatory |
sliceIpamType | String | It is the type of the IP address management for the slice subnet. The value must be always set to Local . | Mandatory |
clusters | List of Strings | The names of the worker clusters that would be part of the slice. You can provide the list of worker clusters. | Mandatory |
qosProfileDetails | Object | QoS profile for the slice inter cluster traffic. Note that qosProfileDetails and standardQosProfileName are mutually exclusive parameters. | Mandatory |
standardQosProfileName | String | This name of the external QoS profile that you can apply for multiple slices. Note that qosProfileDetails and standardQosProfileName are mutually exclusive parameters. | Mandatory |
namespaceIsolationProfile | Object | It is the configuration to onboard namespaces and/or isolate namespaces with the network policy. | Mandatory |
externalGatewayConfig | Object | It 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.
Parameter | Parameter Type | Description | Required |
---|
sliceGatewayType | String | The slice gateway type for inter cluster communication. The value must be OpenVPN . | Mandatory |
sliceCaType | String | The slice gateway certificate authority type that provides certificates to secure inter-cluster traffic. The value must be always set to Local . | Mandatory |
QOS Profile Parameters
These parameters are related to the QoS profile for the slice inter-cluster traffic
configured in the slice configuration YAML file.
Parameter | Parameter Type | Description | Required |
---|
queueType | String | It is the slice traffic control queue type. The value must be Hierarchical Token Bucket (HTB ). HTB facilitates guaranteed bandwidth for the slice traffic. | Mandatory |
priority | Integer | QoS profiles allows traffic management within a slice as well as prioritization across slices. The value range is 0-3. 0 represents the highest priority and 3 represents the lowest priority. | Mandatory |
tcType | String | It is the traffic control type. The value must be BANDWIDTH_CONTROL . | Mandatory |
bandwidthCeilingKbps | Integer | The maximum bandwidth in Kbps that is allowed for the slice traffic. | Mandatory |
bandwidthGuaranteedKbps | Integer | The guaranteed bandwidth in Kbps for the slice traffic. | Mandatory |
dscpClass | Alphanumeric | DSCP 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.
Parameter | Parameter Type | Description | Required |
---|
applicationNamespaces | Array object | Defines the namespaces that will be onboarded to the slice and their corresponding worker clusters. | Mandatory |
allowedNamespaces | Array object | Contains 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 |
isolationEnabled | Boolean | Defines 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.
Parameter | Parameter Type | Description | Required |
---|
namespace | String | The namespace that you want to onboard to the slice. These namespaces can be isolated using the namespace isolation feature. | Mandatory |
clusters | List of Strings | Corresponding 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.
Parameter | Parameter Type | Description | Required |
---|
namespace | Strings | List of external namespaces that are not a part of the slice from which traffic is allowed into the slice. | Optional |
clusters | List of Strings | Corresponding 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.
Parameter | Parameter Type | Description | Required |
---|
ingress | Boolean | To use the ingress gateway for E-W traffic on your slice, set the value to true . | Optional |
egress | Boolean | To use the egress gateway for E-W traffic on your slice, set the value to true . | Optional |
gatewayType | String | The type of ingress/egress gateways that need to be provisioned for the slice. It can either be none or istio .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 |
clusters | List of Strings | Names of the clusters to which the externalGateway configuration should be applied. | Optional |
Standard QOS Profile Parameters
These parameters are related to the QoS profile for the slice inter-cluster traffic
configured in the standard QoS profile configuration YAML file.
Parameter | Parameter Type | Description | Required |
---|
apiVersion | String | The 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 |
kind | String | The name of a particular object schema. The value must be SliceQoSConfig . | Mandatory |
metadata | Object | The metadata describes parameters (names and types) and attributes that have been applied. | Mandatory |
spec | Object | The specification of the desired state of an object. | Mandatory |
Parameter | Parameter Type | Description | Required |
---|
name | String | It is the name of the QoS profile. | Mandatory |
Standard QoS Profile Specification Parameters
Parameter | Parameter Type | Description | Required |
---|
queueType | String | It is the slice traffic control queue type. The value must be Hierarchical Token Bucket (HTB ). HTB facilitates guaranteed bandwidth for the slice traffic. | Mandatory |
priority | Integer | QoS profiles allows traffic management within a slice as well as prioritization across slices. The value range is 0-3. 0 represents the highest priority and 3 represents the lowest priority. | Mandatory |
tcType | String | It is the traffic control type. The value must be BANDWIDTH_CONTROL . | Mandatory |
bandwidthCeilingKbps | Integer | The maximum bandwidth in Kbps that is allowed for the slice traffic. | Mandatory |
bandwidthGuaranteedKbps | Integer | The guaranteed bandwidth in Kbps for the slice traffic. | Mandatory |
dscpClass | Alphanumeric | DSCP marking code for the slice inter-cluster traffic. | Mandatory |
Service Export Configuration Parameters
The following tables describe the configuration parameters used to create Service Export.
Parameter | Parameter Type | Description | Required |
---|
apiVersion | String | The 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 |
kind | String | The name of a particular object schema. The value must be ServiceExport . | Mandatory |
metadata | Object | The metadata describes parameters (names and types) and attributes that have been applied. | Mandatory |
spec | Object | The specification of the desired state of an object. | Mandatory |
These parameters are related to metadata for exporting a service, which are configured in the
ServiceExport YAML file.
Parameter | Parameter Type | Description | Required |
---|
name | String | The name of the service export. | Mandatory |
namespace | String | The application namespace. | Mandatory |
ServiceExport Specification Parameters
These parameters are related to the exporting service specification configured in the
ServiceExport YAML file.
Parameter | Parameter Type | Description | Required |
---|
slice | String | The name of the slice on which the service should be exported. | Mandatory |
aliases | String Array | One 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 |
selector | Object | The labels used to select the endpoints. | Mandatory |
port | Object | The 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.
Parameter | Parameter Type | Description | Required |
---|
matchLabels | Map | The 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.
Parameter | Parameter Type | Description | Required |
---|
name | String | It is a unique identifier for the port. It must be prefixed with http for HTTP services or tcp for TCP services. | Mandatory |
containerPort | Integer | The port number for the service. | Mandatory |
Protocol | String | The protocol type for the service. For example: TCP. | Mandatory |