diff --git a/hack/.packages b/hack/.packages index efd1cc60ac354..bc0030dfdc9fd 100644 --- a/hack/.packages +++ b/hack/.packages @@ -116,6 +116,7 @@ k8s.io/kops/pkg/resources/aws k8s.io/kops/pkg/resources/digitalocean k8s.io/kops/pkg/resources/digitalocean/dns k8s.io/kops/pkg/resources/gce +k8s.io/kops/pkg/resources/openstack k8s.io/kops/pkg/resources/ops k8s.io/kops/pkg/sshcredentials k8s.io/kops/pkg/systemd diff --git a/pkg/resources/openstack/BUILD.bazel b/pkg/resources/openstack/BUILD.bazel new file mode 100644 index 0000000000000..7dee9eff7e2b6 --- /dev/null +++ b/pkg/resources/openstack/BUILD.bazel @@ -0,0 +1,12 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["resources.go"], + importpath = "k8s.io/kops/pkg/resources/openstack", + visibility = ["//visibility:public"], + deps = [ + "//pkg/resources:go_default_library", + "//upup/pkg/fi/cloudup/openstack:go_default_library", + ], +) diff --git a/pkg/resources/openstack/resources.go b/pkg/resources/openstack/resources.go new file mode 100644 index 0000000000000..bbc13a5aa53f4 --- /dev/null +++ b/pkg/resources/openstack/resources.go @@ -0,0 +1,32 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 ( + "k8s.io/kops/pkg/resources" + "k8s.io/kops/upup/pkg/fi/cloudup/openstack" +) + +type listFn func(openstack.OpenstackCloud, string) ([]*resources.Resource, error) + +func ListResources(cloud openstack.OpenstackCloud, clusterName string) (map[string]*resources.Resource, error) { + resourceTrackers := make(map[string]*resources.Resource) + + // TODO(lmb): Implement resource list + + return resourceTrackers, nil +} diff --git a/pkg/resources/ops/BUILD.bazel b/pkg/resources/ops/BUILD.bazel index 0f1202baaf79d..b1d6b00a2b9ec 100644 --- a/pkg/resources/ops/BUILD.bazel +++ b/pkg/resources/ops/BUILD.bazel @@ -14,9 +14,11 @@ go_library( "//pkg/resources/aws:go_default_library", "//pkg/resources/digitalocean:go_default_library", "//pkg/resources/gce:go_default_library", + "//pkg/resources/openstack:go_default_library", "//upup/pkg/fi:go_default_library", "//upup/pkg/fi/cloudup/awsup:go_default_library", "//upup/pkg/fi/cloudup/gce:go_default_library", + "//upup/pkg/fi/cloudup/openstack:go_default_library", "//upup/pkg/fi/cloudup/vsphere:go_default_library", "//vendor/github.com/golang/glog:go_default_library", ], diff --git a/pkg/resources/ops/collector.go b/pkg/resources/ops/collector.go index ed2418128c60f..0e5698461d76c 100644 --- a/pkg/resources/ops/collector.go +++ b/pkg/resources/ops/collector.go @@ -24,9 +24,11 @@ import ( "k8s.io/kops/pkg/resources/aws" "k8s.io/kops/pkg/resources/digitalocean" "k8s.io/kops/pkg/resources/gce" + "k8s.io/kops/pkg/resources/openstack" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/cloudup/awsup" cloudgce "k8s.io/kops/upup/pkg/fi/cloudup/gce" + cloudopenstack "k8s.io/kops/upup/pkg/fi/cloudup/openstack" "k8s.io/kops/upup/pkg/fi/cloudup/vsphere" ) @@ -39,6 +41,8 @@ func ListResources(cloud fi.Cloud, clusterName string, region string) (map[strin return digitalocean.ListResources(cloud.(*digitalocean.Cloud), clusterName) case kops.CloudProviderGCE: return gce.ListResourcesGCE(cloud.(cloudgce.GCECloud), clusterName, region) + case kops.CloudProviderOpenstack: + return openstack.ListResources(cloud.(cloudopenstack.OpenstackCloud), clusterName) case kops.CloudProviderVSphere: return resources.ListResourcesVSphere(cloud.(*vsphere.VSphereCloud), clusterName) default: