Skip to content

Commit

Permalink
add support for openshift actuator
Browse files Browse the repository at this point in the history
  • Loading branch information
enxebre committed Aug 30, 2018
1 parent 2f4a03b commit 04253cb
Show file tree
Hide file tree
Showing 7 changed files with 122 additions and 134 deletions.
4 changes: 2 additions & 2 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,14 @@ func deployMachineSet() {

for {
glog.Info("Trying to deploy Cluster object")
if _, err := v1alphaClient.Clusters("test").Create(cluster); err != nil {
if _, err := v1alphaClient.Clusters("default").Create(cluster); err != nil {
glog.Infof("Cannot create cluster, retrying in 5 secs: %v", err)
} else {
glog.Info("Created Cluster object")
}

glog.Info("Trying to deploy MachineSet object")
_, err = v1alphaClient.MachineSets("test").Create(machineSet)
_, err = v1alphaClient.MachineSets("default").Create(machineSet)
if err != nil {
glog.Infof("Cannot create MachineSet, retrying in 5 secs: %v", err)
} else {
Expand Down
36 changes: 6 additions & 30 deletions machines/cluster.yaml
Original file line number Diff line number Diff line change
@@ -1,39 +1,15 @@
---
apiVersion: "cluster.k8s.io/v1alpha1"
kind: Cluster
metadata:
name: test
namespace: test
name: {{.ClusterName}}
namespace: default
spec:
clusterNetwork:
services:
cidrBlocks:
- "10.0.0.1/24"
- "10.0.0.1/24"
pods:
cidrBlocks:
- "10.0.0.2/24"
serviceDomain: example.com
providerConfig:
value:
apiVersion: awsproviderconfig/v1alpha1
kind: AWSClusterProviderConfig
clusterId: {{.VpcName}}
clusterVersionRef:
namespace: test
name: test
hardware:
aws:
region: {{.Region}}
keyPairName: {{.SshKey}}
defaultHardwareSpec:
aws:
instanceType: m4.large
machineSets:
- nodeType: Master
size: 1
- shortName: infra
nodeType: Compute
infra: true
size: 1
- shortName: compute
nodeType: Compute
size: 1
- "10.0.0.2/24"
serviceDomain: unused
64 changes: 40 additions & 24 deletions machines/machine-set.yaml
Original file line number Diff line number Diff line change
@@ -1,40 +1,56 @@
---
apiVersion: cluster.k8s.io/v1alpha1
kind: MachineSet
metadata:
name: worker
namespace: test
namespace: default
labels:
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-cluster: {{.ClusterName}}
sigs.k8s.io/cluster-api-machine-role: worker
sigs.k8s.io/cluster-api-machine-type: worker
spec:
replicas: 3
replicas: {{.Replicas}}
selector:
matchLabels:
machineapioperator.openshift.io/machineset: worker
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-machineset: worker
sigs.k8s.io/cluster-api-cluster: {{.ClusterName}}
template:
metadata:
labels:
machineapioperator.openshift.io/machineset: worker
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-machineset: worker
sigs.k8s.io/cluster-api-cluster: {{.ClusterName}}
sigs.k8s.io/cluster-api-machine-role: worker
sigs.k8s.io/cluster-api-machine-type: worker
spec:
providerConfig:
value:
apiVersion: awsproviderconfig/v1alpha1
apiVersion: aws.cluster.k8s.io/v1alpha1
kind: AWSMachineProviderConfig
clusterId: {{.VpcName}}
clusterHardware:
aws:
keyPairName: {{.SshKey}}
region: {{.Region}}
hardware:
aws:
instanceType: m4.large
infra: false
vmImage:
awsImage: {{.Image}}
ami:
id: {{.Image}}
instanceType: m4.large
placement:
region: {{.Region}}
availabilityZone: {{.AvailabilityZone}}
subnet:
filters:
- name: "tag:Name"
values:
- {{.ClusterName}}-worker-{{.AvailabilityZone}}
publicIp: true
iamInstanceProfile:
id: {{.ClusterName}}-master-profile
keyName: tectonic
tags:
- name: tectonicClusterID
value: {{.ClusterID}}
securityGroups:
- filters:
- name: "tag:Name"
values:
- {{.ClusterName}}_worker_sg
userDataSecret:
name: ignition-worker
versions:
kubelet: 0.0.0
controlPlane: 0.0.0
roles:
- Master

kubelet: ""
controlPlane: ""
4 changes: 2 additions & 2 deletions manifests/clusterapi-controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ spec:
cpu: 100m
memory: 30Mi
- name: aws-machine-controller
image: quay.io/alberto_lamela/aws-machine-controller:mvp # TODO: move this to openshift org
image: quay.io/alberto_lamela/aws-machine-controller:dev # TODO: move this to openshift org
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
command:
- /opt/services/aws-machine-controller
- /machine-controller
args:
- --log-level=debug
resources:
Expand Down
14 changes: 7 additions & 7 deletions pkg/render/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ const (

// OperatorConfig contains configuration for KAO managed add-ons
type OperatorConfig struct {
metav1.TypeMeta `json:",inline"`
VpcName string `json:"vpcName"`
SshKey string `json:"sshKey"`
ClusterName string `json:"clusterName"`
ClusterDomain string `json:"clusterDomain"`
Region string `json:"region"`
Image string `json:"image"`
metav1.TypeMeta `json:",inline"`
ClusterName string `json:"clusterName"`
ClusterID string `json:"clusterID"`
Region string `json:"region"`
AvailabilityZone string `json:"availabilityZone"`
Image string `json:"image"`
Replicas string `json:"replicas"`
}
10 changes: 6 additions & 4 deletions pkg/render/machine-api-operator-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
apiVersion: v1
kind: machineAPIOperatorConfig
vpcName: "test"
sshKey: "test"
clusterName: "test"
clusterDomain: "test"
clusterName: meh
clusterID: b302cf66-f5ff-4d5d-1cc1-0ab2755d2065
image: ami-0e502f54daeb8686e
region: eu-west-1
availabilityZone: eu-west-1a
replicas: 1
124 changes: 59 additions & 65 deletions pkg/render/render_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,104 +35,98 @@ func testRenderManifest(t *testing.T, filename string, config *OperatorConfig, e

func TestClusterManifest(t *testing.T) {
config := OperatorConfig{
VpcName: "TestClusterManifest-VpcName",
SshKey: "TestClusterManifest-SshKey",
ClusterName: "TestClusterManifest-ClusterName",
ClusterDomain: "TestClusterManifest.ClusterDomain", // TODO(frobware) - currently not a template value
Region: "TestClusterManifest-Region",
Image: "TestClusterManifest-Image",
ClusterName: "TestClusterManifest-ClusterName",
ClusterID: "TestClusterManifest-ClusterID",
Region: "TestClusterManifest-Region",
AvailabilityZone: "TestClusterManifest-AvailabilityZone",
Image: "TestClusterManifest-Image",
Replicas: "TestClusterManifest-Replicas",
}

testRenderManifest(t, "../../machines/cluster.yaml", &config, `
---
apiVersion: "cluster.k8s.io/v1alpha1"
kind: Cluster
metadata:
name: test
namespace: test
name: TestClusterManifest-ClusterName
namespace: default
spec:
clusterNetwork:
services:
cidrBlocks:
- "10.0.0.1/24"
- "10.0.0.1/24"
pods:
cidrBlocks:
- "10.0.0.2/24"
serviceDomain: example.com
providerConfig:
value:
apiVersion: awsproviderconfig/v1alpha1
kind: AWSClusterProviderConfig
clusterId: TestClusterManifest-VpcName
clusterVersionRef:
namespace: test
name: test
hardware:
aws:
region: TestClusterManifest-Region
keyPairName: TestClusterManifest-SshKey
defaultHardwareSpec:
aws:
instanceType: m4.large
machineSets:
- nodeType: Master
size: 1
- shortName: infra
nodeType: Compute
infra: true
size: 1
- shortName: compute
nodeType: Compute
size: 1`)
- "10.0.0.2/24"
serviceDomain: unused
`)
}

func TestMachineSetManifest(t *testing.T) {
config := OperatorConfig{
VpcName: "TestMachineSetManifest-VpcName",
SshKey: "TestMachineSetManifest-SshKey",
ClusterName: "TestMachineSetManifest-ClusterName",
ClusterDomain: "TestMachineSetManifest.ClusterDomain", // TODO(frobware) - currently not a template value
Region: "TestMachineSetManifest-Region",
Image: "TestMachineSetManifest-Image",
ClusterName: "TestClusterManifest-ClusterName",
ClusterID: "TestClusterManifest-ClusterID",
Region: "TestClusterManifest-Region",
AvailabilityZone: "TestClusterManifest-AvailabilityZone",
Image: "TestClusterManifest-Image",
Replicas: "TestClusterManifest-Replicas",
}

testRenderManifest(t, "../../machines/machine-set.yaml", &config, `
---
apiVersion: cluster.k8s.io/v1alpha1
kind: MachineSet
metadata:
name: worker
namespace: test
namespace: default
labels:
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-cluster: TestClusterManifest-ClusterName
sigs.k8s.io/cluster-api-machine-role: worker
sigs.k8s.io/cluster-api-machine-type: worker
spec:
replicas: 3
replicas: TestClusterManifest-Replicas
selector:
matchLabels:
machineapioperator.openshift.io/machineset: worker
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-machineset: worker
sigs.k8s.io/cluster-api-cluster: TestClusterManifest-ClusterName
template:
metadata:
labels:
machineapioperator.openshift.io/machineset: worker
machineapioperator.openshift.io/cluster: test
sigs.k8s.io/cluster-api-machineset: worker
sigs.k8s.io/cluster-api-cluster: TestClusterManifest-ClusterName
sigs.k8s.io/cluster-api-machine-role: worker
sigs.k8s.io/cluster-api-machine-type: worker
spec:
providerConfig:
value:
apiVersion: awsproviderconfig/v1alpha1
apiVersion: aws.cluster.k8s.io/v1alpha1
kind: AWSMachineProviderConfig
clusterId: TestMachineSetManifest-VpcName
clusterHardware:
aws:
keyPairName: TestMachineSetManifest-SshKey
region: TestMachineSetManifest-Region
hardware:
aws:
instanceType: m4.large
infra: false
vmImage:
awsImage: TestMachineSetManifest-Image
ami:
id: TestClusterManifest-Image
instanceType: m4.large
placement:
region: TestClusterManifest-Region
availabilityZone: TestClusterManifest-AvailabilityZone
subnet:
filters:
- name: "tag:Name"
values:
- TestClusterManifest-ClusterName-worker-TestClusterManifest-AvailabilityZone
publicIp: true
iamInstanceProfile:
id: TestClusterManifest-ClusterName-master-profile
keyName: tectonic
tags:
- name: tectonicClusterID
value: TestClusterManifest-ClusterID
securityGroups:
- filters:
- name: "tag:Name"
values:
- TestClusterManifest-ClusterName_worker_sg
userDataSecret:
name: ignition-worker
versions:
kubelet: 0.0.0
controlPlane: 0.0.0
roles:
- Master`)
kubelet: ""
controlPlane: ""`)
}

0 comments on commit 04253cb

Please sign in to comment.