Commit 3e79314a by trierra

add Portworx chart v1.0.2

Signed-off-by: 's avatartrierra <oksana@portworx.com>
parent 5a31b5e1
name: portworx name: portworx
appVersion: 1.0.1 appVersion: 1.0.2
version: 1.0.1 version: 1.0.2
description: A Helm chart for installing Portworx on Kubernetes. description: A Helm chart for installing Portworx on Kubernetes.
keywords: keywords:
- Storage - Storage
......
# Portworx # Portworx
## Pre-requisites ## **Pre-requisites**
This helm chart deploys [Portworx](https://portworx.com/) and [Stork](https://docs.portworx.com/scheduler/kubernetes/stork.html) on your Kubernetes cluster. The minimum requirements for deploying the helm chart are as follows: Use this Helm chart to deploy [Portworx](https://portworx.com/) and [Stork](https://docs.portworx.com/scheduler/kubernetes/stork.html) to your Kubernetes cluster.
- All [Pre-requisites](https://docs.portworx.com/scheduler/kubernetes/install.html#prerequisites) for Portworx must be fulfilled. Prerequisites
## Limitations Refer to the [Install Portworx on Kubernetes via Helm](https://docs.portworx.com/portworx-install-with-kubernetes/install-px-helm/#pre-requisites) page for the list of prerequisites.
## **Limitations**
* The portworx helm chart can only be deployed in the kube-system namespace. Hence use "kube-system" in the "Target namespace" during configuration. * The portworx helm chart can only be deployed in the kube-system namespace. Hence use "kube-system" in the "Target namespace" during configuration.
* You can only deploy one portworx helm chart per Kubernetes cluster.
## Uninstalling the Chart ## **Uninstalling the Chart**
To uninstall/delete the `my-release` deployment: #### You can uninstall Portworx using one of the following methods:
> **Tip** > The Portworx configuration files under `/etc/pwx/` directory are preserved, and will not be deleted. #### **1. Delete all the Kubernetes components associated with the chart and the release.**
``` > **Note** > The Portworx configuration files under `/etc/pwx/` directory are preserved, and will not be deleted.
helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
To perform this operation simply delete the application from the Apps page
## Documentation #### **2. Wipe your Portworx installation**
* [Portworx docs site](https://docs.portworx.com/scheduler/kubernetes/) > **Note** > The commands in this section are disruptive and will lead to data loss. Please use caution..
* [Portworx interactive tutorials](https://docs.portworx.com/scheduler/kubernetes/px-k8s-interactive.html)
## Installing the Chart using the CLI See more details [here](https://2.1.docs.portworx.com/portworx-install-with-kubernetes/install-px-helm/#uninstall)
To install the chart with the release name `my-release` run the following commands substituting relevant values for your setup: ## **Documentation**
* [Portworx docs site](https://docs.portworx.com/install-with-other/rancher/rancher-2.x/#step-1-install-rancher)
* [Portworx interactive tutorials](https://docs.portworx.com/scheduler/kubernetes/px-k8s-interactive.html)
##### NOTE: ## **Installing the Chart using the CLI**
`kvdb` is a required field. The chart installation would not proceed unless this option is provided.
If the etcdcluster being used is a secured ETCD (SSL/TLS) then please follow instructions to create a kubernetes secret with the certs. https://docs.portworx.com/scheduler/kubernetes/etcd-certs-using-secrets.html#create-kubernetes-secret
See the installation details [here](https://2.1.docs.portworx.com/portworx-install-with-kubernetes/install-px-helm/)
`clusterName` should be a unique name identifying your Portworx cluster. The default value is `mycluster`, but it is suggested to update it with your naming scheme. ## **Installing Portworx on AWS**
See the installation details [here](https://2.1.docs.portworx.com/cloud-references/auto-disk-provisioning/aws)
Example of using the helm CLI to install the chart: ## ** Giving your etcd certificates to Portworx using Kubernetes Secrets.**
``` This is the recommended way of providing etcd certificates, as the certificates will be automatically available to the new nodes joining the cluster
helm install --debug --name my-release --set kvdb=etcd:http://192.168.70.90:2379,clusterName=$(uuid) ./helm/charts/portworx/
```
## Basic troubleshooting * Create Kubernetes secret
* Copy all your etcd certificates and key in a directory etcd-secrets/ to create a Kubernetes secret from it. Make sure the file names are the same as you gave above.
#### Helm install errors with "no available release name found"
```
helm install --dry-run --debug --set kvdb=etcd:http://192.168.70.90:2379,clusterName=$(uuid) ./helm/charts/px/
[debug] Created tunnel using local port: '37304'
[debug] SERVER: "127.0.0.1:37304"
[debug] Original chart version: ""
[debug] CHART PATH: /root/helm/charts/px
Error: no available release name found
``` ```
This most likely indicates that Tiller doesn't have the right RBAC permissions. # ls -1 etcd-secrets/
You can verify the tiller logs etcd-ca.crt
etcd.crt
etcd.key
``` ```
[storage/driver] 2018/02/07 06:00:13 get: failed to get "singing-bison.v1": configmaps "singing-bison.v1" is forbidden: User "system:serviceaccount:kube-system:default" cannot get configmaps in the namespace "kube-system"
[tiller] 2018/02/07 06:00:13 info: generated name singing-bison is taken. Searching again.
[tiller] 2018/02/07 06:00:13 warning: No available release names found after 5 tries
[tiller] 2018/02/07 06:00:13 failed install prepare step: no available release name found
```
#### Helm install errors with "Job failed: BackoffLimitExceeded"
* Use kubectl to create the secret named px-etcd-certs from the above files:
``` ```
helm install --debug --set dataInterface=eth1,managementInterface=eth1,kvdb=etcd:http://192.168.70.179:2379,clusterName=$(uuid) ./helm/charts/px/ # kubectl -n kube-system create secret generic px-etcd-certs --from-file=etcd-secrets/
[debug] Created tunnel using local port: '36389'
[debug] SERVER: "127.0.0.1:36389"
[debug] Original chart version: ""
[debug] CHART PATH: /root/helm/charts/px
Error: Job failed: BackoffLimitExceeded
```
This most likely indicates that the pre-install hook for the helm chart has failed due to a misconfigured or inaccessible ETCD url.
Follow the below steps to check the reason for failure.
```
kubectl get pods -nkube-system -a | grep preinstall
px-etcd-preinstall-hook-hxvmb 0/1 Error 0 57s
kubectl logs po/px-etcd-preinstall-hook-hxvmb -nkube-system
Initializing...
Verifying if the provided etcd url is accessible: http://192.168.70.179:2379
Response Code: 000
Incorrect ETCD URL provided. It is either not reachable or is incorrect...
``` ```
Ensure the correct etcd URL is set as a parameter to the `helm install` command. * Notice that the secret has 3 keys etcd-ca.crt, etcd.crt and etcd.key, corresponding to file names in the etcd-secrets folder. We will use these keys in the Portworx spec file to reference the certificates.
#### Helm install errors with "Job failed: Deadline exceeded"
``` ```
helm install --debug --set dataInterface=eth1,managementInterface=eth1,kvdb=etcd:http://192.168.20.290:2379,clusterName=$(uuid) ./charts/px/ # kubectl -n kube-system describe secret px-etcd-certs
[debug] Created tunnel using local port: '39771' Name: px-etcd-certs
Namespace: kube-system
[debug] SERVER: "127.0.0.1:39771" Labels: <none>
Annotations: <none>
[debug] Original chart version: "" Type: Opaque
[debug] CHART PATH: /root/helm/charts/px
Error: Job failed: DeadlineExceeded Data
``` ====
This error indicates that the pre-install hook for the helm chart has failed to run to completion correctly. Verify that the etcd URL is accessible. This error occurs on kubernetes cluster(s) with version below 1.8 etcd-ca.crt: 1679 bytes
Follow the below steps to check the reason for failure. etcd.crt: 1680 bytes
etcd.key: 414 bytes
```
kubectl get pods -nkube-system -a | grep preinstall
px-hook-etcd-preinstall-dzmkl 0/1 Error 0 6m
px-hook-etcd-preinstall-nlqwl 0/1 Error 0 6m
px-hook-etcd-preinstall-nsjrj 0/1 Error 0 5m
px-hook-etcd-preinstall-r9gmz 0/1 Error 0 6m
kubectl logs po/px-hook-etcd-preinstall-dzmkl -nkube-system
Initializing...
Verifying if the provided etcd url is accessible: http://192.168.20.290:2379
Response Code: 000
Incorrect ETCD URL provided. It is either not reachable or is incorrect...
``` ```
Ensure the correct etcd URL is set as a parameter to the `helm install` command. Once above secret is created, proceed to the next steps.
# Portworx # Portworx
[Portworx](https://portworx.com/) is a software defined persistent storage solution designed and purpose built for applications deployed as containers, via container orchestrators such as Kubernetes, Marathon and Swarm. It is a clustered block storage solution and provides a Cloud-Native layer from which containerized stateful applications programmatically consume block, file and object storage services directly through the scheduler. [Portworx](https://portworx.com/) is a software defined storage overlay that allows you to
* Run containerized stateful applications that are highly-available (HA) across multiple nodes, cloud instances, regions, data centers or even clouds
* Migrate workflows between multiple clusters running across same or hybrid clouds
* Run hyperconverged workloads where the data resides on the same host as the applications
* Have programmatic control on your storage resources
\ No newline at end of file
etcdType: Built-in
\ No newline at end of file
...@@ -6,115 +6,876 @@ labels: ...@@ -6,115 +6,876 @@ labels:
questions: questions:
################################### KVDB options ################################ ################################### KVDB options ################################
- variable: internalKVDB - variable: etcdType
description: "Select if you wish to run internal kvdb. Note internal kvdb is in beta. DO NOT enable internal kvdb when running with KOPS. The kvdb endpoints provided above will be ignored." label: "Select ETCD"
type: boolean type: enum
label: Enable Internal KVDB store required: true
default: false group: "Key value store parameters (Required)"
options:
- "Provide your own etcd"
- "Built-in"
# ------ "Provide your own etcd" ------
- variable: ownEtcdOption
show_if: "etcdType=Provide your own etcd"
label: "Select one of 2 options for your ETCD cluster"
type: enum
required: true
group: "Key value store parameters (Required)" group: "Key value store parameters (Required)"
options:
- "Your etcd details"
- "Portworx hosted (for PoCs only)"
- variable: etcdAuth
show_if: "ownEtcdOption=Your etcd details&&etcdType=Provide your own etcd"
label: "Select an auth option for your ETCD cluster"
type: enum
default: "Disable HTTPS"
required: true
group: "Key value store parameters (Required)"
options:
- "Disable HTTPS"
- "Certificate Auth"
- "Password Auth"
- variable: region
show_if: "ownEtcdOption=Portworx hosted (for PoCs only)"
label: "Select region"
type: enum
required: true
group: "Key value store parameters (Required)"
options:
- "US region"
- "EU region"
# kvdb endpoint
- variable: kvdb - variable: kvdb
description: "Points to your key value store, such as an etcd cluster or a consul cluster. Use semicolon separated for multiple endpoints. (example: etcd:http://etcd-1.com.net:2379;etcd:http://etcd-2.com.net:2379;etcd:http://etcd-3.com.net:2379)" show_if: "ownEtcdOption=Your etcd details"
description: "Enter your etcd or Consul endpoints separated by semicolons. Use the following as an example: etcd://myetc1.company.com:2379;etcd://myetc2.company.com.2379. Note: If the `etcdAuth` key is set to 'Disable HTTPS', you must provide HTTP endpoints."
type: string type: string
label: "Endpoint address" label: "Endpoint address"
required: true required: true
show_if: "internalKVDB=false"
group: "Key value store parameters (Required)" group: "Key value store parameters (Required)"
- variable: etcd.ca - variable: etcd.ca
show_if: "etcdAuth=Certificate Auth"
description: "Name of CA file for ETCD authentication. Example: etcd-ca.crt. Follow https://docs.portworx.com/scheduler/kubernetes/etcd-certs-using-secrets.html to create a Kubernetes secret for the etcd certs." description: "Name of CA file for ETCD authentication. Example: etcd-ca.crt. Follow https://docs.portworx.com/scheduler/kubernetes/etcd-certs-using-secrets.html to create a Kubernetes secret for the etcd certs."
type: string type: string
required: true
default: server1.ca.crt
label: "ETCD CA file" label: "ETCD CA file"
group: "Key value store security Parameters" group: "Key value store security Parameters (Details in README)"
show_if: "internalKVDB=false"
- variable: etcd.cert - variable: etcd.cert
show_if: "etcdAuth=Certificate Auth"
description: "Name of certificate for ETCD authentication. Example: etcd.crt" description: "Name of certificate for ETCD authentication. Example: etcd.crt"
type: string type: string
default: server1.crt
required: true
label: "ETCD cert file" label: "ETCD cert file"
group: "Key value store security Parameters" group: "Key value store security Parameters (Details in README)"
show_if: "internalKVDB=false"
- variable: etcd.key - variable: etcd.key
show_if: "etcdAuth=Certificate Auth"
description: "Name of certificate key for ETCD authentication Example: etcd.key" description: "Name of certificate key for ETCD authentication Example: etcd.key"
type: string type: string
default: server1.key.insecure
required: true
label: "ETCD cert key file" label: "ETCD cert key file"
group: "Key value store security Parameters" group: "Key value store security Parameters (Details in README)"
show_if: "internalKVDB=false"
- variable: etcd.credentials - variable: etcd.credentials
show_if: "etcdAuth=Password Auth"
description: "Username and password for ETCD authentication in the form user:password. Not needed if using certificates." description: "Username and password for ETCD authentication in the form user:password. Not needed if using certificates."
type: string type: string
required: true
label: "ETCD credentials" label: "ETCD credentials"
group: "Key value store security Parameters" group: "Key value store security Parameters (Details in README)"
show_if: "internalKVDB=false"
- variable: consul.acl ################################### Storage options ################################
description: "ACL token value used for Consul authentication. (example: 398073a8-5091-4d9c-871a-bbbeb030d1f6). Needed only for consul." - variable: environment
description: "Select your environment"
label: "Environment"
type: enum
default: "OnPrem"
required: true
group: "Storage Parameters"
options:
- "OnPrem"
- "Cloud"
- variable: provider
show_if: "environment=Cloud"
description: "Select cloud platform"
label: "Cloud provider"
type: enum
required: true
group: "Storage Parameters"
options:
- "AWS"
- "Google cloud/GKE"
- variable: onpremStorage
show_if: "environment=OnPrem"
type: enum
default: "Automatically scan disks"
label: "Select type of OnPrem storage"
group: "Storage Parameters"
required: true
options:
- "Automatically scan disks"
- "Manually specify disks"
- variable: deviceConfig
show_if: "environment=Cloud"
description: "If you plan to use EC2 instance storage or plan to manage EBS volumes your own way, select 'Consume unused' or 'Use Existing disks'."
label: "Select a type of disk"
type: enum
default: "Create Using a Spec"
required: true
group: "Storage Parameters"
options:
- "Create Using a Spec"
- "Consume Unused"
- "Use Existing Disks"
-
- variable: journalDevice
description: "This allows PX to create it’s own journal partition on the best drive to absorb PX metadata writes. Journal writes are small with frequent syncs and hence a separate journal partition will enable better performance. Use value 'auto' if you want Portworx to create it's own journal partition."
type: string type: string
group: "Key value store security Parameters" label: "Journal Device"
label: Consul ACL Token group: "Storage Parameters"
show_if: "internalKVDB=false"
############ Consume unused ##############
- variable: usedrivesAndPartitions
show_if: "deviceConfig=Consume Unused||onpremStorage=Automatically scan disks"
label: "Use unmounted drives and partitions"
descrition: "Use unmounted disks even if they have a partition or filesystem on it. PX will never use a drive or partition that is mounted."
type: boolean
default: false
group: "Storage Parameters"
################################### Storage options ################################
- variable: drives ############ Use Exising Disks ##############
description: "This is a ';' seperated list of drives. For eg: '/dev/sda;/dev/sdb;/dev/sdc'. If left empty, Portworx will try to use available drives." - variable: existingDisk1
label: "Drives" show_if: "deviceConfig=Use Existing Disks||onpremStorage=Manually specify disks"
label: "Drive/Device1"
description: "Enter the block/device name; eg: /dev/sda"
type: string type: string
required: true
group: "Storage Parameters" group: "Storage Parameters"
- variable: usefileSystemDrive
- variable: addExistingDisk2
show_if: "deviceConfig=Use Existing Disks||onpremStorage=Manually specify disks"
label: "Add another drive?"
type: boolean
default: false default: false
label: "Use drives with a filesystem." group: "Storage Parameters"
description: "Instructs PX to use drives with a filesystem."
- variable: existingDisk2
show_if: "addExistingDisk2=true"
label: "Drive/Device2"
description: "Enter the block/device name; eg: /dev/sda"
type: string
required: true
group: "Storage Parameters"
- variable: addExistingDisk3
show_if: "addExistingDisk2=true"
label: "Add another drive?"
type: boolean type: boolean
default: false
group: "Storage Parameters" group: "Storage Parameters"
- variable: usedrivesAndPartitions
- variable: existingDisk3
show_if: "addExistingDisk3=true"
label: "Drive/Device3"
description: "Enter the block/device name; eg: /dev/sda"
type: string
required: true
group: "Storage Parameters"
- variable: addExistingDisk4
show_if: "addExistingDisk3=true"
label: "Add another drive?"
type: boolean
default: false default: false
description: "Instructs PX to use unmounted drives and partitions." group: "Storage Parameters"
- variable: existingDisk4
show_if: "addExistingDisk4=true"
label: "Drive/Device4"
description: "Enter the block/device name; eg: /dev/sda"
type: string
required: true
group: "Storage Parameters"
- variable: addExistingDisk5
show_if: "addExistingDisk4=true"
label: "Add another drive?"
type: boolean type: boolean
label: "Use unmounted drives and partitions" default: false
group: "Storage Parameters" group: "Storage Parameters"
- variable: journalDevice
description: "This allows PX to create it’s own journal partition on the best drive to absorb PX metadata writes. Journal writes are small with frequent syncs and hence a separate journal partition will enable better performance. Use value 'auto' if you want Portworx to create it's own journal partition." - variable: existingDisk5
show_if: "addExistingDisk5=true"
label: "Drive/Device5"
description: "Enter the block/device name; eg: /dev/sda"
type: string type: string
label: "Journal Device" required: true
group: "Storage Parameters" group: "Storage Parameters"
##################################################### Cloud ################################
##################################################### AWS ################################
### Section 1 AWS
- variable: drive_1.aws.type
show_if: "provider=AWS&&deviceConfig=Create Using a Spec"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
default: "GP2"
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_1.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_1.aws.size
show_if: "provider=AWS&&deviceConfig=Create Using a Spec"
description: "Volume size"
label: "Size"
type: int
default: 150
required: true
group: "Storage Parameters"
### Section 2 AWS
- variable: addEBSDrive_2
show_if: "provider=AWS&&deviceConfig=Create Using a Spec"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_2.aws.type
show_if: "addEBSDrive_2=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_2.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_2.aws.size
show_if: "addEBSDrive_2=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
### Section 3 AWS
- variable: addEBSDrive_3
show_if: "addEBSDrive_2=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_3.aws.type
show_if: "addEBSDrive_3=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_3.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_3.aws.size
show_if: "addEBSDrive_3=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
### Section 4 AWS
- variable: addEBSDrive_4
show_if: "addEBSDrive_3=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_4.aws.type
show_if: "addEBSDrive_4=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_4.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_4.aws.size
show_if: "addEBSDrive_4=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 5 AWS
- variable: addEBSDrive_5
show_if: "addEBSDrive_4=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_5.aws.type
show_if: "addEBSDrive_5=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_5.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_5.aws.size
show_if: "addEBSDrive_5=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 6 AWS
- variable: addEBSDrive_6
show_if: "addEBSDrive_5=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_6.aws.type
show_if: "addEBSDrive_6=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_6.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_6.aws.size
show_if: "addEBSDrive_6=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 7 AWS
- variable: addEBSDrive_7
show_if: "addEBSDrive_6=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_7.aws.type
show_if: "addEBSDrive_7=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_7.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_7.aws.size
show_if: "addEBSDrive_7=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 8 AWS
- variable: addEBSDrive_8
show_if: "addEBSDrive_7=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_8.aws.type
show_if: "addEBSDrive_8=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_8.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_8.aws.size
show_if: "addEBSDrive_8=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 9 AWS
- variable: addEBSDrive_9
show_if: "addEBSDrive_8=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_9.aws.type
show_if: "addEBSDrive_9=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_9.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_9.aws.size
show_if: "addEBSDrive_9=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
### Section 10 AWS
- variable: addEBSDrive_10
show_if: "addEBSDrive_9=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_10.aws.type
show_if: "addEBSDrive_10=true"
description: "Select the type of EBS volume"
label: "EBS volume"
type: enum
required: true
show_subquestion_if: "IO1"
group: "Storage Parameters"
options:
- "GP2"
- "IO1"
subquestions:
- variable: drive_10.aws.iops
required: true
description: "*IOPS required from EBS volume"
type: int
label: IOPS
- variable: drive_10.aws.size
show_if: "addEBSDrive_10=true"
description: "Volume size"
label: "Size"
required: true
type: int
group: "Storage Parameters"
##################################################### GOOGLE CLOUD ################################
#### Section 1 GC
- variable: drive_1.gc.type
show_if: "provider=Google cloud/GKE&&deviceConfig=Create Using a Spec"
description: "Select volume type"
label: "Volume"
type: enum
default: "standard"
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_1.gc.size
show_if: "provider=Google cloud/GKE&&deviceConfig=Create Using a Spec"
description: "Volume size"
label: "Size"
type: int
default: 150
required: true
group: "Storage Parameters"
#### Section 2 GC
- variable: addGCDrive_2
show_if: "provider=Google cloud/GKE&&deviceConfig=Create Using a Spec"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_2.gc.type
show_if: "addGCDrive_2=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_2.gc.size
show_if: "addGCDrive_2=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 3 GC
- variable: addGCDrive_3
show_if: "addGCDrive_2=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_3.gc.type
show_if: "addGCDrive_3=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_3.gc.size
show_if: "addGCDrive_3=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 4 GC
- variable: addGCDrive_4
show_if: "addGCDrive_3=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_4.gc.type
show_if: "addGCDrive_4=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_4.gc.size
show_if: "addGCDrive_4=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 5 GC
- variable: addGCDrive_5
show_if: "addGCDrive_4=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_5.gc.type
show_if: "addGCDrive_5=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_5.gc.size
show_if: "addGCDrive_5=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 6 GC
- variable: addGCDrive_6
show_if: "addGCDrive_5=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_6.gc.type
show_if: "addGCDrive_6=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_6.gc.size
show_if: "addGCDrive_6=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 7 GC
- variable: addGCDrive_7
show_if: "addGCDrive_6=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_7.gc.type
show_if: "addGCDrive_6=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_7.gc.size
show_if: "addGCDrive_7=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 8 GC
- variable: addGCDrive_8
show_if: "addGCDrive_7=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_8.gc.type
show_if: "addGCDrive_8=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_8.gc.size
show_if: "addGCDrive_8=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 9 GC
- variable: addGCDrive_9
show_if: "addGCDrive_8=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_9.gc.type
show_if: "addGCDrive_9=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_9.gc.size
show_if: "addGCDrive_9=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
#### Section 10 GC
- variable: addGCDrive_10
show_if: "addGCDrive_9=true"
label: "Add another drive?"
type: boolean
default: false
group: "Storage Parameters"
- variable: drive_10.gc.type
show_if: "addGCDrive_10=true"
description: "Select volume type"
label: "Volume"
type: enum
required: true
group: "Storage Parameters"
options:
- "standard"
- "ssd"
- variable: drive_10.gc.size
show_if: "addGCDrive_10=true"
description: "Volume size"
label: "Size"
type: int
required: true
group: "Storage Parameters"
- variable: maxStorageNodes
show_if: "environment=Cloud&&deviceConfig=Create Using a Spec"
description: "Max storage nodes per availability zone"
label: "Max storage nodes (Optional)"
type: int
group: "Storage Parameters"
################################### Network options ################################ ################################### Network options ################################
- variable: dataInterface - variable: dataInterface
description: "Specify data network interface. This is useful if your instances have non-standard network interfaces. (example: eth1). By default, Portworx will select the first routable interface." description: "Specify your data network interface (example: `eth1`). If set to `auto`, Portworx will automatically select the first routable interface."
type: string type: string
label: "Data Network Interface" label: "Data Network Interface"
default: auto
group: "Network Parameters" group: "Network Parameters"
- variable: managementInterface - variable: managementInterface
description: "Specify management network interface. This is useful if your instances have non-standard network interfaces. (example: eth1). By default, Portworx will select the first routable interface.<Paste>" description: "Specify your management network interface (example: `eth1`). If set to `auto`, Portworx will automatically select the first routable interface."
type: string type: string
default: auto
label: "Management Network Interface" label: "Management Network Interface"
group: "Network Parameters" group: "Network Parameters"
################################### Platform options ################################ ################################### Platform options ################################
- variable: pksInstall - variable: platformOptions
default: false type: enum
label: "Installing on Pivotal Container Service (PKS)" label: "Platform"
description: "Select if installing on Pivotal Container service."
type: boolean
group: "Platform Parameters" group: "Platform Parameters"
- variable: AKSorEKSInstall options:
default: false - "AKS"
label: "Installing on AKS or EKS" - "EKS"
description: "Select if installing on Amazon Elastic Container Service for Kubernetes (EKS) or Azure Kubernetes Service (AKS)." - "GKE"
################################### Registry settings options ################################
- variable: customRegistry
label: "Use a custom container registry?"
type: boolean type: boolean
group: "Platform Parameters"
- variable: isTargetOSCoreOS
default: false default: false
label: "Installing on CoreOS" group: "Container Registry Parameters"
description: "Select if installing on CoreOS"
type: boolean
group: "Platform Parameters"
################################### Registry settings options ################################
- variable: registrySecret - variable: registrySecret
show_if: "customRegistry=true"
description: "Specify a custom Kubernetes secret that will be used to authenticate with a container registry. Must be defined in kube-system namespace. (example: regcred)" description: "Specify a custom Kubernetes secret that will be used to authenticate with a container registry. Must be defined in kube-system namespace. (example: regcred)"
type: string type: string
label: "Registry Kubernetes Secret" label: "Registry Kubernetes Secret"
group: "Container Registry Parameters" group: "Container Registry Parameters"
- variable: customRegistryURL - variable: customRegistryURL
show_if: "customRegistry=true"
description: "Specify a custom container registry server (including repository) that will be used instead of index.docker.io to download Docker images. (example: dockerhub.acme.net:5443 or myregistry.com/myrepository/)" description: "Specify a custom container registry server (including repository) that will be used instead of index.docker.io to download Docker images. (example: dockerhub.acme.net:5443 or myregistry.com/myrepository/)"
label: "Custom Registry URL" label: "Custom Registry URL"
type: string type: string
...@@ -123,63 +884,40 @@ questions: ...@@ -123,63 +884,40 @@ questions:
################################## Optional features ############################ ################################## Optional features ############################
- variable: csi # TODO: Once we have a stable CSI release, we will default this to enabled
description: "Select if you want to enable CSI (Container Storage Interface). CSI is still in ALPHA." #- variable: csi
type: boolean # description: "Select if you want to enable CSI (Container Storage Interface). CSI is still in ALPHA."
label: "Enable CSI" # type: boolean
default: false # label: "Enable CSI"
required: false # default: false
group: "Advanced parameters" # required: false
- variable: stork # group: "Advanced parameters"
default: true
label: "Install Stork"
description: "Storage Orchestration Runtime for Kubernetes (STORK) is a scheduler plugin that provides hyper-convergence, snapshots and storage-aware scheduling (recommended)."
type: boolean
group: "Advanced parameters"
- variable: storkVersion - variable: storkVersion
default: "2.1.0" default: "2.2.5"
label: "Stork version" label: "Stork version"
description: "Version of Stork to be used"
type: string type: string
group: "Advanced parameters" group: "Advanced parameters"
- variable: lighthouse
default: false
label: "Lighthouse"
description: "Select if you want to install Portworx Lighthouse GUI."
type: boolean
group: "Advanced parameters"
- variable: lighthouseVersion - variable: lighthouseVersion
default: "2.0.3" default: "2.0.5"
description: "Version of the Lighthouse GUI to be used"
type: string type: string
label: "Lighthouse version" label: "Lighthouse version"
group: "Advanced parameters" group: "Advanced parameters"
- variable: lighthouseSyncVersion
default: "0.3"
description: "Version of the Lighthouse sync app to be used"
type: string
label: "Lighthouse Sync version"
group: "Advanced parameters"
- variable: lighthouseStorkConnectorVersion
default: "0.1"
description: "Version of the Lighthouse stork connector to be used"
type: string
label: "Lighthouse stork connector version"
group: "Advanced parameters"
- variable: envVars - variable: envVars
label: "Environment variables" label: "Environment variables"
description: "semi-colon-separated list of environment variables that will be exported to portworx. (example: API_SERVER=http://lighthouse-new.portworx.com;MYENV1=val1;MYENV2=val2)" description: "Enter your environment variables separated by semicolons (example: API_SERVER=http://lighthouse-new.portworx.com;MYENV1=val1;MYENV2=val2). These environment variables will be exported to Portworx."
type: string type: string
group: "Advanced parameters" group: "Advanced parameters"
- variable: imageVersion - variable: imageVersion
default: "2.0.3.3" default: "2.1.5"
description: "The Portworx image version to be used while deploying"
type: string type: string
label: Portworx version to be deployed. label: Portworx version to be deployed.
group: "Advanced parameters" group: "Advanced parameters"
- variable: clusterName - variable: clusterName
description: "Name of the Portworx Cluster"
type: string type: string
label: Portworx cluster name label: Portworx cluster name
default: mycluster default: mycluster
......
...@@ -138,3 +138,268 @@ Create the name of the cluster role binding to use for hooks ...@@ -138,3 +138,268 @@ Create the name of the cluster role binding to use for hooks
{{ default "default" .Values.serviceAccount.hook.name }} {{ default "default" .Values.serviceAccount.hook.name }}
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{/*
String concatenation for drives in AWS section
*/}}
{{- define "px.storage" -}}
{{- $awsType1 := .Values.drive_1.aws.type -}}
{{- $awsType2 := .Values.drive_2.aws.type -}}
{{- $awsType3 := .Values.drive_3.aws.type -}}
{{- $awsType4 := .Values.drive_4.aws.type -}}
{{- $awsType5 := .Values.drive_5.aws.type -}}
{{- $awsType6 := .Values.drive_6.aws.type -}}
{{- $awsType7 := .Values.drive_7.aws.type -}}
{{- $awsType8 := .Values.drive_8.aws.type -}}
{{- $awsType9 := .Values.drive_9.aws.type -}}
{{- $awsType10 := .Values.drive_10.aws.type -}}
{{- $awsSize1 := .Values.drive_1.aws.size -}}
{{- $awsSize2 := .Values.drive_2.aws.size -}}
{{- $awsSize3 := .Values.drive_3.aws.size -}}
{{- $awsSize4 := .Values.drive_4.aws.size -}}
{{- $awsSize5 := .Values.drive_5.aws.size -}}
{{- $awsSize6 := .Values.drive_6.aws.size -}}
{{- $awsSize7 := .Values.drive_7.aws.size -}}
{{- $awsSize8 := .Values.drive_8.aws.size -}}
{{- $awsSize9 := .Values.drive_9.aws.size -}}
{{- $awsSize10 := .Values.drive_10.aws.size -}}
{{- $awsIops1 := .Values.drive_1.aws.iops -}}
{{- $awsIops2 := .Values.drive_2.aws.iops -}}
{{- $awsIops3 := .Values.drive_3.aws.iops -}}
{{- $awsIops4 := .Values.drive_4.aws.iops -}}
{{- $awsIops5 := .Values.drive_5.aws.iops -}}
{{- $awsIops6 := .Values.drive_6.aws.iops -}}
{{- $awsIops7 := .Values.drive_7.aws.iops -}}
{{- $awsIops8 := .Values.drive_8.aws.iops -}}
{{- $awsIops9 := .Values.drive_9.aws.iops -}}
{{- $awsIops10 := .Values.drive_10.aws.iops -}}
{{- $gcType1 := .Values.drive_1.gc.type -}}
{{- $gcType2 := .Values.drive_2.gc.type -}}
{{- $gcType3 := .Values.drive_3.gc.type -}}
{{- $gcType4 := .Values.drive_4.gc.type -}}
{{- $gcType5 := .Values.drive_5.gc.type -}}
{{- $gcType6 := .Values.drive_6.gc.type -}}
{{- $gcType7 := .Values.drive_7.gc.type -}}
{{- $gcType8 := .Values.drive_8.gc.type -}}
{{- $gcType9 := .Values.drive_9.gc.type -}}
{{- $gcType10 := .Values.drive_10.gc.type -}}
{{- $gcSize1 := .Values.drive_1.gc.size -}}
{{- $gcSize2 := .Values.drive_2.gc.size -}}
{{- $gcSize3 := .Values.drive_3.gc.size -}}
{{- $gcSize4 := .Values.drive_4.gc.size -}}
{{- $gcSize5 := .Values.drive_5.gc.size -}}
{{- $gcSize6 := .Values.drive_6.gc.size -}}
{{- $gcSize7 := .Values.drive_7.gc.size -}}
{{- $gcSize8 := .Values.drive_8.gc.size -}}
{{- $gcSize9 := .Values.drive_9.gc.size -}}
{{- $gcSize10 := .Values.drive_10.gc.size -}}
{{- $usefileSystemDrive := .Values.usefileSystemDrive | default false }}
{{- $usedrivesAndPartitions := .Values.usedrivesAndPartitions | default false }}
{{- $deployEnvironmentIKS := .Capabilities.KubeVersion.GitVersion | regexMatch "IKS" }}
{{- if eq "OnPrem" .Values.environment -}}
{{- if eq "Manually specify disks" .Values.onpremStorage }}
{{- if .Values.existingDisk1 }}
"-s", "{{- .Values.existingDisk1 }}",
{{- end }}
{{- if .Values.existingDisk2 -}}
"-s", "{{- .Values.existingDisk2 }}",
{{- end }}
{{- if .Values.existingDisk3 -}}
"-s", "{{- .Values.existingDisk3 }}",
{{- end }}
{{- if .Values.existingDisk4 -}}
"-s", "{{- .Values.existingDisk4 }}",
{{- end }}
{{- if .Values.existingDisk5 }}
"-s", "{{- .Values.existingDisk5 }}",
{{- end }}
{{- else if eq "Automatically scan disks" .Values.onpremStorage -}}
{{- if or $usedrivesAndPartitions $deployEnvironmentIKS }}
"-f",
{{- end }}
{{- if eq $usedrivesAndPartitions true }}
"-A",
{{- else }}
"-a",
{{- end -}}
{{- end -}}
{{- else if eq "Cloud" .Values.environment -}}
{{- if eq "Consume Unused" .Values.deviceConfig -}}
{{- if or $usedrivesAndPartitions $deployEnvironmentIKS }}
"-f",
{{- end }}
{{- if eq $usedrivesAndPartitions true }}
"-A",
{{- else }}
"-a",
{{- end -}}
{{- end }}
{{/*------------------- ----------------- Google cloud/GKE -------------- --------------- */}}
{{- if eq "Google cloud/GKE" .Values.provider -}}
{{- if eq "Use Existing Disks" .Values.deviceConfig -}}
{{- if .Values.existingDisk1 -}}
"-s", "{{- .Values.existingDisk1 -}}",
{{- end -}}
{{- if .Values.existingDisk2 -}}
"-s", "{{- .Values.existingDisk2 -}}",
{{- end -}}
{{- if .Values.existingDisk3 -}}
"-s", "{{- .Values.existingDisk3 -}}",
{{- end -}}
{{- if .Values.existingDisk4 -}}
"-s", "{{- .Values.existingDisk4 -}}",
{{- end -}}
{{- if .Values.existingDisk5 -}}
"-s", "{{- .Values.existingDisk5 -}}",
{{- end -}}
{{- else if eq "Create Using a Spec" .Values.deviceConfig -}}
{{- if $gcType1 }}
"-s", "type=pd-{{$gcType1 | lower}},size={{$gcSize1}}",
{{- end }}
{{/*------------------- DRIVE 2 --------------- */}}
{{- if $gcType2 -}}
"-s", "type=pd-{{$gcType2 | lower}},size={{$gcSize2}}",
{{- end }}
{{/*------------------- DRIVE 3 --------------- */}}
{{- if $gcType3 -}}
"-s", "type=pd-{{$gcType3 | lower}},size={{$gcSize3}}",
{{- end }}
{{/*------------------- DRIVE 4 --------------- */}}
{{- if $gcType4 -}}
"-s", "type=pd-{{$gcType4 | lower}},size={{$gcSize4}}",
{{- end }}
{{/*------------------- DRIVE 5 --------------- */}}
{{- if $gcType5 -}}
"-s", "type=pd-{{$gcType5 | lower}},size={{$gcSize5}}",
{{- end }}
{{/*------------------- DRIVE 6 --------------- */}}
{{- if $gcType6 -}}
"-s", "type=pd-{{$gcType6 | lower}},size={{$gcSize6}}",
{{- end }}
{{/*------------------- DRIVE 7 --------------- */}}
{{- if $gcType7 -}}
"-s", "type=pd-{{$gcType7 | lower}},size={{$gcSize7}}",
{{- end }}
{{/*------------------- DRIVE 8 --------------- */}}
{{- if $gcType8 -}}
"-s", "type=pd-{{$gcType8 | lower}},size={{$gcSize8}}",
{{- end }}
{{/*------------------- DRIVE 9 --------------- */}}
{{- if $gcType9 -}}
"-s", "type=pd-{{$gcType9 | lower}},size={{$gcSize9}}",
{{- end }}
{{/*------------------- DRIVE 10 --------------- */}}
{{- if $gcType10 -}}
"-s", "type=pd-{{$gcType1 | lower}},size={{$gcSize10}}",
{{- end }}
{{- end -}}
{{/*------------------- ----------------- AWS -------------- --------------- */}}
{{- else if eq "AWS" .Values.provider -}}
{{- if eq "Use Existing Disks" .Values.deviceConfig -}}
{{- if .Values.existingDisk1 -}}
"-s", "{{ .Values.existingDisk1 }}",
{{- end -}}
{{- if .Values.existingDisk2 -}}
"-s", "{{ .Values.existingDisk2 }}",
{{- end -}}
{{- if .Values.existingDisk3 -}}
"-s", "{{ .Values.existingDisk3 }}",
{{- end -}}
{{- if .Values.existingDisk4 -}}
"-s", "{{ .Values.existingDisk4 }}",
{{- end -}}
{{- if .Values.existingDisk5 -}}
"-s", "{{ .Values.existingDisk5 }}",
{{- end -}}
{{- else if eq "Create Using a Spec" .Values.deviceConfig -}}
{{- if ne "none" $awsType1 }}
{{- if eq "GP2" $awsType1 -}}
"-s", "type={{$awsType1 | lower}},size={{$awsSize1}}",
{{- else if eq "IO1" $awsType1 -}}
"-s", "type={{$awsType1 | lower}},size={{$awsSize1}},iops={{$awsIops1}}",
{{- end }}
{{- end }}
{{/*------------------- DRIVE 2 --------------- */}}
{{- if ne "none" $awsType2 -}}
{{- if eq "GP2" $awsType2 -}}
"-s", "type={{$awsType2 | lower}},size={{$awsSize2}}",
{{- else if eq "IO1" $awsType2 -}}
"-s", "type={{$awsType2 | lower}},size={{$awsSize2}},iops={{$awsIops2}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 3 --------------- */}}
{{- if ne "none" $awsType3 }}
{{- if eq "GP2" $awsType3 -}}
"-s", "type={{$awsType3 | lower}},size={{$awsSize3}}",
{{- else if eq "IO1" $awsType3 -}}
"-s", "type={{$awsType3 | lower}},size={{$awsSize3}},iops={{$awsIops3}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 4 --------------- */}}
{{- if ne "none" $awsType4 }}
{{- if eq "GP2" $awsType4 -}}
"-s", "type={{$awsType4 | lower}},size={{$awsSize4}}",
{{- else if eq "IO1" $awsType4 -}}
"-s", "type={{$awsType4 | lower}},size={{$awsSize4}},iops={{$awsIops4}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 5 --------------- */}}
{{- if ne "none" $awsType5 }}
{{- if eq "GP2" $awsType5 -}}
"-s", "type={{$awsType5 | lower}},size={{$awsSize5}}",
{{- else if eq "IO1" $awsType5 -}}
"-s", "type={{$awsType5 | lower}},size={{$awsSize5}},iops={{$awsIops5}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 6 --------------- */}}
{{- if ne "none" $awsType6 }}
{{- if eq "GP2" $awsType6 -}}
"-s", "type={{$awsType6 | lower}},size={{$awsSize6}}",
{{- else if eq "IO1" $awsType6 -}}
"-s", "type={{$awsType6 | lower}},size={{$awsSize6}},iops={{$awsIops6}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 7 --------------- */}}
{{- if ne "none" $awsType7 }}
{{- if eq "GP2" $awsType7 -}}
"-s", "type={{$awsType7 | lower}},size={{$awsSize7}}",
{{- else if eq "IO1" $awsType7 -}}
"-s", "type={{$awsType7 | lower}},size={{$awsSize7}},iops={{$awsIops7}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 8 --------------- */}}
{{- if ne "none" $awsType8 }}
{{- if eq "GP2" $awsType8 -}}
"-s", "type={{$awsType8 | lower}},size={{$awsSize8}}",
{{- else if eq "IO1" $awsType8 -}}
"-s", "type={{$awsType8 | lower}},size={{$awsSize8}},iops={{$awsIops8}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 9 --------------- */}}
{{- if ne "none" $awsType9 }}
{{- if eq "GP2" $awsType9 -}}
"-s", "type={{$awsType9 | lower}},size={{$awsSize9}}",
{{- else if eq "IO1" $awsType9 -}}
"-s", "type={{$awsType9 | lower}},size={{$awsSize9}},iops={{$awsIops9}}",
{{- end -}}
{{- end }}
{{/*------------------- DRIVE 10 --------------- */}}
{{- if ne "none" $awsType10 }}
{{- if eq "GP2" $awsType10 -}}
"-s", "type={{$awsType10 | lower}},size={{$awsSize10}}",
{{- else if eq "IO1" $awsType10 -}}
"-s", "type={{$awsType10 | lower}},size={{$awsSize10}},iops={{$awsIops10}}",
{{- end -}}
{{- end }}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end }}
{{- $customRegistryURL := .Values.customRegistryURL | default "none" }}
{{- $registrySecret := .Values.registrySecret | default "none" }}
{{- $etcdCertPath := .Values.etcd.certPath | default "none" }}
{{- $etcdCA := .Values.etcd.ca | default "none" }}
{{- $etcdCert := .Values.etcd.cert | default "none" }}
{{- $etcdKey := .Values.etcd.key | default "none" }}
apiVersion: batch/v1
kind: Job
metadata:
namespace: kube-system
name: px-hook-etcd-preinstall
labels:
heritage: {{.Release.Service | quote }}
release: {{.Release.Name | quote }}
app.kubernetes.io/managed-by: {{.Release.Service | quote }}
app.kubernetes.io/instance: {{.Release.Name | quote }}
chart: "{{.Chart.Name}}-{{.Chart.Version}}"
annotations:
"helm.sh/hook": pre-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": before-hook-creation
spec:
{{ if semverCompare ">= 1.8-0" .Capabilities.KubeVersion.GitVersion }}
backoffLimit: 0
{{ else }}
activeDeadlineSeconds: 30
{{ end }}
template:
spec:
{{- if not (eq $registrySecret "none") }}
imagePullSecrets:
- name: {{ $registrySecret }}
{{- end }}
restartPolicy: Never
containers:
- name: pre-install-job
terminationMessagePath: '/dev/termination-log'
terminationMessagePolicy: 'FallbackToLogsOnError'
imagePullPolicy: Always
{{- if eq $customRegistryURL "none" }}
image: "portworx/px-etcd-preinstall-hook:v1.2"
{{- else}}
image: "{{ $customRegistryURL }}/portworx/px-etcd-preinstall-hook:v1.2"
{{- end }}
{{- if not (eq $etcdCertPath "none") }}
command: ['/bin/bash']
args: ['/usr/bin/etcdStatus.sh',
"{{ .Values.kvdb }}",
{{- if ne $etcdCA "none" }}
"{{$etcdCA}}",
{{- end -}}
{{- if ne $etcdCert "none" }}
"{{$etcdCert}}",
{{- end -}}
{{- if ne $etcdKey "none" }}
"{{$etcdKey}}",
{{- end -}}
]
volumeMounts:
- mountPath: /etc/pwx/etcdcerts
name: etcdcerts
volumes:
- name: etcdcerts
secret:
secretName: px-etcd-certs
items:
- key: ca.pem
path: ca.pem
{{- if ne $etcdCert "none" }}
- key: client.pem
path: client.pem
{{- end -}}
{{- if ne $etcdKey "none" }}
- key: client-key.pem
path: client-key.pem
{{- end -}}
{{- else}}
command: ['/bin/bash']
args: ['/usr/bin/etcdStatus.sh',"{{ .Values.kvdb }}"]
{{- end}}
...@@ -30,13 +30,13 @@ rules: ...@@ -30,13 +30,13 @@ rules:
verbs: ["get", "list", "watch"] verbs: ["get", "list", "watch"]
- apiGroups: [""] - apiGroups: [""]
resources: ["endpoints", "services"] resources: ["endpoints", "services"]
verbs: ["create", "delete", "get"] verbs: ["create", "delete", "get", "update"]
- apiGroups: [""] - apiGroups: [""]
resources: ["secrets"] resources: ["secrets"]
verbs: ["get", "list"] verbs: ["get", "list"]
- apiGroups: [""] - apiGroups: [""]
resources: ["nodes"] resources: ["nodes"]
verbs: ["get", "list"] verbs: ["get", "list", "watch"]
- apiGroups: [""] - apiGroups: [""]
resources: ["events"] resources: ["events"]
verbs: ["watch"] verbs: ["watch"]
...@@ -63,7 +63,7 @@ roleRef: ...@@ -63,7 +63,7 @@ roleRef:
name: portworx-pvc-controller-role name: portworx-pvc-controller-role
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
--- ---
apiVersion: extensions/v1beta1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
...@@ -87,14 +87,9 @@ spec: ...@@ -87,14 +87,9 @@ spec:
name: portworx-pvc-controller name: portworx-pvc-controller
tier: control-plane tier: control-plane
spec: spec:
{{- if (and (.Values.openshiftInstall) (eq .Values.openshiftInstall true))}}
imagePullSecrets:
- name: {{ required "A registry secret is required for openshift installation" .Values.registrySecret }}
{{- else }}
{{- if not (empty .Values.registrySecret) }} {{- if not (empty .Values.registrySecret) }}
imagePullSecrets: imagePullSecrets:
- name: {{ .Values.registrySecret }} - name: {{ .Values.registrySecret }}
{{- end }}
{{- end }} {{- end }}
containers: containers:
- command: - command:
......
...@@ -49,7 +49,7 @@ spec: ...@@ -49,7 +49,7 @@ spec:
clusterIP: None clusterIP: None
--- ---
kind: StatefulSet kind: StatefulSet
apiVersion: apps/v1beta1 apiVersion: apps/v1
metadata: metadata:
name: px-csi-ext name: px-csi-ext
namespace: kube-system namespace: kube-system
......
{{/* Setting defaults if they are omitted. */}} {{/* Setting defaults if they are omitted. */}}
{{- $deployEnvironmentIKS := .Capabilities.KubeVersion.GitVersion | regexMatch "IKS" }} {{- $deployEnvironmentIKS := .Capabilities.KubeVersion.GitVersion | regexMatch "IKS" }}
{{- $usefileSystemDrive := .Values.usefileSystemDrive | default false }} {{- $usefileSystemDrive := .Values.usefileSystemDrive | default false }}
{{- $drives := .Values.drives | default "none" }}
{{- $usedrivesAndPartitions := .Values.usedrivesAndPartitions | default false }} {{- $usedrivesAndPartitions := .Values.usedrivesAndPartitions | default false }}
{{- $secretType := .Values.secretType | default "k8s" }} {{- $secretType := .Values.secretType | default "k8s" }}
{{- $journalDevice := .Values.journalDevice | default "none" }} {{- $journalDevice := .Values.journalDevice | default "none" }}
{{- $maxStorageNodes := .Values.maxStorageNodes | default "none" }}
{{- $customRegistryURL := .Values.customRegistryURL | default "none" }} {{- $customRegistryURL := .Values.customRegistryURL | default "none" }}
{{- $registrySecret := .Values.registrySecret | default "none" }} {{- $registrySecret := .Values.registrySecret | default "none" }}
...@@ -15,35 +15,40 @@ ...@@ -15,35 +15,40 @@
{{- $isCoreOS := .Values.isTargetOSCoreOS | default false }} {{- $isCoreOS := .Values.isTargetOSCoreOS | default false }}
{{- $pksInstall := .Values.pksInstall | default false }} {{- $pksInstall := .Values.pksInstall | default false }}
{{- $internalKVDB := .Values.internalKVDB | default false }} {{- $internalKVDB := .Values.etcdType | default "none" }}
{{- $csi := .Values.csi | default false }} {{- $csi := .Values.csi | default false }}
{{- $etcdCredentials := .Values.etcd.credentials | default "none:none" }} {{- $etcdCredentials := .Values.etcd.credentials | default "none:none" }}
{{- $etcdCertPath := .Values.etcd.certPath | default "none" }} {{- $etcdCertPath := .Values.etcd.ca | default "none" }}
{{- $etcdCA := .Values.etcd.ca | default "none" }} {{- $etcdCA := .Values.etcd.ca | default "none" }}
{{- $etcdCert := .Values.etcd.cert | default "none" }} {{- $etcdCert := .Values.etcd.cert | default "none" }}
{{- $etcdKey := .Values.etcd.key | default "none" }} {{- $etcdKey := .Values.etcd.key | default "none" }}
{{- $consulToken := .Values.consul.token | default "none" }} {{- $consulToken := .Values.consul.token | default "none" }}
{{- $misc := .Values.misc | default "" | split " " }} {{- $misc := .Values.misc | default "" | split " " }}
{{- $etcdEndPoints := .Values.kvdb -}} {{- $etcdEndPoints := .Values.kvdb }}
apiVersion: extensions/v1beta1 apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: portworx name: portworx
namespace: kube-system namespace: kube-system
labels:
name: portworx
spec: spec:
minReadySeconds: 0 minReadySeconds: 0
updateStrategy: updateStrategy:
type: RollingUpdate type: RollingUpdate
rollingUpdate: rollingUpdate:
maxUnavailable: 1 maxUnavailable: 1
selector:
matchLabels:
name: portworx
app: portworx
template: template:
metadata: metadata:
labels: labels:
app: portworx app: portworx
name: portworx name: portworx
# {{- include "px.labels" . | indent 8 }}
spec: spec:
affinity: affinity:
nodeAffinity: nodeAffinity:
...@@ -74,25 +79,10 @@ spec: ...@@ -74,25 +79,10 @@ spec:
terminationMessagePath: "/tmp/px-termination-log" terminationMessagePath: "/tmp/px-termination-log"
imagePullPolicy: Always imagePullPolicy: Always
args: args:
{{- with .Values }}
[ [
{{- if eq $drives "none" }} {{ include "px.storage" . | indent 0 }}
{{- if eq $usedrivesAndPartitions true }} {{- with .Values -}}
"-A", {{- if eq "Built-in" $internalKVDB }}
{{- else }}
"-a",
{{- end -}}
{{- if or $usefileSystemDrive $deployEnvironmentIKS }}
"-f",
{{- end }}
{{- else }}
{{- $driveNames := $drives | split ";" }}
{{- range $index, $name := $driveNames }}
"-s", "{{ $name }}",
{{- end -}}
{{- end -}}
{{- if eq $internalKVDB true }}
"-b", "-b",
{{- end -}} {{- end -}}
...@@ -100,14 +90,19 @@ spec: ...@@ -100,14 +90,19 @@ spec:
"-j", "{{ $journalDevice }}", "-j", "{{ $journalDevice }}",
{{- end -}} {{- end -}}
{{- if empty $etcdEndPoints }} {{- if $etcdEndPoints -}}
{{- if eq $internalKVDB false }}
"{{ required "A valid kvdb url is required." .kvdb }}"
{{- end -}}
{{- else }}
"-k", "{{ regexReplaceAllLiteral "(;)" .kvdb "," }}", "-k", "{{ regexReplaceAllLiteral "(;)" .kvdb "," }}",
{{- else }}
{{- if ne "Built-in" $internalKVDB }}
{{- if eq "US region" .region }}
"-k", "etcd:http://px-etcd1.portworx.com:2379,etcd:http://px-etcd2.portworx.com:2379,etcd:http://px-etcd3.portworx.com:2379",
{{- else if eq "EU region" .region }}
"-k", "etcd:http://px-eu-etcd1.portworx.com:2379,etcd:http://px-eu-etcd2.portworx.com:2379,etcd:http://px-eu-etcd3.portworx.com:2379",
{{- else }}
"{{ required "A valid kvdb url is required." .kvdb }}"
{{- end -}}
{{- end -}}
{{- end -}} {{- end -}}
"-c", "{{ required "Clustername cannot be empty" .clusterName }}", "-c", "{{ required "Clustername cannot be empty" .clusterName }}",
{{- if ne $secretType "none" }} {{- if ne $secretType "none" }}
...@@ -118,11 +113,11 @@ spec: ...@@ -118,11 +113,11 @@ spec:
{{- end -}} {{- end -}}
{{- end -}} {{- end -}}
{{- if ne $dataInterface "none" }} {{- if and (ne $dataInterface "none") (ne $dataInterface "auto")}}
"-d", "{{ $dataInterface }}", "-d", "{{ $dataInterface }}",
{{- end -}} {{- end -}}
{{- if ne $managementInterface "none" }} {{- if and (ne $managementInterface "none") (ne $managementInterface "auto") }}
"-m", "{{ $managementInterface }}", "-m", "{{ $managementInterface }}",
{{- end -}} {{- end -}}
...@@ -131,15 +126,15 @@ spec: ...@@ -131,15 +126,15 @@ spec:
{{- end -}} {{- end -}}
{{- if ne $etcdCA "none" }} {{- if ne $etcdCA "none" }}
"-ca", "{{ $etcdCA }}", "-ca", "/etc/pwx/etcdcerts/{{ $etcdCA }}",
{{- end -}} {{- end -}}
{{- if ne $etcdCert "none" }} {{- if ne $etcdCert "none" }}
"-cert", "{{ $etcdCert }}", "-cert", "/etc/pwx/etcdcerts/{{ $etcdCert }}",
{{- end -}} {{- end -}}
{{- if ne $etcdKey "none" }} {{- if ne $etcdKey "none" }}
"-key", "{{ $etcdKey }}", "-key", "/etc/pwx/etcdcerts/{{ $etcdKey }}",
{{- end -}} {{- end -}}
{{- if ne $consulToken "none" }} {{- if ne $consulToken "none" }}
...@@ -153,8 +148,8 @@ spec: ...@@ -153,8 +148,8 @@ spec:
{{ end -}} {{ end -}}
"-x", "kubernetes" "-x", "kubernetes"
] {{- end -}}
{{- end }} ]
env: env:
- name: "PX_TEMPLATE_VERSION" - name: "PX_TEMPLATE_VERSION"
value: "v2" value: "v2"
...@@ -308,22 +303,18 @@ spec: ...@@ -308,22 +303,18 @@ spec:
restartPolicy: Always restartPolicy: Always
serviceAccountName: px-account serviceAccountName: px-account
volumes: volumes:
{{- if not (eq $etcdCertPath "none") }} {{- if ne $etcdCertPath "none" }}
- name: etcdcerts - name: etcdcerts
secret: secret:
secretName: px-etcd-certs secretName: px-etcd-certs
items: items:
- key: ca.pem - key: "{{ $etcdCA }}"
path: ca.pem path: "{{ $etcdCA }}"
{{- if ne $etcdCert "none" }} - key: "{{ $etcdCert }}"
- key: client.pem path: "{{ $etcdCert }}"
path: client.pem - key: "{{ $etcdKey }}"
{{- end -}} path: "{{ $etcdKey }}"
{{- if ne $etcdKey "none" }} {{- end}}
- key: client-key.pem
path: client-key.key
{{- end -}}
{{- end}}
- name: dockersock - name: dockersock
hostPath: hostPath:
path: {{if eq $pksInstall true}}/var/vcap/sys/run/docker/docker.sock{{else}}/var/run/docker.sock{{end}} path: {{if eq $pksInstall true}}/var/vcap/sys/run/docker/docker.sock{{else}}/var/run/docker.sock{{end}}
......
...@@ -55,7 +55,7 @@ spec: ...@@ -55,7 +55,7 @@ spec:
selector: selector:
tier: px-web-console tier: px-web-console
--- ---
apiVersion: apps/v1beta2 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: px-lighthouse name: px-lighthouse
......
...@@ -34,6 +34,12 @@ rules: ...@@ -34,6 +34,12 @@ rules:
- apiGroups: ["portworx.io"] - apiGroups: ["portworx.io"]
resources: ["volumeplacementstrategies"] resources: ["volumeplacementstrategies"]
verbs: ["get", "list"] verbs: ["get", "list"]
- apiGroups: ["stork.libopenstorage.org"]
resources: ["backuplocations"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["events"]
verbs: ["create"]
--- ---
kind: ClusterRoleBinding kind: ClusterRoleBinding
......
...@@ -8,7 +8,7 @@ metadata: ...@@ -8,7 +8,7 @@ metadata:
spec: spec:
selector: selector:
name: portworx name: portworx
type: NodePort type: ClusterIP
ports: ports:
- name: px-api - name: px-api
protocol: TCP protocol: TCP
...@@ -33,7 +33,7 @@ metadata: ...@@ -33,7 +33,7 @@ metadata:
spec: spec:
selector: selector:
name: portworx-api name: portworx-api
type: NodePort type: ClusterIP
ports: ports:
- name: px-api - name: px-api
protocol: TCP protocol: TCP
......
{{- if (.Values.stork) and (eq .Values.stork true)}} {{- if (.Values.stork) and (eq .Values.stork true)}}
{{- $isCoreOS := .Values.isTargetOSCoreOS | default false }} {{- $isCoreOS := .Values.isTargetOSCoreOS | default false }}
{{- $customRegistryURL := .Values.customRegistryURL | default "none" }} {{- $customRegistryURL := .Values.customRegistryURL | default "none" }}
{{- $registrySecret := .Values.registrySecret | default "none" }} {{- $registrySecret := .Values.registrySecret | default "none" }}
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
...@@ -61,65 +61,20 @@ metadata: ...@@ -61,65 +61,20 @@ metadata:
kind: ClusterRole kind: ClusterRole
apiVersion: {{ template "rbac.apiVersion" . }} apiVersion: {{ template "rbac.apiVersion" . }}
metadata: metadata:
name: stork-role name: stork-role
rules: rules:
- apiGroups: [""]
resources: ["pods", "pods/exec"]
verbs: ["get", "list", "delete", "create"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["list", "watch", "create", "update", "patch"]
- apiGroups: ["stork.libopenstorage.org"]
resources: ["rules"]
verbs: ["get", "list"]
- apiGroups: ["stork.libopenstorage.org"]
resources: ["migrations", "clusterpairs", "groupvolumesnapshots"]
verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["create", "list", "watch", "delete", "get"]
- apiGroups: ["volumesnapshot.external-storage.k8s.io"]
resources: ["volumesnapshots"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: ["volumesnapshot.external-storage.k8s.io"]
resources: ["volumesnapshotdatas"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "create", "update"]
- apiGroups: [""]
resources: ["services"]
verbs: ["get"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: ["*"]
resources: ["deployments", "deployments/extensions"]
verbs: ["list", "get", "watch", "patch", "update", "initialize"]
- apiGroups: ["*"]
resources: ["statefulsets", "statefulsets/extensions"]
verbs: ["list", "get", "watch", "patch", "update", "initialize"]
- apiGroups: ["*"] - apiGroups: ["*"]
resources: ["*"] resources: ["*"]
verbs: ["list", "get"] verbs: ["*"]
--- ---
kind: ClusterRoleBinding kind: ClusterRoleBinding
apiVersion: {{ template "rbac.apiVersion" . }} apiVersion: {{ template "rbac.apiVersion" . }}
metadata: metadata:
name: stork-role-binding name: stork-role-binding
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: stork-account name: stork-account
namespace: kube-system namespace: kube-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: stork-role name: stork-role
...@@ -138,7 +93,29 @@ spec: ...@@ -138,7 +93,29 @@ spec:
port: 8099 port: 8099
targetPort: 8099 targetPort: 8099
--- ---
apiVersion: extensions/v1beta1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: volumeplacementstrategies.portworx.io
spec:
group: portworx.io
versions:
- name: v1beta2
served: true
storage: true
- name: v1beta1
served: false
storage: false
scope: Cluster
names:
plural: volumeplacementstrategies
singular: volumeplacementstrategy
kind: VolumePlacementStrategy
shortNames:
- vps
- vp
---
apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
annotations: annotations:
...@@ -154,6 +131,10 @@ spec: ...@@ -154,6 +131,10 @@ spec:
maxUnavailable: 1 maxUnavailable: 1
type: RollingUpdate type: RollingUpdate
replicas: 3 replicas: 3
selector:
matchLabels:
name: stork
tier: control-plane
template: template:
metadata: metadata:
annotations: annotations:
...@@ -167,17 +148,17 @@ spec: ...@@ -167,17 +148,17 @@ spec:
- name: {{ $registrySecret }} - name: {{ $registrySecret }}
{{- end }} {{- end }}
containers: containers:
- command: - command:
- /stork - /stork
- --driver=pxd - --driver=pxd
- --verbose - --verbose
- --leader-elect=true - --leader-elect=true
imagePullPolicy: Always imagePullPolicy: Always
image: {{ template "px.getStorkImage" . }}:{{ required "A valid Image tag is required in the SemVer format" .Values.storkVersion }} image: {{ template "px.getStorkImage" . }}:{{ required "A valid Image tag is required in the SemVer format" .Values.storkVersion }}
resources: resources:
requests: requests:
cpu: '0.1' cpu: '0.1'
name: stork name: stork
hostPID: false hostPID: false
affinity: affinity:
podAntiAffinity: podAntiAffinity:
...@@ -187,7 +168,7 @@ spec: ...@@ -187,7 +168,7 @@ spec:
- key: "name" - key: "name"
operator: In operator: In
values: values:
- stork - stork
topologyKey: "kubernetes.io/hostname" topologyKey: "kubernetes.io/hostname"
serviceAccountName: stork-account serviceAccountName: stork-account
--- ---
...@@ -260,15 +241,15 @@ apiVersion: {{ template "rbac.apiVersion" . }} ...@@ -260,15 +241,15 @@ apiVersion: {{ template "rbac.apiVersion" . }}
metadata: metadata:
name: stork-scheduler-role-binding name: stork-scheduler-role-binding
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: stork-scheduler-account name: stork-scheduler-account
namespace: kube-system namespace: kube-system
roleRef: roleRef:
kind: ClusterRole kind: ClusterRole
name: stork-scheduler-role name: stork-scheduler-role
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
--- ---
apiVersion: apps/v1beta1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
labels: labels:
...@@ -278,6 +259,10 @@ metadata: ...@@ -278,6 +259,10 @@ metadata:
namespace: kube-system namespace: kube-system
spec: spec:
replicas: 3 replicas: 3
selector:
matchLabels:
component: scheduler
tier: control-plane
template: template:
metadata: metadata:
labels: labels:
...@@ -286,28 +271,28 @@ spec: ...@@ -286,28 +271,28 @@ spec:
name: stork-scheduler name: stork-scheduler
spec: spec:
containers: containers:
- command: - command:
- /usr/local/bin/kube-scheduler - /usr/local/bin/kube-scheduler
- --address=0.0.0.0 - --address=0.0.0.0
- --leader-elect=true - --leader-elect=true
- --scheduler-name=stork - --scheduler-name=stork
- --policy-configmap=stork-config - --policy-configmap=stork-config
- --policy-configmap-namespace=kube-system - --policy-configmap-namespace=kube-system
- --lock-object-name=stork-scheduler - --lock-object-name=stork-scheduler
image: "{{ template "px.getk8sImages" . }}/kube-scheduler-amd64:{{ template "px.kubernetesVersion" . }}" image: "{{ template "px.getk8sImages" . }}/kube-scheduler-amd64:{{ template "px.kubernetesVersion" . }}"
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
port: 10251 port: 10251
initialDelaySeconds: 15 initialDelaySeconds: 15
name: stork-scheduler name: stork-scheduler
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
port: 10251 port: 10251
resources: resources:
requests: requests:
cpu: '0.1' cpu: '0.1'
affinity: affinity:
podAntiAffinity: podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
...@@ -316,8 +301,8 @@ spec: ...@@ -316,8 +301,8 @@ spec:
- key: "name" - key: "name"
operator: In operator: In
values: values:
- stork-scheduler - stork-scheduler
topologyKey: "kubernetes.io/hostname" topologyKey: "kubernetes.io/hostname"
hostPID: false hostPID: false
serviceAccountName: stork-scheduler-account serviceAccountName: stork-scheduler-account
{{- end }} {{- end }}
# Please uncomment and specify values for these options as per your requirements. # Please uncomment and specify values for these options as per your requirements.
drives: none # NOTE: This is a ";" seperated list of drives. For eg: "/dev/sda;/dev/sdb;/dev/sdc" Defaults to use -A switch. kvdb:
usefileSystemDrive: false # true/false Instructs PX to use an unmounted Drive even if it has a filesystem. ownEtcdOption: none
usedrivesAndPartitions: false # Defaults to false. Change to true and PX will use unmounted drives and partitions. etcdAuth: none
journalDevice: etcdType: none # KVDB type
kvdb: "etcd:http://192.168.70.90:2379"
internalKVDB: false # internal KVDB
etcd: etcd:
credentials: none:none # Username and password for ETCD authentication in the form user:password credentials: none:none # Username and password for ETCD authentication in the form user:password
ca: none # Name of CA file for ETCD authentication. server.ca ca: none # Name of CA file for ETCD authentication. server.ca
cert: none # Name of certificate for ETCD authentication. Should be server.crt cert: none # Name of certificate for ETCD authentication. Should be server.crt
key: none # Name of certificate key for ETCD authentication Should be server.key key: none # Name of certificate key for ETCD authentication Should be server.key
consul: consul:
token: none # ACL token value used for Consul authentication. (example: 398073a8-5091-4d9c-871a-bbbeb030d1f6) token: none # ACL token value used for Consul authentication. (example: 398073a8-5091-4d9c-871a-bbbeb030d1f6)
region: none # US or EU regions for Portworx hosted etcds
dataInterface: none # Name of the interface <ethX> dataInterface: none # Name of the interface <ethX>
managementInterface: none # Name of the interface <ethX> managementInterface: none # Name of the interface <ethX>
platformOptions: none # AKS, EKS or GKE platforms
isTargetOSCoreOS: false # Is your target OS CoreOS? Defaults to false.
pksInstall: false # installation on PKS (Pivotal Container Service)
AKSorEKSInstall: false # installation on AKS or EKS.
customRegistryURL: customRegistryURL:
registrySecret: registrySecret:
...@@ -28,14 +24,14 @@ clusterName: mycluster # This is the default. please change it to ...@@ -28,14 +24,14 @@ clusterName: mycluster # This is the default. please change it to
secretType: k8s # Defaults to None, but can be AWS / KVDB / Vault. secretType: k8s # Defaults to None, but can be AWS / KVDB / Vault.
envVars: none # NOTE: This is a ";" seperated list of environment variables. For eg: MYENV1=myvalue1;MYENV2=myvalue2 envVars: none # NOTE: This is a ";" seperated list of environment variables. For eg: MYENV1=myvalue1;MYENV2=myvalue2
stork: true # Use Stork https://docs.portworx.com/scheduler/kubernetes/stork.html for hyperconvergence. stork: true # Use Stork https://docs.portworx.com/scheduler/kubernetes/stork.html for hyperconvergence.
storkVersion: 2.1.0 storkVersion: 2.2.5
lighthouse: true lighthouse: true
lighthouseVersion: 2.0.3 lighthouseVersion: 2.0.5
lighthouseSyncVersion: 0.3 lighthouseSyncVersion: 2.0.5
lighthouseStorkConnectorVersion: 0.1 lighthouseStorkConnectorVersion: 2.0.5
deployOnMaster: false # For POC only deployOnMaster: false # For POC only
csi: false # Enable CSI csi: false # Enable CSI
serviceAccount: serviceAccount:
...@@ -43,6 +39,115 @@ serviceAccount: ...@@ -43,6 +39,115 @@ serviceAccount:
create: true create: true
name: name:
deploymentType: oci # accepts "oci" or "docker" deploymentType: oci # accepts "oci" or "docker"
imageType: none # imageType: none #
imageVersion: 2.0.3.3 # Version of the PX Image. imageVersion: 2.1.5 # Version of the PX Image.
result: none
environment: none
onpremStorage: none
maxStorageNodes: none
journalDevice: none
usefileSystemDrive: false # true/false Instructs PX to use an unmounted Drive even if it has a filesystem.
usedrivesAndPartitions: false # Use unmounted disks even if they have a partition or filesystem on it. PX will never use a drive or partition that is mounted. (useDrivesAndPartitions)
provider: none
deviceConfig: none
drive_1:
aws:
type: none
size: none
iops: none
gc:
type: standard
size: 1000
drive_2:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_3:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_4:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_5:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_6:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_7:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_8:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_9:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
drive_10:
aws:
type: none
size: none
iops: none
gc:
type: none
size: none
existingDisk1: none
existingDisk2: none
existingDisk3: none
existingDisk4: none
existingDisk5: none
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment