Skip to content

Commit 9dae233

Browse files
Merge pull request #19409 from jmontleon/add-apb
Add --enable=automation-service-broker
2 parents 345f748 + 1b656c1 commit 9dae233

File tree

8 files changed

+330
-0
lines changed

8 files changed

+330
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: v1
2+
kind: Template
3+
metadata:
4+
name: automation-broker-apb-rbac
5+
objects:
6+
- apiVersion: rbac.authorization.k8s.io/v1
7+
kind: ClusterRoleBinding
8+
metadata:
9+
name: automation-broker-apb
10+
roleRef:
11+
name: cluster-admin
12+
kind: ClusterRole
13+
apiGroup: rbac.authorization.k8s.io
14+
subjects:
15+
- kind: ServiceAccount
16+
name: automation-broker-apb
17+
namespace: "${NAMESPACE}"
18+
19+
parameters:
20+
- description: Namespace of the project that is being deploy
21+
displayname: broker client cert key
22+
name: NAMESPACE
23+
value: "openshift-automation-service-broker"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: v1
2+
kind: Template
3+
metadata:
4+
name: automation-broker-apb
5+
objects:
6+
- apiVersion: v1
7+
kind: ServiceAccount
8+
metadata:
9+
name: automation-broker-apb
10+
namespace: "${NAMESPACE}"
11+
12+
- apiVersion: batch/v1
13+
kind: Job
14+
metadata:
15+
name: automation-broker-apb
16+
namespace: "${NAMESPACE}"
17+
spec:
18+
backoffLimit: 5
19+
activeDeadlineSeconds: 300
20+
template:
21+
spec:
22+
restartPolicy: OnFailure
23+
serviceAccount: automation-broker-apb
24+
containers:
25+
- image: docker.io/automationbroker/automation-broker-apb:latest
26+
name: automation-broker-apb
27+
args: [ "provision", "-e", "broker_name=${NAMESPACE}" ]
28+
29+
30+
parameters:
31+
- description: Namespace of the project that is being deploy
32+
displayname: broker client cert key
33+
name: NAMESPACE
34+
value: "openshift-automation-service-broker"

pkg/oc/bootstrap/bindata.go

+99
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/oc/bootstrap/clusteradd/cmd.go

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
cmdutil "github.com/openshift/origin/pkg/cmd/util"
1717
"github.com/openshift/origin/pkg/cmd/util/variable"
1818
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/componentinstall"
19+
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/components/automation-service-broker"
1920
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/components/default-imagestreams"
2021
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/components/registry"
2122
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/components/router"
@@ -48,6 +49,9 @@ var (
4849

4950
// availableComponents lists the components that are available for installation.
5051
var availableComponents = map[string]func(ctx componentinstall.Context) componentinstall.Component{
52+
"automation-service-broker": func(ctx componentinstall.Context) componentinstall.Component {
53+
return &automation_service_broker.AutomationServiceBrokerComponentOptions{InstallContext: ctx}
54+
},
5155
"centos-imagestreams": func(ctx componentinstall.Context) componentinstall.Component {
5256
return &default_imagestreams.CentosImageStreamsComponentOptions{InstallContext: ctx}
5357
},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
reviewers:
2+
- jmontleon
3+
- djzager
4+
approvers:
5+
- jmontleon
6+
- djzager
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package automation_service_broker
2+
3+
import (
4+
"github.com/golang/glog"
5+
6+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
7+
8+
"github.com/openshift/origin/pkg/oc/bootstrap"
9+
"github.com/openshift/origin/pkg/oc/bootstrap/clusteradd/componentinstall"
10+
"github.com/openshift/origin/pkg/oc/bootstrap/docker/dockerhelper"
11+
"github.com/openshift/origin/pkg/oc/errors"
12+
"k8s.io/client-go/kubernetes"
13+
)
14+
15+
const (
16+
asbNamespace = "openshift-automation-service-broker"
17+
)
18+
19+
type AutomationServiceBrokerComponentOptions struct {
20+
InstallContext componentinstall.Context
21+
}
22+
23+
func (c *AutomationServiceBrokerComponentOptions) Name() string {
24+
return "automation-service-broker"
25+
}
26+
27+
func (c *AutomationServiceBrokerComponentOptions) Install(dockerClient dockerhelper.Interface) error {
28+
kubeAdminClient, err := kubernetes.NewForConfig(c.InstallContext.ClusterAdminClientConfig())
29+
if err != nil {
30+
return errors.NewError("cannot obtain API clients").WithCause(err)
31+
}
32+
33+
params := map[string]string{
34+
"NAMESPACE": asbNamespace,
35+
}
36+
glog.V(2).Infof("instantiating automation service broker template with parameters %v", params)
37+
38+
component := componentinstall.Template{
39+
Name: "automation-service-broker",
40+
Namespace: asbNamespace,
41+
RBACTemplate: bootstrap.MustAsset("install/automationservicebroker/install-rbac.yaml"),
42+
InstallTemplate: bootstrap.MustAsset("install/automationservicebroker/install.yaml"),
43+
44+
WaitCondition: func() (bool, error) {
45+
glog.V(2).Infof("polling for automation broker apb to complete")
46+
job, err := kubeAdminClient.BatchV1().Jobs(asbNamespace).Get("automation-broker-apb", metav1.GetOptions{})
47+
if err != nil {
48+
return false, err
49+
}
50+
if job.Status.Succeeded > 0 {
51+
return true, nil
52+
}
53+
return false, nil
54+
55+
},
56+
}
57+
58+
return component.MakeReady(
59+
c.InstallContext.ClientImage(),
60+
c.InstallContext.BaseDir(),
61+
params).Install(dockerClient)
62+
63+
}

pkg/oc/bootstrap/docker/up.go

+2
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,14 @@ var (
205205
"router",
206206
"sample-templates",
207207
"persistent-volumes",
208+
"automation-service-broker",
208209
"service-catalog",
209210
"template-service-broker",
210211
"web-console",
211212
)
212213

213214
componentsDisabledByDefault = sets.NewString(
215+
"automation-service-broker",
214216
"service-catalog",
215217
"template-service-broker")
216218
)

0 commit comments

Comments
 (0)