Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

Managed service namespace #19

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
107 changes: 99 additions & 8 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
# Force dep to vendor the code generators, which aren't imported just used at dev time.
# Picking a subpackage with Go code won't be necessary once https://github.com/golang/dep/pull/1545 is merged.
required = [
"k8s.io/code-generator/cmd/defaulter-gen",
"k8s.io/code-generator/cmd/deepcopy-gen",
"k8s.io/code-generator/cmd/conversion-gen",
"k8s.io/code-generator/cmd/client-gen",
"k8s.io/code-generator/cmd/lister-gen",
"k8s.io/code-generator/cmd/informer-gen",
"k8s.io/code-generator/cmd/openapi-gen",
"k8s.io/gengo/args",
]

[[override]]
name = "k8s.io/api"
version = "kubernetes-1.9.3"
Expand Down
31 changes: 23 additions & 8 deletions cmd/broker/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ import (
"context"
"flag"
"fmt"
"github.com/integr8ly/managed-service-broker/pkg/deploys/che"
"github.com/integr8ly/managed-service-broker/pkg/deploys/fuse"
"github.com/integr8ly/managed-service-broker/pkg/deploys/launcher"
"github.com/integr8ly/managed-service-broker/pkg/deploys/apicurio"
"os"
"os/signal"
"path"
Expand All @@ -18,11 +14,16 @@ import (
"github.com/integr8ly/managed-service-broker/pkg/broker/controller"
"github.com/integr8ly/managed-service-broker/pkg/broker/server"
"github.com/integr8ly/managed-service-broker/pkg/clients/openshift"
"github.com/integr8ly/managed-service-broker/pkg/deploys/che"
"github.com/integr8ly/managed-service-broker/pkg/deploys/fuse"
"github.com/integr8ly/managed-service-broker/pkg/deploys/launcher"
"github.com/integr8ly/managed-service-broker/pkg/deploys/apicurio"
"github.com/integr8ly/managed-service-broker/pkg/deploys/threescale"
"github.com/operator-framework/operator-sdk/pkg/k8sclient"
"github.com/pkg/errors"
glog "github.com/sirupsen/logrus"
"k8s.io/client-go/tools/clientcmd"
msns "github.com/integr8ly/managed-service-broker/pkg/clients/msn"
)

var options struct {
Expand Down Expand Up @@ -83,12 +84,20 @@ func runWithContext(ctx context.Context) error {
if err != nil {
return errors.Wrap(err, "error creating kube client config")
}
k8sClient := k8sclient.GetKubeClient()
osClient := openshift.NewClientFactory(cfg)

msnsEnabled := os.Getenv("MANAGED_SERVICE_NAMESPACE") == "true"

deployers := []controller.Deployer{}
if shouldRegisterService( fuseOnlineServiceName) {
deployers = append(deployers, fuse.NewDeployer(k8sClient, osClient))
k8sClient := k8sclient.GetKubeClient()
osClient := openshift.NewClientFactory(cfg)
var d controller.Deployer
if msnsEnabled {
d = fuse.NewMsnsDeployer(k8sClient, osClient)
} else {
d = fuse.NewDeployer(k8sClient, osClient)
}
deployers = append(deployers, d)
}
if shouldRegisterService(launcherServiceName) {
deployers = append(deployers, launcher.NewDeployer())
Expand All @@ -102,8 +111,14 @@ func runWithContext(ctx context.Context) error {
if shouldRegisterService( apicurioServiceName) {
deployers = append(deployers, apicurio.NewDeployer())
}
ctrlr := controller.CreateController(deployers)

var msnsClient *msns.ManagedServiceNamespaceClient = nil
if msnsEnabled {
msnsClient = &msns.ManagedServiceNamespaceClient{
Namespace: os.Getenv("POD_NAMESPACE"),
}
}
ctrlr := controller.CreateController(deployers, msnsClient)
ctrlr.Catalog()

if options.TLSCert == "" && options.TLSKey == "" {
Expand Down
10 changes: 10 additions & 0 deletions deploy/cr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: "integreatly.org/v1alpha1"
kind: "ManagedServiceNamespace"
metadata:
name: "managed-service-project"
spec:
autoEnabledServiceIntegrations: "true"
userId: "admin"
consumerNamespaces:
- "consumer1"
- "consumer2"
29 changes: 29 additions & 0 deletions deploy/crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: managedservicenamespaces.integreatly.org
spec:
group: integreatly.org
names:
kind: ManagedServiceNamespace
listKind: ManagedServiceNamespaceList
plural: managedservicenamespaces
singular: managedservicenamespace
scope: Namespaced
version: v1alpha1
validation:
openAPIV3Schema:
properties:
spec:
type: object
description: Spec for a ManagedServiceNamespace
required:
- consumerNamespaces
- userId
properties:
userId:
type: string
description: This User will be granted view access to the ManagedServiceNamespace and update access to the Integration resource.
consumerNamespaces:
type: array
description: Names of the namespaces that will be allowed use the services created in ManagedServiceNamespace.
3 changes: 3 additions & 0 deletions pkg/apis/integreatly/v1alpha1/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// +k8s:deepcopy-gen=package
// +groupName=aerogear.org
package v1alpha1
35 changes: 35 additions & 0 deletions pkg/apis/integreatly/v1alpha1/register.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package v1alpha1

import (
sdkK8sutil "github.com/operator-framework/operator-sdk/pkg/util/k8sutil"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
)

const (
version = "v1alpha1"
groupName = "integreatly.org"
)

var (
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
AddToScheme = SchemeBuilder.AddToScheme
// SchemeGroupVersion is the group version used to register these objects.
SchemeGroupVersion = schema.GroupVersion{Group: groupName, Version: version}
)

func init() {
sdkK8sutil.AddToSDKScheme(AddToScheme)
}

// addKnownTypes adds the set of types defined in this package to the supplied scheme.
func addKnownTypes(scheme *runtime.Scheme) error {
scheme.AddKnownTypes(SchemeGroupVersion,
&ManagedServiceNamespace{},
&ManagedServiceNamespaceList{},
)
metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
return nil
}
Loading