Add readme for ix-chart
This commit is contained in:
parent
de18e4eda9
commit
38ea19c459
|
@ -1 +1,92 @@
|
||||||
blah blah
|
# iX Chart
|
||||||
|
|
||||||
|
iX-chart is a chart designed to let user deploy a docker image in a TrueNAS SCALE kubernetes cluster.
|
||||||
|
It provides a mechanism to specify workload type, add external host interfaces in the pods, configure volumes and allocate host resources to the workload.
|
||||||
|
|
||||||
|
This chart will deploy a docker image as a kubernetes workload allowing user to configure the workload deployment / management.
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
iX-chart is designed for simple single docker image deployments.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The following table lists the configurable parameters of the iX chart and
|
||||||
|
their default values.
|
||||||
|
|
||||||
|
| Parameter | Description | Default |
|
||||||
|
|:-------------------------------|:----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------|
|
||||||
|
| `workloadType` | Specify type of workload to deploy | `Deployment` |
|
||||||
|
| `cronSchedule` | Specify schedule for cronjob if `workloadType` is `CronJob`. | `{"minute": "5", "hour": "*", "dom": "*", "month": "*", "dow": "*"}` |
|
||||||
|
| `image.repository` | The image repository to pull from | `debian` |
|
||||||
|
| `image.tag` | The image tag to pull from | `latest` |
|
||||||
|
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||||
|
| `updateStrategy` | Upgrade Policy | `RollingUpdate` |
|
||||||
|
| `restartPolicy` | Restart Policy for containers in workload | `Always` |
|
||||||
|
| `jobRestartPolicy` | Restart Policy for job type workload ( only applicable if `workloadType` is `Job`/`CronJob` | `OnFailure` |
|
||||||
|
| `containerCommand` | Commands to execute inside container overriding image CMD default | `null` |
|
||||||
|
| `containerArgs` | Specify arguments for container command | `null` |
|
||||||
|
| `containerEnvironmentVariables`| Container Environment Variables | `null` |
|
||||||
|
| `externalInterfaces` | Add external interfaces in the pod | `null` |
|
||||||
|
| `dnsPolicy` | Specify DNS Policy for pod | `Default` |
|
||||||
|
| `dnsConfig` | Specify custom DNS configuration which will be applied to the pod | `{"nameservers": [], "searches": []}` |
|
||||||
|
| `portForwardingList` | Specify ports of node and workload to forward traffic from node port to workload port | `null` |
|
||||||
|
| `hostPathVolumes` | Specify host paths to be used as hostpath volumes for the workload | `null` |
|
||||||
|
| `volumes` | Specify `ix_volumes` | `null` |
|
||||||
|
| `livenessProbe` | Configure Liveness Probe for workload | `null` |
|
||||||
|
| `gpuConfiguration` | Allocate GPU to workload ( if available ) | `{}` |
|
||||||
|
|
||||||
|
|
||||||
|
## Persistence
|
||||||
|
|
||||||
|
Chart release iX chart offers 2 ways to have persistent storage:
|
||||||
|
|
||||||
|
1) `hostPathVolumes`
|
||||||
|
2) `volumes`
|
||||||
|
|
||||||
|
For (1), they are kubernetes host path volumes which the user can assign to the workload with RO/RW permissions.
|
||||||
|
|
||||||
|
(2) is a host path volume as well but it operates differently then (1) in terms of where it lives and how it's lifecycle is tied to the chart release.
|
||||||
|
For (2), users specify where they would like persistent storage in the workload and a dataset name ( it should be unique per each chart release ), based on this input,
|
||||||
|
system will create a dataset and then use it as a host path volume for the workload. During upgrades, snapshot will be taken for these volumes and on rollback users can subsequently
|
||||||
|
restore the snapshots hence the data.
|
||||||
|
When a chart release will be deleted, all (2) volumes data will be deleted unlike (1) ( until of course they are not in the chart release's dataset path ).
|
||||||
|
|
||||||
|
## Recommended Persistence Configuration Examples
|
||||||
|
|
||||||
|
The following is a recommended configuration example for creating ix volumes
|
||||||
|
|
||||||
|
```
|
||||||
|
volumes: [
|
||||||
|
{
|
||||||
|
"datasetName": "ix_volume1",
|
||||||
|
"mountPath": "/mount_test1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"datasetName": "ix_volume2",
|
||||||
|
"mountPath": "/mount_test2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
`mountPath` refers to the path inside the pod.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
The following is a recommended configuration example for `hostPathVolumes`
|
||||||
|
|
||||||
|
```
|
||||||
|
hostPathVolumes: [
|
||||||
|
{
|
||||||
|
"hostPath": "/mnt/pool/test_dir",
|
||||||
|
"mountPath": "/test_dir",
|
||||||
|
"readOnly": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hostPath": "/mnt/pool/test_file",
|
||||||
|
"mountPath": "/test_file",
|
||||||
|
"readOnly": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue