@@ -27,7 +27,7 @@ const (
27
27
)
28
28
29
29
type infrastructureProvisioner interface {
30
- ProvisionNodes (NodeCount , linuxDistro ) (provisionedNodes , error )
30
+ ProvisionNodes (NodeCount , linuxDistro , ... string ) (provisionedNodes , error )
31
31
TerminateNodes (provisionedNodes ) error
32
32
TerminateNode (NodeDeets ) error
33
33
SSHKey () string
@@ -147,7 +147,7 @@ func AWSClientFromEnvironment() (infrastructureProvisioner, bool) {
147
147
return p , true
148
148
}
149
149
150
- func (p awsProvisioner ) ProvisionNodes (nodeCount NodeCount , distro linuxDistro ) (provisionedNodes , error ) {
150
+ func (p awsProvisioner ) ProvisionNodes (nodeCount NodeCount , distro linuxDistro , opts ... string ) (provisionedNodes , error ) {
151
151
var ami aws.AMI
152
152
switch distro {
153
153
case Ubuntu1604LTS :
@@ -159,38 +159,45 @@ func (p awsProvisioner) ProvisionNodes(nodeCount NodeCount, distro linuxDistro)
159
159
default :
160
160
panic (fmt .Sprintf ("Used an unsupported distribution: %s" , distro ))
161
161
}
162
+ var addBlockDevice bool
163
+ for _ , o := range opts {
164
+ if o == "block_device" {
165
+ addBlockDevice = true
166
+ }
167
+ }
168
+
162
169
provisioned := provisionedNodes {}
163
170
var i uint16
164
171
for i = 0 ; i < nodeCount .Etcd ; i ++ {
165
- nodeID , err := p .client .CreateNode (ami , aws .T2Medium )
172
+ nodeID , err := p .client .CreateNode (ami , aws .T2Medium , addBlockDevice )
166
173
if err != nil {
167
174
return provisioned , err
168
175
}
169
176
provisioned .etcd = append (provisioned .etcd , NodeDeets {id : nodeID })
170
177
}
171
178
for i = 0 ; i < nodeCount .Master ; i ++ {
172
- nodeID , err := p .client .CreateNode (ami , aws .T2Medium )
179
+ nodeID , err := p .client .CreateNode (ami , aws .T2Medium , addBlockDevice )
173
180
if err != nil {
174
181
return provisioned , err
175
182
}
176
183
provisioned .master = append (provisioned .master , NodeDeets {id : nodeID })
177
184
}
178
185
for i = 0 ; i < nodeCount .Worker ; i ++ {
179
- nodeID , err := p .client .CreateNode (ami , aws .T2Medium )
186
+ nodeID , err := p .client .CreateNode (ami , aws .T2Medium , addBlockDevice )
180
187
if err != nil {
181
188
return provisioned , err
182
189
}
183
190
provisioned .worker = append (provisioned .worker , NodeDeets {id : nodeID })
184
191
}
185
192
for i = 0 ; i < nodeCount .Ingress ; i ++ {
186
- nodeID , err := p .client .CreateNode (ami , aws .T2Medium )
193
+ nodeID , err := p .client .CreateNode (ami , aws .T2Medium , addBlockDevice )
187
194
if err != nil {
188
195
return provisioned , err
189
196
}
190
197
provisioned .ingress = append (provisioned .ingress , NodeDeets {id : nodeID })
191
198
}
192
199
for i = 0 ; i < nodeCount .Storage ; i ++ {
193
- nodeID , err := p .client .CreateNode (ami , aws .T2Medium )
200
+ nodeID , err := p .client .CreateNode (ami , aws .T2Medium , addBlockDevice )
194
201
if err != nil {
195
202
return provisioned , err
196
203
}
@@ -329,7 +336,7 @@ func packetClientFromEnv() (infrastructureProvisioner, bool) {
329
336
return p , true
330
337
}
331
338
332
- func (p packetProvisioner ) ProvisionNodes (nodeCount NodeCount , distro linuxDistro ) (provisionedNodes , error ) {
339
+ func (p packetProvisioner ) ProvisionNodes (nodeCount NodeCount , distro linuxDistro , _ ... string ) (provisionedNodes , error ) {
333
340
var packetDistro packet.OS
334
341
switch distro {
335
342
case Ubuntu1604LTS :
0 commit comments