Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AM-11328: Update the missing parameter description in the OSS docs. #123

Merged
merged 8 commits into from
Aug 16, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,21 @@ The following are the kubeslice-cli options.
| --version | -v | It is the version of the `kubeslice-cli` tool. |

:::note
The kubeslice-cli tool must have access to the clusters you want it to manage. To grant it access, set the KUBECONFIG environment variable to
a path to the kubeconfig file containing the necessary keys to access those clusters.
To set the KUBECONFIG environment varible, use these commands:
The kubeslice-cli tool must have access to the clusters you want it to manage. To grant it access, set the KUBECONFIG environment
variable to a path to the kubeconfig file containing the necessary keys to access those clusters.
To set the KUBECONFIG environment variable, use these commands:

- On Linux/macOS: `export KUBECONFIG=<path to kubeconfig file>`
- On Windows: `$env:KUBECONFIG = "kubeslice/kubeconfig.yaml"`
:::
:::

:::caution

- If the global **—config** option is not specified, kubeslice-cli attempts to execute against the current cluster context. Run the
following command to determine which context you are currently in: `kubectx -c`.
- The currently supported operations are all controller cluster specific. You must run the kubeslice-cli commands on the controller cluster.
use this command to switch the cluster context: `kubectx <controller-cluster>`.
:::
:::

## create

Expand Down Expand Up @@ -593,7 +593,7 @@ Use this command to install the required workloads to run KubeSlice Controller a
```
kubeslice-cli --config <path-to-the-custom-topology-file> <install|i>
kubeslice-cli install <command-options>
kubeslice-cli install --profile=<minimal-demo|full-demo>
kubeslice-cli install --profile=<minimal-demo|full-demo|enterprise-demo >
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
```

### Options
Expand All @@ -602,8 +602,8 @@ The following are the `kubeslice-cli install` command options.

| Option | Shorthand | Description | Supported Values |
| ------------------- | --------- | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| --profile | -p | It is the profile to install or uninstall KubeSlice. | **full-demo**: showcases the KubeSlice inter-cluster connectivity by spawning 3 kind clusters, including 1 KubeSlice Controller and 2 worker clusters, and installing iPerf application to generate network traffic. **minimal-demo**: sets up 3 kind clusters, including 1 KubeSlice Controller and 2 worker clusters. Generates the Kubernetes manifests for user to manually apply, and verify the functionality. |
| --skip | -s | It skips the installation steps (comma-separated) with `minimal-demo` and `full-demo` options. | **kind**: skips the creation of kind clusters. **calico**: skips the installation of Calico. **controller**: skips the installation of KubeSlice Controller. **worker-registration**: skips the registration of worker clusters with the KubeSlice Controller. **worker**: skips the installation of worker clusters. **demo**: skips the installation of additional example applications. |
| --profile | -p | It is the profile to install or uninstall KubeSlice. | **full-demo**: showcases the KubeSlice inter-cluster connectivity by spawning 3 kind clusters, including 1 KubeSlice Controller and 2 worker clusters, and installing iPerf application to generate network traffic. **minimal-demo**: sets up 3 kind clusters, including 1 KubeSlice Controller and 2 worker clusters. Generates the Kubernetes manifests for user to manually apply, and verify the functionality. **enterprise-demo**: showcases the KubeSlice Enterprise functionality by spawning 3 kind clusters, including 1 KubeSlice Controller and 2 KubeSlice Workers. Installs the Enterprise charts for the controller, the worker(s), the KubeSlice Manager (UI), and iPerf application to generate network traffic. The imagePullSecrets (username and password) listed must be set as environment variables: **KUBESLICE_IMAGE_PULL_USERNAME**: `optional`, the default value is `aveshaenterprise`. **KUBESLICE_IMAGE_PULL_PASSWORD**: `required`. |
| --skip | -s | It skips the installation steps (comma-separated) with `minimal-demo`, `full-demo`, and `enterprise-demo` options. | **kind**: skips the creation of kind clusters. **calico**: skips the installation of Calico. **controller**: skips the installation of KubeSlice Controller. **worker-registration**: skips the registration of worker clusters with the KubeSlice Controller. **worker**: skips the installation of worker clusters. **demo**: skips the installation of additional example applications. **prometheus**: skips the installation of the Prometheus. |
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
| --config | -c | It is a **global** option. The path to the topology configuration YAML file. |
| --with-cert-manager | | It installs the cert-manager charts. **This is required for the KubeSlice Controller v0.7.0 and below versions.** |
| --help | -h | It provides information on the install command. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ controller cluster and the worker cluster names. The file should include other r
as described in the sample configuration file provided below. This file is essential in setting
up KubeSlice.

