/
master.go
70 lines (66 loc) · 1.75 KB
/
master.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Package openstack generates Machine objects for openstack.
package openstack
import (
"text/template"
"github.com/openshift/installer/pkg/types/openstack"
)
// MasterConfig is used to generate the machine.
type MasterConfig struct {
ClusterName string
Instances []string
Image string
Tags map[string]string
Region string
Machine openstack.MachinePool
}
// MasterMachinesTmpl is the template for master machines.
var MasterMachinesTmpl = template.Must(template.New("openstack-master-machines").Parse(`
{{- $c := . -}}
kind: List
apiVersion: v1
metadata:
resourceVersion: ""
selfLink: ""
items:
{{- range $index,$instance := .Instances}}
- apiVersion: cluster.k8s.io/v1alpha1
kind: Machine
metadata:
name: {{$c.ClusterName}}-master-{{$index}}
namespace: openshift-cluster-api
labels:
sigs.k8s.io/cluster-api-cluster: {{$c.ClusterName}}
sigs.k8s.io/cluster-api-machine-role: master
sigs.k8s.io/cluster-api-machine-type: master
spec:
providerConfig:
value:
apiVersion: openstack.cluster.k8s.io/v1alpha1
kind: OpenStackMachineProviderConfig
image:
id: {{$c.Image}}
flavor: {{$c.Machine.FlavorName}}
placement:
region: {{$c.Region}}
subnet:
filters:
- name: "tag:Name"
values:
- "{{$c.ClusterName}}-master-*"
tags:
{{- range $key,$value := $c.Tags}}
- name: "{{$key}}"
value: "{{$value}}"
{{- end}}
securityGroups:
- filters:
- name: "tag:Name"
values:
- "{{$c.ClusterName}}_master_sg"
userDataSecret:
name: master-user-data
versions:
kubelet: ""
controlPlane: ""
{{- end -}}
`))