Skip to content

Commit b9840a6

Browse files
Merge pull request #16150 from jpeeler/sc-rebase-0.0.17
Automatic merge from submit-queue (batch tested with PRs 16150, 16284, 16296, 16071) Rebase service catalog to v0.0.17 This rebases service catalog to the latest release.
2 parents 4f1394d + a94bc00 commit b9840a6

File tree

197 files changed

+8739
-7654
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

197 files changed

+8739
-7654
lines changed

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@ contrib/build/*/tmp/*
2020
.pkg
2121
.kube
2222
.var
23+
docs/certs
2324
# this is for buildling service catalog with origin tooling
2425
_output

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ script:
99
- make verify build test images
1010
deploy:
1111
provider: script
12-
script: scripts/deploy.sh
12+
script: contrib/travis/deploy.sh
1313
on:
1414
repo: kubernetes-incubator/service-catalog
1515
all_branches: true

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,8 @@ images: user-broker-image controller-manager-image apiserver-image
326326

327327
images-all: $(addprefix arch-image-,$(ALL_ARCH))
328328
arch-image-%:
329+
$(MAKE) clean-bin
330+
$(MAKE) ARCH=$* build
329331
$(MAKE) ARCH=$* images
330332

331333
define build-and-tag # (service, image, mutable_image, prefix)

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/ORIGIN-SYNC-README.txt

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,45 @@ Prerequisite setup:
88
put in the openshift/service-catalog:origin-patches branch (git log
99
cmd/service-catalog)
1010

11+
# syncs the openshift/service-catalog repo with the upstream tag
12+
# (in service-catalog repo)
13+
$ TAG=v0.0.10
14+
$ git pull origin (remote that points to service-catalog upstream)
15+
$ git push openshift $TAG
16+
17+
(in service-catalog repo)
18+
# update master (not used, but looks weird if not updated)
19+
$ git checkout master
20+
$ git merge --ff-only $TAG
21+
$ git push
22+
23+
(let's not worry about the -squashed branch here and remove this)
1124
If patches need bringing over from openshift/origin, put them in the
1225
service-catalog:origin-patches branch. Then squash all the changes into the
1326
service-catalog:origin-patches-squashed branch. The reason this is important
1427
to do is because once the subtree merge is performed, anything under
1528
cmd/service-catalog/... will be overwritten. Also, make sure to rebase the
1629
origin-patches branch as needed.
1730

18-
# syncs the openshift/service-catalog repo with the upstream tag
19-
# (in service-catalog repo)
20-
$ TAG=v0.0.10
21-
$ git pull origin
22-
$ git push openshift $TAG
31+
# Update 9/1 - a better way for handling patches
32+
(catalog repo)
33+
$ git fetch openshift
34+
(origin repo)
35+
$ git pull
36+
$ cd cmd/service-catalog
37+
$ git log .
38+
if patches, go ahead and descend to the path that will match the non-vendored repo
39+
$ cd go/src/github.com/kubernetes-incubator/service-catalog
40+
$ find SHAs needing bringing over (this could be done in one command, but for now do for each one):
41+
$ git format-patch -1 ce7709e81b90e24aebfb5366001645a7e7d78fd8 --relative
42+
$ mv *.patch to catalog repo
43+
$ git am <patch file> (in origin-patches)
44+
#unchecked
45+
$ git rebase $TAG
46+
$ git squash all origin patches into one commit... (technically optional, but looks nicer)
47+
$ git push openshift
2348

49+
(NO LONGER NEEDED, not going to use squashed branch)
2450
# updates code to latest tag and adds origin patches on top
2551
# (in service-catalog repo)
2652
$ git branch $TAG $TAG+origin

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
### Introduction
88

99
The service-catalog project is in incubation to bring integration with service
10-
brokers to the Kubernetes ecosystem via the [Open Service Broker
11-
API](https://github.com/openservicebrokerapi/servicebroker). A service broker
12-
is an endpoint that manages a set of services. The end-goal of the service-
13-
catalog project is to provide a way for Kubernetes users to consume services
14-
from brokers and easily configure their applications to use those services,
15-
without needing detailed knowledge about how those services are created /
16-
managed.
10+
brokers to the Kubernetes ecosystem via the [Open Service Broker API](https://github.com/openservicebrokerapi/servicebroker).
11+
12+
A _service broker_ is an endpoint that manages a set of software offerings
13+
called _services_. The end-goal of the service-catalog project is to provide
14+
a way for Kubernetes users to consume services from brokers and easily
15+
configure their applications to use those services, without needing detailed
16+
knowledge about how those services are created or managed.
1717

1818
As an example:
1919

@@ -32,13 +32,14 @@ _somewhere_ in a simple way:
3232
cluster as the consumer or a different cluster, or even creating a new
3333
tenant in a multi-tenant SaaS system. The point is that the
3434
consumer doesn't have to be aware of or care at all about the details.
35-
3. The user _binds_ that service to their application
35+
3. The user requests a _credential_ to use the service instance in their application
36+
37+
Credentials are delivered to users in normal Kubernetes secrets and
38+
contain information necessary to connect to and authenticate to the
39+
service instance.
3640

37-
_Binding_ means that the application is injected with the information
38-
necessary to use the service, such as coordinates, credentials, and
39-
configuration items. Applications are injected using the existing
40-
application configuration primitives in Kubernetes: Services, Secrets, and
41-
ConfigMaps.
41+
For more introduction, including installation and self-guided demo
42+
instructions, please see the [introduction](./docs/introduction.md) doc.
4243

4344
For more details about the design and features of this project see the
4445
[design](docs/design.md) doc.
@@ -54,11 +55,11 @@ For more details about the design and features of this project see the
5455
### Overall Status
5556

5657
We are currently working toward a beta-quality release to be used in conjunction with
57-
Kubernetes 1.6. See the
58+
Kubernetes 1.8. See the
5859
[milestones list](https://github.com/kubernetes-incubator/service-catalog/milestones?direction=desc&sort=due_date&state=open)
5960
for information about the issues and PRs in current and future milestones.
6061

61-
**NOTE**: Some fields in our API will still be considered **ALPHA** after the
62+
**NOTE**: Some fields in our API may still be considered **ALPHA** after the
6263
API graduates to **BETA**. These fields are prefixed with `alpha` in
6364
JSON/YAML. Alpha fields are provided for use at your own risk, may not work
6465
correctly, may be subject to change or removal at any time, and will not have
@@ -76,7 +77,7 @@ for more information.
7677

7778
Our goal is to have extensive use-case and functional documentation.
7879

79-
See [here](./docs/v1) for [documentation](./docs/v1).
80+
See [here](./docs/v1) for detailed documentation.
8081

8182
See [here](https://github.com/kubernetes-incubator/service-catalog/wiki/Examples) for examples and
8283
[here](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md) for
@@ -85,13 +86,12 @@ broker servers that are compatible with this software.
8586
### Terminology
8687

8788
This project's problem domain contains a few inconvenient but unavoidable
88-
overloads with other Kubernetes terms. Check out our [terminology
89-
page](./terminology.md) for definitions of terms as they are used in this
90-
project.
89+
overloads with other Kubernetes terms. Check out our [terminology page](./terminology.md)
90+
for definitions of terms as they are used in this project.
9191

9292
### Contributing
9393

94-
Interested in contributing? Check out the [documentation](./CONTRIBUTING.md).
94+
Interested in contributing? Check out the [contributing documentation](./CONTRIBUTING.md).
9595

9696
Also see the [developer's guide](./docs/devguide.md) for information on how to
9797
build and test the code.

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/charts/catalog/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ chart and their default values.
3939

4040
| Parameter | Description | Default |
4141
|-----------|-------------|---------|
42-
| `apiserver.image` | apiserver image to use | `quay.io/kubernetes-service-catalog/apiserver:v0.0.15` |
42+
| `apiserver.image` | apiserver image to use | `quay.io/kubernetes-service-catalog/apiserver:v0.0.17` |
4343
| `apiserver.imagePullPolicy` | `imagePullPolicy` for the apiserver | `Always` |
4444
| `apiserver.tls.cert` | Base64-encoded x509 certificate | A self-signed certificate |
4545
| `apiserver.tls.key` | Base64-encoded private key | The private key for the certificate above |
@@ -53,7 +53,7 @@ chart and their default values.
5353
| `apiserver.storage.tpr.globalNamespace` | If storage type is `tpr`: Some service catalog resources are not namespaced, but third party resources must be; setting this designates a namespace that will be treated as a container for such resources | `servicecatalog` |
5454
| `apiserver.verbosity` | Log level; valid values are in the range 0 - 10 | `10` |
5555
| `apiserver.auth.enabled` | Enable authentication and authorization | `false` |
56-
| `controllerManager.image` | controller-manager image to use | `quay.io/kubernetes-service-catalog/controller-manager:v0.0.15` |
56+
| `controllerManager.image` | controller-manager image to use | `quay.io/kubernetes-service-catalog/controller-manager:v0.0.17` |
5757
| `controllerManager.imagePullPolicy` | `imagePullPolicy` for the controller-manager | `Always` |
5858
| `controllerManager.verbosity` | Log level; valid values are in the range 0 - 10 | `10` |
5959
| `controllerManager.resyncInterval` | How often the controller should resync informers; duration format (`20m`, `1h`, etc) | `5m` |

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/charts/catalog/templates/rbac.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ items:
7777
- apiGroups: [""]
7878
resources: ["events"]
7979
verbs: ["create","patch","update"]
80-
# TODO: do not grant global access, limit to particular secrets referenced from bindings
80+
# TODO: do not grant global access, limit to particular secrets referenced from serviceinstancecredentials
8181
- apiGroups: [""]
8282
resources: ["secrets"]
8383
verbs: ["get","create","delete"]
@@ -89,10 +89,10 @@ items:
8989
resources: ["serviceclasses"]
9090
verbs: ["get","list","watch","create","patch","update","delete"]
9191
- apiGroups: ["servicecatalog.k8s.io"]
92-
resources: ["bindings","brokers","instances"]
92+
resources: ["servicebrokers","serviceinstances","serviceinstancecredentials"]
9393
verbs: ["get","list","watch"]
9494
- apiGroups: ["servicecatalog.k8s.io"]
95-
resources: ["bindings/status","brokers/status","instances/status"]
95+
resources: ["servicebrokers/status","serviceinstances/status","serviceinstancecredentials/status"]
9696
verbs: ["update"]
9797
# give the controller-manager service account access to whats defined in its role.
9898
- apiVersion: rbac.authorization.k8s.io/v1beta1

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/charts/catalog/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
useAggregator: false
44
apiserver:
55
# apiserver image to use
6-
image: quay.io/kubernetes-service-catalog/apiserver:v0.0.15
6+
image: quay.io/kubernetes-service-catalog/apiserver:v0.0.17
77
# imagePullPolicy for the apiserver; valid values are "IfNotPresent",
88
# "Never", and "Always"
99
imagePullPolicy: Always
@@ -72,7 +72,7 @@ apiserver:
7272
serviceAccount: service-catalog-apiserver
7373
controllerManager:
7474
# controller-manager image to use
75-
image: quay.io/kubernetes-service-catalog/controller-manager:v0.0.15
75+
image: quay.io/kubernetes-service-catalog/controller-manager:v0.0.17
7676
# imagePullPolicy for the controller-manager; valid values are
7777
# "IfNotPresent", "Never", and "Always"
7878
imagePullPolicy: Always

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Service Broker
3434

3535
| Parameter | Description | Default |
3636
|-----------|-------------|---------|
37-
| `image` | Image to use | `quay.io/kubernetes-service-catalog/user-broker:v0.0.15` |
37+
| `image` | Image to use | `quay.io/kubernetes-service-catalog/user-broker:v0.0.17` |
3838
| `imagePullPolicy` | `imagePullPolicy` for the ups-broker | `Always` |
3939

4040
Specify each parameter using the `--set key=value[,key=value]` argument to

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker/templates/broker-deployment.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ spec:
2727
args:
2828
- --port
2929
- "8080"
30+
{{- if .Values.tls.cert}}
31+
- --tlsCert
32+
- "{{ .Values.tls.cert }}"
33+
{{- end}}
34+
{{- if .Values.tls.key}}
35+
- --tlsKey
36+
- "{{ .Values.tls.key }}"
37+
{{- end}}
3038
ports:
3139
- containerPort: 8080
3240
readinessProbe:
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Default values for User-Provided Service Broker
22
# Image to use
3-
image: quay.io/kubernetes-service-catalog/user-broker:v0.0.15
3+
image: quay.io/kubernetes-service-catalog/user-broker:v0.0.17
44
# ImagePullPolicy; valid values are "IfNotPresent", "Never", and "Always"
55
imagePullPolicy: Always
6+
# Certificate details to use for TLS. Leave blank to not use TLS
7+
tls:
8+
# base-64 encoded PEM data for the TLS certificate
9+
cert:
10+
# base-64 encoded PEM data for the private key matching the certificate
11+
key:

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/cmd/controller-manager/app/controller_manager.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ the core control loops shipped with the service catalog.`,
8484
const controllerManagerAgentName = "service-catalog-controller-manager"
8585
const controllerDiscoveryAgentName = "service-catalog-controller-discovery"
8686

87-
var catalogGVR = schema.GroupVersionResource{Group: "servicecatalog.k8s.io", Version: "v1alpha1", Resource: "brokers"}
87+
var catalogGVR = schema.GroupVersionResource{Group: "servicecatalog.k8s.io", Version: "v1alpha1", Resource: "servicebrokers"}
8888

8989
// Run runs the service-catalog controller-manager; should never exit.
9090
func Run(controllerManagerOptions *options.ControllerManagerServer) error {
@@ -323,16 +323,16 @@ func StartControllers(s *options.ControllerManagerServer,
323323
// All shared informers are v1alpha1 API level
324324
serviceCatalogSharedInformers := informerFactory.Servicecatalog().V1alpha1()
325325

326-
glog.V(5).Infof("Creating controller; broker relist interval: %v", s.BrokerRelistInterval)
326+
glog.V(5).Infof("Creating controller; broker relist interval: %v", s.ServiceBrokerRelistInterval)
327327
serviceCatalogController, err := controller.NewController(
328328
coreClient,
329329
serviceCatalogClientBuilder.ClientOrDie(controllerManagerAgentName).ServicecatalogV1alpha1(),
330-
serviceCatalogSharedInformers.Brokers(),
330+
serviceCatalogSharedInformers.ServiceBrokers(),
331331
serviceCatalogSharedInformers.ServiceClasses(),
332-
serviceCatalogSharedInformers.Instances(),
333-
serviceCatalogSharedInformers.Bindings(),
332+
serviceCatalogSharedInformers.ServiceInstances(),
333+
serviceCatalogSharedInformers.ServiceInstanceCredentials(),
334334
osb.NewClient,
335-
s.BrokerRelistInterval,
335+
s.ServiceBrokerRelistInterval,
336336
s.OSBAPIPreferredVersion,
337337
recorder,
338338
)

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/cmd/controller-manager/app/options/options.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ limitations under the License.
1616

1717
// The controller is responsible for running control loops that reconcile
1818
// the state of service catalog API resources with service brokers, service
19-
// classes, service instances, and service bindings.
19+
// classes, service instances, and service instance credentials.
2020

2121
package options
2222

@@ -39,7 +39,7 @@ type ControllerManagerServer struct {
3939

4040
const (
4141
defaultResyncInterval = 5 * time.Minute
42-
defaultBrokerRelistInterval = 24 * time.Hour
42+
defaultServiceBrokerRelistInterval = 24 * time.Hour
4343
defaultContentType = "application/json"
4444
defaultBindAddress = "0.0.0.0"
4545
defaultPort = 10000
@@ -63,7 +63,7 @@ func NewControllerManagerServer() *ControllerManagerServer {
6363
K8sKubeconfigPath: defaultK8sKubeconfigPath,
6464
ServiceCatalogKubeconfigPath: defaultServiceCatalogKubeconfigPath,
6565
ResyncInterval: defaultResyncInterval,
66-
BrokerRelistInterval: defaultBrokerRelistInterval,
66+
ServiceBrokerRelistInterval: defaultServiceBrokerRelistInterval,
6767
OSBAPIContextProfile: defaultOSBAPIContextProfile,
6868
OSBAPIPreferredVersion: defaultOSBAPIPreferredVersion,
6969
ConcurrentSyncs: defaultConcurrentSyncs,
@@ -88,7 +88,7 @@ func (s *ControllerManagerServer) AddFlags(fs *pflag.FlagSet) {
8888
fs.StringVar(&s.ServiceCatalogKubeconfigPath, "service-catalog-kubeconfig", "", "Path to service-catalog kubeconfig")
8989
fs.BoolVar(&s.ServiceCatalogInsecureSkipVerify, "service-catalog-insecure-skip-verify", s.ServiceCatalogInsecureSkipVerify, "Skip verification of the TLS certificate for the service-catalog API server")
9090
fs.DurationVar(&s.ResyncInterval, "resync-interval", s.ResyncInterval, "The interval on which the controller will resync its informers")
91-
fs.DurationVar(&s.BrokerRelistInterval, "broker-relist-interval", s.BrokerRelistInterval, "The interval on which a broker's catalog is relisted after the broker becomes ready")
91+
fs.DurationVar(&s.ServiceBrokerRelistInterval, "broker-relist-interval", s.ServiceBrokerRelistInterval, "The interval on which a broker's catalog is relisted after the broker becomes ready")
9292
fs.BoolVar(&s.OSBAPIContextProfile, "enable-osb-api-context-profile", s.OSBAPIContextProfile, "This does nothing.")
9393
fs.MarkHidden("enable-osb-api-context-profile")
9494
fs.StringVar(&s.OSBAPIPreferredVersion, "osb-api-preferred-version", s.OSBAPIPreferredVersion, "The string to send as the version header.")

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/contrib/cmd/user-broker/user-broker.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,15 @@ import (
3333
)
3434

3535
var options struct {
36-
Port int
36+
Port int
37+
TLSCert string
38+
TLSKey string
3739
}
3840

3941
func init() {
4042
flag.IntVar(&options.Port, "port", 8005, "use '--port' option to specify the port for broker to listen on")
43+
flag.StringVar(&options.TLSCert, "tlsCert", "", "base-64 encoded PEM block to use as the certificate for TLS. If '--tlsCert' is used, then '--tlsKey' must also be used. If '--tlsCert' is not used, then TLS will not be used.")
44+
flag.StringVar(&options.TLSKey, "tlsKey", "", "base-64 encoded PEM block to use as the private key matching the TLS certificate. If '--tlsKey' is used, then '--tlsCert' must also be used")
4145
flag.Parse()
4246
}
4347

@@ -60,9 +64,22 @@ func runWithContext(ctx context.Context) error {
6064
fmt.Printf("%s/%s\n", path.Base(os.Args[0]), pkg.VERSION)
6165
return nil
6266
}
67+
if (options.TLSCert != "" || options.TLSKey != "") &&
68+
(options.TLSCert == "" || options.TLSKey == "") {
69+
fmt.Println("To use TLS, both --tlsCert and --tlsKey must be used")
70+
return nil
71+
}
6372

6473
addr := ":" + strconv.Itoa(options.Port)
65-
return server.Run(ctx, addr, controller.CreateController())
74+
ctrlr := controller.CreateController()
75+
76+
var err error
77+
if options.TLSCert == "" && options.TLSKey == "" {
78+
err = server.Run(ctx, addr, ctrlr)
79+
} else {
80+
err = server.RunTLS(ctx, addr, options.TLSCert, options.TLSKey, ctrlr)
81+
}
82+
return err
6683
}
6784

6885
// cancelOnInterrupt calls f when os.Interrupt or SIGTERM is received.

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/apiserver/binding.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: servicecatalog.k8s.io/v1alpha1
2-
kind: Binding
2+
kind: ServiceInstanceCredential
33
metadata:
44
name: test-binding
55
namespace: test-ns

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/apiserver/broker.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: servicecatalog.k8s.io/v1alpha1
2-
kind: Broker
2+
kind: ServiceBroker
33
metadata:
44
name: test-broker
55
spec:

cmd/service-catalog/go/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/apiserver/instance.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: servicecatalog.k8s.io/v1alpha1
2-
kind: Instance
2+
kind: ServiceInstance
33
metadata:
44
name: test-instance
55
namespace: test-ns
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
## Walkthrough Resources
22

3-
This directory contains API resources for use with the [demo
4-
walkthrough](../../../docs/walkthrough.md).
3+
This directory contains API resources for use with the demo walkthrough.
4+
5+
Please see [the introduction document](../../../docs/introduction.md) for
6+
instructions.

0 commit comments

Comments
 (0)