Custom chart values can be specified in the topology configuration. For example, you can add `values:metrics.insecure=true` under
**configuration.helm_chart_configuration.worker_chart** for worker charts.
```
worker_chart:
chart_name: kubeslice-worker
values:
"metrics.insecure": "true"
"some.other.key": "value"
```

### Sample Topology Configuration File
The following a minimal configuration file to install KubeSlice Enterprise on cloud clusters:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ The following table describes the controller cluster configuration parameters us

| Parameter | Parameter Type | Description | Required |
| --------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| name | String | The user-defined name of the controller cluster. | Mandatory |
| name | String | The user-defined name of the controller cluster. The maximum allowed number of characters is 30. Provide the name as defined in [RFC 1123](#https://datatracker.ietf.org/doc/html/rfc1123). To know more, see [Kubernetes Object Names and IDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/). | Mandatory |
| context_name | String | The name of the context to use from the kubeconfig file; It is used in the topology YAML file. | Optional |
| kube_config_path | String | The absolute path to the kubeconfig file to install controller cluster. This takes precedence over the kubeconfig path defined under cluster configuration. | Optional |
| control_plane_address | AlphaNumeric | The address of the control plane kube-apiserver. The kubeslice-cli determines the address from kubeconfig. Override this option if the address in the kubeconfig is not reachable by other clusters in the topology. | Mandatory |
Expand All @@ -31,8 +31,8 @@ The following table describes the worker cluster configuration parameters.

| Parameter | Parameter Type | Description | Required |
| --------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| name | String | The user-defined name of the worker cluster. | Mandatory |
| context_name | String | The name of the context to use from kubeconfig file; It is used in the topology YAML only. | Optional |
| name | String | The user-defined name of the worker cluster. The maximum allowed number of characters is 30. Provide the name as defined in [RFC 1123](#https://datatracker.ietf.org/doc/html/rfc1123). To know more, see [Kubernetes Object Names and IDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/). | Mandatory |
| context_name | String | The name of the context to use from kubeconfig file; It is used in the topology YAML only. Use the short alias name. For example, you can use `worker-cluster` or `api-cluster` as the cluster contexts. | Optional |
| kube_config_path | String | The absolute path to the kubeconfig file to install a worker cluster. This takes precedence over the kubeconfig path defined under cluster configuration. | Optional |
| control_plane_address | AlphaNumeric | The address of the control plane `kube-apiserver`. The kubeslice-cli determines the address from kubeconfig. Override this option if the address in the kubeconfig is not reachable by other clusters in the topology. | Mandatory |
| node_ip | Numeric | The IP address of one of the node in the cluster. The kubeslice-cli determines the address from this command:`kubectl get nodes`. Override this option to an address which is discoverable by other clusters in the topology. | Mandatory |
Expand All @@ -42,7 +42,7 @@ The following table describes the KubeSlice configuration parameters.

| Parameter | Parameter Type | Description | Required |
| ------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| project_name | String | the user-defined name of the Kubeslice project. | Mandatory |
| project_name | String | the user-defined name of the Kubeslice project. The maximum allowed number of characters is 30. Provide the name as defined in [RFC 1123](#https://datatracker.ietf.org/doc/html/rfc1123). To know more, see [Kubernetes Object Names and IDs](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/). | Mandatory |
| project_users | String | This contains the list of KubeSlice project users to be created. The users will have read/write privileges. By default, admin user is created. | Optional |

## Helm Chart Configuration Parameters
Expand All @@ -55,9 +55,11 @@ The following table describes the helm chart configuration parameters.
| [cert_manager_chart](#certificate-manager-chart-configuration-parameters) | Object | The cert-manager chart details. | Mandatory |
| [controller_chart](#controller-chart-configuration-parameters) | Object | The Kubeslice Controller chart details. | Mandatory |
| [worker_chart](#worker-chart-configuration-parameters) | Object | The KubeSlice Worker chart details. | Mandatory |
| [ui_chart](#ui-chart-configuration-parameters) | Object | The KubeSlice Manager chart details. Required for Enterprise charts only. | Optional |
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
| [prometheus_chart](#prometheus-chart-configuration-parameters) | Object | The Prometheus chart details. Required for Enterprise charts only. | Optional |
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
| helm_username | AlphaNumeric | The helm username if the repo is private. | Optional |
| helm_password | AlphaNumeric | The helm password if the repo is private. | Optional |
| [image_pull_secret](#image-pull-configuration-parameters) | Object | The image pull secrets to pull the Kubernetes dashboard image. Required for Enterprise charts. | Mandatory |
| [image_pull_secret](#image-pull-configuration-parameters) | Object | The image pull secrets to pull the Kubernetes dashboard image. Required for Enterprise charts only. | Mandatory |
uma-kt marked this conversation as resolved.
Show resolved Hide resolved

## Certificate Manager Chart Configuration Parameters
The following table describes the certificate manager chart configuration parameters used to create topology YAML.
Expand Down Expand Up @@ -85,6 +87,34 @@ The following table describes the worker chart configuration parameters used to
| version | Numeric | The version of the chart. Leave this value blank for the latest version. | Optional |
| values | String | The additional value that can be passed as --set arguments for **helm install**. | Optional |

## UI Chart Configuration Parameters
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
The following table describes the UI chart configuration parameters used to create topology YAML.
uma-kt marked this conversation as resolved.
Show resolved Hide resolved

| Parameter | Parameter Type | Description | Required |
| ---------- | -------------- | -------------------------------------------------------------------------------- | --------- |
| chart_name | String | The name of the UI or enterprise chart. | Mandatory |
| version | Numeric | The version of the chart. Leave it blank for the latest version. | Optional |
| values | String | The additional value that can be passed as --set arguments for **helm install**. | Optional |

## Prometheus Chart Configuration parameters
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
The following table describes the Prometheus chart configuration parameters used to create topology YAML.
uma-kt marked this conversation as resolved.
Show resolved Hide resolved

| Parameter | Parameter Type | Description | Required |
| ---------- | -------------- | -------------------------------------------------------------------------------- | --------- |
| chart_name | String | The name of the Prometheus chart. | Mandatory |
| version | Numeric | The version of the chart. Leave it blank for the latest version. | Optional |
| values | String | The additional value that can be passed as --set arguments for **helm install**. | Optional |

## Image Pull Secret Configuration Parameters
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
The following table describes the image pull secret configuration parameters used to create topology YAML.
uma-kt marked this conversation as resolved.
Show resolved Hide resolved

| Parameter | Parameter Type | Description | Required |
| --------- | -------------- | ------------------------------------------------------ | --------- |
| registry | String | The endpoint of the OCI registry to use. | Mandatory |
| username | AlphaNumeric | The username to authenticate against the OCI registry. | Mandatory |
| password | AlphaNumeric | The password to authenticate against the OCI registry. | Mandatory |
| email | AlphaNumeric | The email to authenticate against the OCI registry. | Mandatory |



:::note
Expand Down Expand Up @@ -131,7 +161,7 @@ configuration:
#{Override this flag to an address which is discoverable by other clusters in the topology}
kubeslice_configuration:
project_name: #{the name of the KubeSlice Project}
project_users: #{optional: specify KubeSlice Project users with Readw-Write access. Default is admin}
project_users: #{optional: specify KubeSlice Project users with Read-Write access. Default is admin}
helm_chart_configuration:
repo_alias: #{The alias of the helm repo for KubeSlice Charts}
repo_url: #{The URL of the Helm Charts for KubeSlice}
Expand All @@ -146,4 +176,21 @@ configuration:
chart_name: #{The name of the Worker Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)

# The ui_chart, prometheus_chart, and image_pull_secret parameters are required for enterprise chart only
uma-kt marked this conversation as resolved.
Show resolved Hide resolved
ui_chart:
chart_name: #{The name of the UI/Enterprise Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)
prometheus_chart:
chart_name: #{The name of the Prometheus Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)
helm_username: #{Helm Username if the repo is private}
helm_password: #{Helm Password if the repo is private}
image_pull_secret: #{The image pull secrets. Optional for OpenSource, required for enterprise}
registry: #{The endpoint of the OCI registry to use. Default is `https://index.docker.io/v1/`}
username: #{The username to authenticate against the OCI registry}
password: #{The password to authenticate against the OCI registry}
email: #{The email to authenticate against the OCI registry}
```
Loading
Loading