Skip to content

Commit 075ee3c

Browse files
authored
Update cloud provider spec documentation (#728)
* update cloud provider spec documentation * fix formating
1 parent 0f7c1aa commit 075ee3c

File tree

1 file changed

+173
-8
lines changed

1 file changed

+173
-8
lines changed

docs/cloud-provider.md

Lines changed: 173 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,18 @@ availabilityZone: "eu-central-1a"
3939
vpcId: "vpc-819f62e9"
4040
# subnet id for the instance
4141
subnetId: "subnet-2bff4f43"
42+
# enable public IP assignment, default is true
43+
assignPublicIP: true
4244
# instance type
4345
instanceType: "t2.micro"
4446
# size of the root disk in gb
4547
diskSize: 50
4648
# root disk type (gp2, io1, st1, sc1, or standard)
4749
diskType: "gp2"
50+
# IOPS for EBS volumes, required with diskType: io1
51+
diskIops: 500
52+
# enable EBS volume encryption
53+
ebsVolumeEncrypted: false
4854
# optional! the ami id to use. Needs to fit to the specified operating system
4955
ami: ""
5056
# optional! The security group ids for the instance.
@@ -60,7 +66,6 @@ instanceProfile : ""
6066
tags:
6167
"KubernetesCluster": "my-cluster"
6268
```
63-
6469
## Openstack
6570
6671
### machine.spec.providerConfig.cloudProviderSpec
@@ -93,6 +98,15 @@ availabilityZone: ""
9398
region: ""
9499
# the name of the network to use
95100
network: ""
101+
# set trust-device-path flag for kubelet
102+
trustDevicePath: false
103+
# set root disk size
104+
rootDiskSizeGB: 50
105+
# set node-volume-attach-limit flag for cloud-config
106+
nodeVolumeAttachLimit: 20
107+
# the list of tags you would like to attach to the instance
108+
tags:
109+
tagKey: tagValue
96110
```
97111
98112
## Google Cloud Platform
@@ -105,22 +119,38 @@ serviceAccount: "<< GOOGLE_SERVICE_ACCOUNT >>"
105119
zone: "europe-west3-a"
106120
# See https://cloud.google.com/compute/docs/machine-types
107121
machineType: "n1-standard-2"
122+
# See https://cloud.google.com/compute/docs/instances/preemptible
123+
preemptible: false
108124
# In GB
109125
diskSize: 25
110126
# Can be 'pd-standard' or 'pd-ssd'
111127
diskType: "pd-standard"
128+
# The name or self_link of the network and subnetwork to attach this interface to;
129+
# either of both can be provided, otherwise default network will taken
130+
# in case if both empty — default network will be used
131+
network: "my-cool-network"
132+
subnetwork: "my-cool-subnetwork"
133+
# assign a public IP Address. Required for Internet access
134+
assignPublicIPAddress: true
135+
# set node labels
112136
labels:
113-
"kubernetesCluster": "my-cluster"
137+
"kubernetesCluster": "my-cluster"
114138
```
115139
116140
## Hetzner cloud
117141
118142
### machine.spec.providerConfig.cloudProviderSpec
119143
```yaml
120-
token: "<< HETZNER_API_TOKEN >>"
121-
serverType: "cx11"
122-
datacenter: ""
123-
location: "fsn1"
144+
token: "<< HETZNER_API_TOKEN >>"
145+
serverType: "cx11"
146+
datacenter: ""
147+
location: "fsn1"
148+
# Optional: network IDs or names
149+
networks:
150+
- "<< YOUR_NETWORK >>"
151+
# set node labels
152+
labels:
153+
"kubernetesCluster": "my-cluster"
124154
```
125155
126156
## Linode
@@ -129,9 +159,9 @@ labels:
129159
```yaml
130160
# your linode token
131161
token: "<< YOUR_LINODE_TOKEN >>"
132-
# droplet region
162+
# linode region
133163
region: "eu-west"
134-
# droplet size
164+
# linode size
135165
type: "g6-standard-2"
136166
# enable backups for the linode
137167
backups: false
@@ -142,3 +172,138 @@ tags:
142172
- "machine-controller"
143173
```
144174
175+
## Alibaba
176+
177+
### machine.spec.providerConfig.cloudProviderSpec
178+
```yaml
179+
# If empty, can be set via ALIBABA_ACCESS_KEY_ID env var
180+
accessKeyID: "<< YOUR ACCESS ID >>"
181+
accessKeySecret: "<< YOUR ACCESS SECRET >>"
182+
# instance type
183+
instanceType: "ecs.t1.xsmall"
184+
# instance name
185+
instanceName: "alibaba-instance"
186+
# region
187+
regionID: eu-central-1
188+
# image id
189+
imageID: "aliyun_2_1903_64_20G_alibase_20190829.vhd"
190+
# disk type
191+
diskType: "cloud_efficiency"
192+
# disk size in GB
193+
diskSize: "40"
194+
# set an existing vSwitch ID to use, VPC default is used if not set.
195+
vSwitchID:
196+
labels:
197+
"kubernetesCluster": "my-cluster"
198+
```
199+
200+
201+
## Azure
202+
203+
### machine.spec.providerConfig.cloudProviderSpec
204+
```yaml
205+
# Can also be set via the env var 'AZURE_TENANT_ID' on the machine-controller
206+
tenantID: "<< AZURE_TENANT_ID >>"
207+
# Can also be set via the env var 'AZURE_CLIENT_ID' on the machine-controller
208+
clientID: "<< AZURE_CLIENT_ID >>"
209+
# Can also be set via the env var 'AZURE_CLIENT_SECRET' on the machine-controller
210+
clientSecret: "<< AZURE_CLIENT_SECRET >>"
211+
# Can also be set via the env var 'AZURE_SUBSCRIPTION_ID' on the machine-controller
212+
subscriptionID: "<< AZURE_SUBSCRIPTION_ID >>"
213+
# Azure location
214+
location: "westeurope"
215+
# Azure resource group
216+
resourceGroup: "<< YOUR_RESOURCE_GROUP >>"
217+
# Azure availability set
218+
availabilitySet: "<< YOUR AVAILABILITY SET >>"
219+
# VM size
220+
vmSize: "Standard_B1ms"
221+
# optional OS and Data disk size values in GB. If not set, the defaults for the vmSize will be used.
222+
osDiskSize: 30
223+
dataDiskSize: 30
224+
# network name
225+
vnetName: "<< VNET_NAME >>"
226+
# subnet name
227+
subnetName: "<< SUBNET_NAME >>"
228+
# route able name
229+
routeTableName: "<< ROUTE_TABLE_NAME >>"
230+
# assign public IP addresses for nodes, required for Internet access
231+
assignPublicIP: true
232+
# security group
233+
securityGroupName: my-security-group
234+
# node tags
235+
tags:
236+
"kubernetesCluster": "my-cluster"
237+
```
238+
239+
## KubeVirt
240+
241+
### machine.spec.providerConfig.cloudProviderSpec
242+
```yaml
243+
# kubeconfig to access KubeVirt cluster
244+
kubeconfig: '<< KUBECONFIG >>'
245+
# KubeVirt namespace
246+
namespace: kube-system
247+
# kubernetes storage class
248+
storageClassName: kubermatic-fast
249+
# storage PVC size
250+
pvcSize: "10Gi"
251+
# OS Image URL
252+
sourceURL: http://10.109.79.210/<< OS_NAME >>.img
253+
# instance resources
254+
cpus: "1"
255+
memory: "2048M"
256+
```
257+
258+
## Packet
259+
260+
### machine.spec.providerConfig.cloudProviderSpec
261+
```yaml
262+
# If empty, can be set via PACKET_API_KEY env var
263+
apiKey: "<< PACKET_API_KEY >>"
264+
# instance type
265+
instanceType: "t1.small.x86"
266+
# packet project ID
267+
projectID: "<< PROJECT_ID >>"
268+
# packet facilities
269+
facilities:
270+
- "ewr1"
271+
# packet billingCycle
272+
billingCycle: ""
273+
# node tags
274+
tags:
275+
"kubernetesCluster": "my-cluster"
276+
```
277+
278+
## vSphere
279+
280+
### machine.spec.providerConfig.cloudProviderSpec
281+
```yaml
282+
# Can also be set via the env var 'VSPHERE_USERNAME' on the machine-controller
283+
username: '<< VSPHERE_USERNAME >>'
284+
# Can also be set via the env var 'VSPHERE_ADDRESS' on the machine-controller
285+
# example: 'https://your-vcenter:8443'. '/sdk' gets appended automatically
286+
vsphereURL: '<< VSPHERE_ADDRESS >>'
287+
# Can also be set via the env var 'VSPHERE_PASSWORD' on the machine-controller
288+
password: "<< VSPHERE_PASSWORD >>"
289+
# datacenter name
290+
datacenter: datacenter1
291+
# VM template name
292+
templateVMName: ubuntu-template
293+
# Optional. Sets the networks on the VM. If no network is specified, the template default will be used.
294+
vmNetName: network1
295+
# Optional
296+
folder: folder1
297+
cluster: cluster1
298+
# either datastore or datastoreCluster have to be provided.
299+
datastore: datastore1
300+
datastoreCluster: datastore-cluster1
301+
# Can also be set via the env var 'VSPHERE_ALLOW_INSECURE' on the machine-controller
302+
allowInsecure: true
303+
# instance resources
304+
cpus: 2
305+
memoryMB: 2048
306+
# Optional: Resize the root disk to this size. Must be bigger than the existing size
307+
# Default is to leave the disk at the same size as the template
308+
diskSizeGB: 10
309+
```

0 commit comments

Comments
 (0)