Skip to content

Commit

Permalink
Refactor deployment strategy client + naming fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ecordell committed Oct 31, 2017
1 parent eb2937f commit 1bbd0ec
Show file tree
Hide file tree
Showing 13 changed files with 107 additions and 293 deletions.
2 changes: 1 addition & 1 deletion apis/clusterserviceversion/v1alpha1/types.go
Expand Up @@ -130,7 +130,7 @@ const (
CSVReasonRequirementsNotMet ConditionReason = "RequirementsNotMet"
CSVReasonRequirementsMet ConditionReason = "AllRequirementsMet"
CSVReasonComponentFailed ConditionReason = "InstallComponentFailed"
CSVReasonInvalidStrategy ConditionReason = "InstallStrategyInvalid"
CSVReasonInvalidStrategy ConditionReason = "InvalidInstallStrategy"
CSVReasonInstallSuccessful ConditionReason = "InstallSucceeded"
CSVReasonInstallCheckFailed ConditionReason = "InstallCheckFailed"
CSVReasonComponentUnhealthy ConditionReason = "ComponentUnhealthy"
Expand Down
2 changes: 0 additions & 2 deletions apis/subscription/v1alpha1/doc.go

This file was deleted.

47 changes: 0 additions & 47 deletions apis/subscription/v1alpha1/types.go

This file was deleted.

144 changes: 0 additions & 144 deletions apis/subscription/v1alpha1/zz_generated.deepcopy.go

This file was deleted.

53 changes: 18 additions & 35 deletions client/deployment_install_client.go
@@ -1,10 +1,7 @@
package client

import (
"fmt"

opClient "github.com/coreos-inc/operator-client/pkg/client"
log "github.com/sirupsen/logrus"
"github.com/pkg/errors"
"k8s.io/api/core/v1"
v1beta1extensions "k8s.io/api/extensions/v1beta1"
Expand All @@ -16,42 +13,42 @@ import (
type InstallStrategyDeploymentInterface interface {
CreateRole(role *v1beta1rbac.Role) (*v1beta1rbac.Role, error)
CreateRoleBinding(roleBinding *v1beta1rbac.RoleBinding) (*v1beta1rbac.RoleBinding, error)
GetOrCreateServiceAccount(serviceAccount *v1.ServiceAccount) (*v1.ServiceAccount, error)
EnsureServiceAccount(serviceAccount *v1.ServiceAccount) (*v1.ServiceAccount, error)
CreateDeployment(deployment *v1beta1extensions.Deployment) (*v1beta1extensions.Deployment, error)
CheckServiceAccount(serviceAccountName string) (bool, error)
CheckOwnedDeployments(owner metav1.ObjectMeta, deploymentSpecs []v1beta1extensions.DeploymentSpec) (bool, error)
GetServiceAccountByName(serviceAccountName string) (*v1.ServiceAccount, error)
GetOwnedDeployments(owner metav1.ObjectMeta) (*v1beta1extensions.DeploymentList, error)
}

type InstallStrategyDeploymentClient struct {
type InstallStrategyDeploymentClientForNamespace struct {
opClient opClient.Interface
Namespace string
}

var _ InstallStrategyDeploymentInterface = &InstallStrategyDeploymentClient{}
var _ InstallStrategyDeploymentInterface = &InstallStrategyDeploymentClientForNamespace{}

func NewInstallStrategyDeploymentClient(opClient opClient.Interface, namespace string) InstallStrategyDeploymentInterface {
return &InstallStrategyDeploymentClient{
return &InstallStrategyDeploymentClientForNamespace{
opClient: opClient,
Namespace: namespace,
}
}

func (c *InstallStrategyDeploymentClient) CreateRole(role *v1beta1rbac.Role) (*v1beta1rbac.Role, error) {
func (c *InstallStrategyDeploymentClientForNamespace) CreateRole(role *v1beta1rbac.Role) (*v1beta1rbac.Role, error) {
return c.opClient.KubernetesInterface().RbacV1beta1().Roles(c.Namespace).Create(role)
}

func (c *InstallStrategyDeploymentClient) CreateRoleBinding(roleBinding *v1beta1rbac.RoleBinding) (*v1beta1rbac.RoleBinding, error) {
func (c *InstallStrategyDeploymentClientForNamespace) CreateRoleBinding(roleBinding *v1beta1rbac.RoleBinding) (*v1beta1rbac.RoleBinding, error) {
return c.opClient.KubernetesInterface().RbacV1beta1().RoleBindings(c.Namespace).Create(roleBinding)
}

func (c *InstallStrategyDeploymentClient) GetOrCreateServiceAccount(serviceAccount *v1.ServiceAccount) (*v1.ServiceAccount, error) {
func (c *InstallStrategyDeploymentClientForNamespace) EnsureServiceAccount(serviceAccount *v1.ServiceAccount) (*v1.ServiceAccount, error) {
foundAccount, err := c.opClient.KubernetesInterface().CoreV1().ServiceAccounts(c.Namespace).Get(serviceAccount.Name, metav1.GetOptions{})
if err != nil && !apierrors.IsNotFound(err) {
return nil, errors.Wrap(err, "checking for existing serviceacccount failed")
}
if foundAccount != nil {
if err == nil {
return foundAccount, nil
}
if !apierrors.IsNotFound(err) {
return nil, errors.Wrap(err, "checking for existing serviceacccount failed")
}

createdAccount, err := c.opClient.KubernetesInterface().CoreV1().ServiceAccounts(c.Namespace).Create(serviceAccount)
if err != nil && !apierrors.IsAlreadyExists(err) {
Expand All @@ -60,31 +57,17 @@ func (c *InstallStrategyDeploymentClient) GetOrCreateServiceAccount(serviceAccou
return createdAccount, nil
}

func (c *InstallStrategyDeploymentClient) CreateDeployment(deployment *v1beta1extensions.Deployment) (*v1beta1extensions.Deployment, error) {
func (c *InstallStrategyDeploymentClientForNamespace) CreateDeployment(deployment *v1beta1extensions.Deployment) (*v1beta1extensions.Deployment, error) {
return c.opClient.CreateDeployment(deployment)
}

func (c *InstallStrategyDeploymentClient) CheckServiceAccount(serviceAccountName string) (bool, error) {
if _, err := c.opClient.KubernetesInterface().CoreV1().ServiceAccounts(c.Namespace).Get(serviceAccountName, metav1.GetOptions{}); err != nil {
if apierrors.IsNotFound(err) {
return false, nil
}
return false, fmt.Errorf("serviceaccount %s not found: %s", serviceAccountName, err.Error())
}
return true, nil
func (c *InstallStrategyDeploymentClientForNamespace) GetServiceAccountByName(serviceAccountName string) (*v1.ServiceAccount, error) {
return c.opClient.KubernetesInterface().CoreV1().ServiceAccounts(c.Namespace).Get(serviceAccountName, metav1.GetOptions{})
}

func (c *InstallStrategyDeploymentClient) CheckOwnedDeployments(owner metav1.ObjectMeta, deploymentSpecs []v1beta1extensions.DeploymentSpec) (bool, error) {
existingDeployments, err := c.opClient.ListDeploymentsWithLabels(c.Namespace, map[string]string{
func (c *InstallStrategyDeploymentClientForNamespace) GetOwnedDeployments(owner metav1.ObjectMeta) (*v1beta1extensions.DeploymentList, error) {
return c.opClient.ListDeploymentsWithLabels(c.Namespace, map[string]string{
"alm-owner-name": owner.Name,
"alm-owner-namespace": owner.Namespace,
})
if err != nil {
return false, fmt.Errorf("couldn't query for existing deployments: %s", err)
}
if len(existingDeployments.Items) != len(deploymentSpecs) {
log.Debugf("wrong number of deployments found. want %d, got %d", len(deploymentSpecs), len(existingDeployments.Items))
return false, nil
}
return true, nil
}
34 changes: 17 additions & 17 deletions client/zz_generated.mock_deployment_install_client.go
Expand Up @@ -5,10 +5,10 @@ package client

import (
gomock "github.com/golang/mock/gomock"
v1 "k8s.io/api/core/v1"
v10 "k8s.io/api/core/v1"
v1beta10 "k8s.io/api/extensions/v1beta1"
v1beta1 "k8s.io/api/rbac/v1beta1"
v10 "k8s.io/apimachinery/pkg/apis/meta/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// Mock of InstallStrategyDeploymentInterface interface
Expand Down Expand Up @@ -54,15 +54,15 @@ func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) CreateRoleBinding(ar
return _mr.mock.ctrl.RecordCall(_mr.mock, "CreateRoleBinding", arg0)
}

func (_m *MockInstallStrategyDeploymentInterface) GetOrCreateServiceAccount(serviceAccount *v1.ServiceAccount) (*v1.ServiceAccount, error) {
ret := _m.ctrl.Call(_m, "GetOrCreateServiceAccount", serviceAccount)
ret0, _ := ret[0].(*v1.ServiceAccount)
func (_m *MockInstallStrategyDeploymentInterface) EnsureServiceAccount(serviceAccount *v10.ServiceAccount) (*v10.ServiceAccount, error) {
ret := _m.ctrl.Call(_m, "EnsureServiceAccount", serviceAccount)
ret0, _ := ret[0].(*v10.ServiceAccount)
ret1, _ := ret[1].(error)
return ret0, ret1
}

func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) GetOrCreateServiceAccount(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "GetOrCreateServiceAccount", arg0)
func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) EnsureServiceAccount(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "EnsureServiceAccount", arg0)
}

func (_m *MockInstallStrategyDeploymentInterface) CreateDeployment(deployment *v1beta10.Deployment) (*v1beta10.Deployment, error) {
Expand All @@ -76,24 +76,24 @@ func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) CreateDeployment(arg
return _mr.mock.ctrl.RecordCall(_mr.mock, "CreateDeployment", arg0)
}

func (_m *MockInstallStrategyDeploymentInterface) CheckServiceAccount(serviceAccountName string) (bool, error) {
ret := _m.ctrl.Call(_m, "CheckServiceAccount", serviceAccountName)
ret0, _ := ret[0].(bool)
func (_m *MockInstallStrategyDeploymentInterface) GetServiceAccountByName(serviceAccountName string) (*v10.ServiceAccount, error) {
ret := _m.ctrl.Call(_m, "GetServiceAccountByName", serviceAccountName)
ret0, _ := ret[0].(*v10.ServiceAccount)
ret1, _ := ret[1].(error)
return ret0, ret1
}

func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) CheckServiceAccount(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "CheckServiceAccount", arg0)
func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) GetServiceAccountByName(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "GetServiceAccountByName", arg0)
}

func (_m *MockInstallStrategyDeploymentInterface) CheckOwnedDeployments(owner v10.ObjectMeta, deploymentSpecs []v1beta10.DeploymentSpec) (bool, error) {
ret := _m.ctrl.Call(_m, "CheckOwnedDeployments", owner, deploymentSpecs)
ret0, _ := ret[0].(bool)
func (_m *MockInstallStrategyDeploymentInterface) GetOwnedDeployments(owner v1.ObjectMeta) (*v1beta10.DeploymentList, error) {
ret := _m.ctrl.Call(_m, "GetOwnedDeployments", owner)
ret0, _ := ret[0].(*v1beta10.DeploymentList)
ret1, _ := ret[1].(error)
return ret0, ret1
}

func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) CheckOwnedDeployments(arg0, arg1 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "CheckOwnedDeployments", arg0, arg1)
func (_mr *_MockInstallStrategyDeploymentInterfaceRecorder) GetOwnedDeployments(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCall(_mr.mock, "GetOwnedDeployments", arg0)
}
2 changes: 1 addition & 1 deletion hack/k8s/codegen/run_in_docker.sh
Expand Up @@ -9,7 +9,7 @@ set -o pipefail
source ./$(dirname "$0")/codegen.sh

api_groups=("clusterserviceversion:v1alpha1" "installplan:v1alpha1"
"subscription:v1alpha1", "alphacatalogentry:v1alpha1")
"alphacatalogentry:v1alpha1")

for group in ${api_groups[@]}; do
echo -n "[$group] "
Expand Down

0 comments on commit 1bbd0ec

Please sign in to comment.