Skip to content

Commit

Permalink
Port CAPO to MAO API
Browse files Browse the repository at this point in the history
Co-authored-by: Emilio Garcia <egarcia@redhat.com>
  • Loading branch information
Fedosin and Emilio Garcia committed Jun 8, 2020
1 parent dc67343 commit aae77a7
Show file tree
Hide file tree
Showing 15 changed files with 52 additions and 331 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ WORKDIR /go/src/sigs.k8s.io/cluster-api-provider-openstack
COPY . .

RUN go build -o ./machine-controller-manager ./cmd/manager
RUN go build -o ./manager ./vendor/github.com/openshift/cluster-api/cmd/manager
RUN go build -o ./manager ./vendor/github.com/openshift/machine-api-operator/cmd/machineset

FROM registry.svc.ci.openshift.org/openshift/origin-v4.0:base
RUN INSTALL_PKGS=" \
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.rhel7
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ WORKDIR /go/src/sigs.k8s.io/cluster-api-provider-openstack
COPY . .

RUN go build -o ./machine-controller-manager ./cmd/manager
RUN go build -o ./manager ./vendor/github.com/openshift/cluster-api/cmd/manager
RUN go build -o ./manager ./vendor/github.com/openshift/machine-api-operator/cmd/machineset

FROM registry.svc.ci.openshift.org/ocp/4.0:base
RUN INSTALL_PKGS=" \
Expand Down
4 changes: 2 additions & 2 deletions cmd/manager/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import (
"flag"
"log"

clusterapis "github.com/openshift/cluster-api/pkg/apis"
machinev1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
"k8s.io/klog"
"sigs.k8s.io/cluster-api-provider-openstack/pkg/apis"
"sigs.k8s.io/cluster-api-provider-openstack/pkg/controller"
Expand Down Expand Up @@ -61,7 +61,7 @@ func main() {
klog.Fatal(err)
}

if err := clusterapis.AddToScheme(mgr.GetScheme()); err != nil {
if err := machinev1.AddToScheme(mgr.GetScheme()); err != nil {
klog.Fatal(err)
}

Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ require (
github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a // indirect
github.com/coreos/ignition v0.33.0 // indirect
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 // indirect
github.com/golang/mock v1.2.0
github.com/gophercloud/gophercloud v0.6.1-0.20191025185032-6ad562af8c1f
github.com/gophercloud/utils v0.0.0-20190124231947-9c3b9f2457ef
github.com/openshift/client-go v0.0.0-20200320150128-a906f3d8e723
Expand All @@ -26,6 +27,6 @@ require (
k8s.io/cluster-bootstrap v0.0.0-20190202014938-c9acc0c1bea2
k8s.io/klog v1.0.0
sigs.k8s.io/controller-runtime v0.5.1-0.20200330174416-a11a908d91e0
sigs.k8s.io/controller-tools v0.3.0 // indirect
sigs.k8s.io/controller-tools v0.3.0
sigs.k8s.io/yaml v1.2.0
)
1 change: 1 addition & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc/go.mod h1:cIg4er
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9 h1:uHTyIjqVhYRhLbJ8nIiOJHkEZZ+5YoOsAbD3sk82NiE=
github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0 h1:28o5sBqPkBsMGnC6b4MvE2TzSr5/AT4c/1fLqVGIwlk=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/openstackproviderconfig/v1alpha1/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ limitations under the License.
*/

// +k8s:deepcopy-gen=package,register
// +k8s:conversion-gen=github.com/openshift/cluster-api/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig
// +k8s:conversion-gen=github.com/openshift/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig
// +k8s:openapi-gen=true
// +k8s:defaulter-gen=TypeMeta
// +groupName=openstackproviderconfig.openshift.io
Expand Down
33 changes: 2 additions & 31 deletions pkg/apis/openstackproviderconfig/v1alpha1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ import (
"k8s.io/apimachinery/pkg/util/json"
"sigs.k8s.io/yaml"

clusterv1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1"
machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1"
machinev1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
"sigs.k8s.io/controller-runtime/pkg/scheme"
)

Expand All @@ -39,35 +38,7 @@ var (
SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)

// ClusterConfigFromProviderSpec unmarshals a provider config into an OpenStack Cluster type
func ClusterSpecFromProviderSpec(providerSpec clusterv1.ProviderSpec) (*OpenstackClusterProviderSpec, error) {
if providerSpec.Value == nil {
return nil, errors.New("no such providerSpec found in manifest")
}

var config OpenstackClusterProviderSpec
if err := yaml.Unmarshal(providerSpec.Value.Raw, &config); err != nil {
return nil, err
}
return &config, nil
}

// ClusterStatusFromProviderStatus unmarshals a provider status into an OpenStack Cluster Status type
func ClusterStatusFromProviderStatus(extension *runtime.RawExtension) (*OpenstackClusterProviderStatus, error) {
if extension == nil {
return &OpenstackClusterProviderStatus{}, nil
}

status := new(OpenstackClusterProviderStatus)
if err := yaml.Unmarshal(extension.Raw, status); err != nil {
return nil, err
}

return status, nil
}

// This is the same as ClusterSpecFromProviderSpec but we
// expect there to be a specific Spec type for Machines soon
// MachineSpecFromProviderSpec unmarshals a provider status into an OpenStack Machine Status type
func MachineSpecFromProviderSpec(providerSpec machinev1.ProviderSpec) (*OpenstackProviderSpec, error) {
if providerSpec.Value == nil {
return nil, errors.New("no such providerSpec found in manifest")
Expand Down
11 changes: 6 additions & 5 deletions pkg/cloud/openstack/clients/machineservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package clients

import (
"context"
"crypto/tls"
"crypto/x509"
"encoding/base64"
Expand Down Expand Up @@ -50,8 +51,8 @@ import (
"github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/utils/openstack/clientconfig"
configclient "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1"
"github.com/openshift/cluster-api/pkg/util"
machinev1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"
"github.com/openshift/machine-api-operator/pkg/util"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/klog"
openstackconfigv1 "sigs.k8s.io/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig/v1alpha1"
Expand Down Expand Up @@ -133,7 +134,7 @@ func GetCloudFromSecret(kubeClient kubernetes.Interface, namespace string, secre
return emptyCloud, fmt.Errorf("Secret name set to %v but no cloud was specified. Please set cloud_name in your machine spec.", secretName)
}

secret, err := kubeClient.CoreV1().Secrets(namespace).Get(secretName, metav1.GetOptions{})
secret, err := kubeClient.CoreV1().Secrets(namespace).Get(context.TODO(), secretName, metav1.GetOptions{})
if err != nil {
return emptyCloud, fmt.Errorf("Failed to get secrets from kubernetes api: %v", err)
}
Expand Down Expand Up @@ -170,7 +171,7 @@ func NewInstanceServiceFromMachine(kubeClient kubernetes.Interface, machine *mac
}
}

cloudConfig, err := kubeClient.CoreV1().ConfigMaps("openshift-config").Get("cloud-provider-config", metav1.GetOptions{})
cloudConfig, err := kubeClient.CoreV1().ConfigMaps("openshift-config").Get(context.TODO(), "cloud-provider-config", metav1.GetOptions{})
if err != nil {
klog.Warningf("failed to get configmap openshift-config/cloud-provider-config from kubernetes api: %v", err)
return NewInstanceServiceFromCloud(cloud, nil)
Expand Down Expand Up @@ -528,7 +529,7 @@ func (is *InstanceService) InstanceCreate(clusterName string, name string, clust
return nil, fmt.Errorf("No network was found or provided. Please check your machine configuration and try again")
}

clusterInfra, err := configClient.Infrastructures().Get("cluster", metav1.GetOptions{})
clusterInfra, err := configClient.Infrastructures().Get(context.TODO(), "cluster", metav1.GetOptions{})
if err != nil {
return nil, fmt.Errorf("Failed to retrieve cluster Infrastructure object: %v", err)
}
Expand Down
167 changes: 0 additions & 167 deletions pkg/cloud/openstack/cluster/actuator.go

This file was deleted.

15 changes: 5 additions & 10 deletions pkg/cloud/openstack/deployer.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ import (
"os/exec"
"strings"

clustercommon "github.com/openshift/cluster-api/pkg/apis/cluster/common"
clusterv1 "github.com/openshift/cluster-api/pkg/apis/cluster/v1alpha1"
machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1"
machinev1 "github.com/openshift/machine-api-operator/pkg/apis/machine/v1beta1"

"k8s.io/klog"
openstackconfigv1 "sigs.k8s.io/cluster-api-provider-openstack/pkg/apis/openstackproviderconfig/v1alpha1"
)
Expand All @@ -36,17 +35,13 @@ const (
OpenstackIdAnnotationKey = "openstack-resourceId"
)

func init() {
clustercommon.RegisterClusterProvisioner(ProviderName, NewDeploymentClient())
}

type DeploymentClient struct{}

func NewDeploymentClient() *DeploymentClient {
return &DeploymentClient{}
}

func (*DeploymentClient) GetIP(cluster *clusterv1.Cluster, machine *machinev1.Machine) (string, error) {
func (*DeploymentClient) GetIP(machine *machinev1.Machine) (string, error) {
if machine.ObjectMeta.Annotations != nil {
if ip, ok := machine.ObjectMeta.Annotations[OpenstackIPAnnotationKey]; ok {
klog.Infof("Returning IP from machine annotation %s", ip)
Expand All @@ -67,8 +62,8 @@ func execCommand(name string, args ...string) string {
return string(cmdOut)
}

func (d *DeploymentClient) GetKubeConfig(cluster *clusterv1.Cluster, master *machinev1.Machine) (string, error) {
ip, err := d.GetIP(cluster, master)
func (d *DeploymentClient) GetKubeConfig(master *machinev1.Machine) (string, error) {
ip, err := d.GetIP(master)
if err != nil {
return "", err
}
Expand Down
Loading

0 comments on commit aae77a7

Please sign in to comment.