You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+80Lines changed: 80 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,7 @@
47
47
| --skip-runtime-installation | boolean | Set flag if you already have a configured runtime-environment, add --runtime-environment flag with name |
48
48
| --storage-class | string | Set a name of your custom storage class, note: this will not install volume provisioning components |
49
49
| --tolerations | string | The kubernetes tolerations as JSON string to be used by venona resources (default is no tolerations). If prefixed with "@", loads from a file: @/tmp/tolerations.json |
50
+
| --set-value | stringArray | Set values for templates, example: --set-value Storage.LocalVolumeParentDir=/mnt/disk/ssd0/codefresh-volumes |
50
51
| --venona-version | string | Version of venona to install (default is the latest) |
51
52
52
53
#### Install on cluster version < 1.10
@@ -72,6 +73,85 @@ rules:
72
73
* Bind your user with cluster-admin kubernetes clusterrole
73
74
> `kubectl create clusterrolebinding NAME --clusterrole cluster-admin --user YOUR_USER`
74
75
76
+
#### Pipeline Storage with docker cache support
77
+
78
+
##### **GKE LocalSSD**
79
+
*Prerequisite:* [GKE custer with local SSD](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/local-ssd)
*Prerequisite:* volume provisioner (dind-volume-provisioner) should have permissions to create/delete/get of google disks
89
+
There are 3 options to provide cloud credentials on GCE:
90
+
* run venona dind-volume-provisioniner on node with iam role which is allowed to create/delete/get of google disks
91
+
* create Google Service Account with ComputeEngine.StorageAdmin, download its key and pass it to venona installed with `--set-file=Storage.GooogleServiceAccount=/path/to/google-service-account.json`
92
+
* use [Google Workload Identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) to assign iam role to `volume-provisioner-venona` service account
93
+
94
+
*Note*: Builds will be running in single availability zone, so you must to specify AvailabilityZone params
*Prerequisite:* volume provisioner (dind-volume-provisioner) should have permissions to create/delete/get of aws ebs
108
+
Minimal iam policy for dind-volume-provisioner:
109
+
```json
110
+
{
111
+
"Version": "2012-10-17",
112
+
"Statement": [
113
+
{
114
+
"Effect": "Allow",
115
+
"Action": [
116
+
"ec2:AttachVolume",
117
+
"ec2:CreateSnapshot",
118
+
"ec2:CreateTags",
119
+
"ec2:CreateVolume",
120
+
"ec2:DeleteSnapshot",
121
+
"ec2:DeleteTags",
122
+
"ec2:DeleteVolume",
123
+
"ec2:DescribeInstances",
124
+
"ec2:DescribeSnapshots",
125
+
"ec2:DescribeTags",
126
+
"ec2:DescribeVolumes",
127
+
"ec2:DetachVolume"
128
+
],
129
+
"Resource": "*"
130
+
}
131
+
]
132
+
}
133
+
```
134
+
135
+
There are 3 options to provide cloud credentials on AWS:
136
+
* run venona dind-volume-provisioniner on node with the iam role - use `--kube-node-selector=` option
137
+
* create AWS IAM User, assign it the permissions above and suppy aws credentials to venona installer `--set-value=Storage.AwsAccessKeyId=ABCDF --set-value=Storage.AwsSecretAccessKey=ZYXWV`
138
+
139
+
* use [Aws Identity for Service Account](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) to assign iam role to `volume-provisioner-venona` service account
140
+
141
+
*Notes*:
142
+
- Builds will be running in single availability zone, so you must specify AvailabilityZone parameter `--set-value=Storage.AvailabilityZone=<aws-az>` and build-node-selector `--build-node-selector=failure-domain.beta.kubernetes.io/zone=<aws-az>` in case of multizone cluster
143
+
144
+
- We support both [in-tree ebs](https://kubernetes.io/docs/concepts/storage/volumes/#awselasticblockstore) (`--set-value=Storage.Backend=ebs`) volumes and ebs-csi(https://github.com/kubernetes-sigs/aws-ebs-csi-driver) (`--set-value=Storage.Backend=ebs-csi`)
installCmd.Flags().BoolVar(&installCmdOptions.setDefaultRuntime, "set-default", false, "Mark the install runtime-environment as default one after installation")
232
275
installCmd.Flags().BoolVar(&installCmdOptions.kubernetesRunnerType, "kubernetes-runner-type", false, "Set the runner type to kubernetes (alpha feature)")
233
276
277
+
installCmd.Flags().StringArrayVar(&installCmdOptions.templateValues, "set-value", []string{}, "Set values for templates, example: --set-value LocalVolumesDir=/mnt/disks/ssd0/codefresh-volumes")
278
+
installCmd.Flags().StringArrayVar(&installCmdOptions.templateFileValues, "set-file", []string{}, "Set values for templates from file, example: --set-value Storage.GoogleServiceAccount=/path/to/service-account.json")
0 commit comments