diff --git a/cmd/apiserver/plugins.go b/cmd/apiserver/plugins.go index 1e92d034eae..64908e509a3 100644 --- a/cmd/apiserver/plugins.go +++ b/cmd/apiserver/plugins.go @@ -22,6 +22,7 @@ package main import ( _ "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/aws" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/gce" + _ "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/openstack" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/ovirt" _ "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/vagrant" ) diff --git a/pkg/cloudprovider/openstack/MAINTAINERS.md b/pkg/cloudprovider/openstack/MAINTAINERS.md new file mode 100644 index 00000000000..9e09608e16c --- /dev/null +++ b/pkg/cloudprovider/openstack/MAINTAINERS.md @@ -0,0 +1,3 @@ +# Maintainers + +* [Angus Lees](https://github.com/anguslees) diff --git a/pkg/cloudprovider/openstack/openstack.go b/pkg/cloudprovider/openstack/openstack.go new file mode 100644 index 00000000000..6e2ef1bb6bf --- /dev/null +++ b/pkg/cloudprovider/openstack/openstack.go @@ -0,0 +1,48 @@ +/* +Copyright 2014 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package openstack + +import ( + "io" + + "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider" +) + +// OpenStack is an implementation of cloud provider Interface for OpenStack. +type OpenStack struct {} + +func init() { + cloudprovider.RegisterCloudProvider("openstack", func(config io.Reader) (cloudprovider.Interface, error) { + return newOpenStack(config) + }) +} + +func newOpenStack(config io.Reader) (*OpenStack, error) { + return &OpenStack{}, nil +} + +func (os *OpenStack) TCPLoadBalancer() (cloudprovider.TCPLoadBalancer, bool) { + return nil, false +} + +func (os *OpenStack) Instances() (cloudprovider.Instances, bool) { + return nil, false +} + +func (os *OpenStack) Zones() (cloudprovider.Zones, bool) { + return nil, false +} diff --git a/pkg/cloudprovider/openstack/openstack_test.go b/pkg/cloudprovider/openstack/openstack_test.go new file mode 100644 index 00000000000..41f99ab93e9 --- /dev/null +++ b/pkg/cloudprovider/openstack/openstack_test.go @@ -0,0 +1,29 @@ +/* +Copyright 2014 Google Inc. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package openstack + +import ( + "strings" + "testing" +) + +func TestNewOpenStack(t *testing.T) { + _, err := newOpenStack(strings.NewReader("")) + if err != nil { + t.Errorf("Should succeed when a valid config is provided: %s", err) + } +}