Skip to content

Commit

Permalink
Merge pull request #43 from huffmanca/STOR383
Browse files Browse the repository at this point in the history
Move to a newer version of library-go and external snapshotter
  • Loading branch information
openshift-merge-robot committed Jul 28, 2020
2 parents 70b5d12 + 4cc08cc commit 108649c
Show file tree
Hide file tree
Showing 1,281 changed files with 56,960 additions and 108,701 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ all: build
.PHONY: all

# Include the library makefile
include $(addprefix ./vendor/github.com/openshift/library-go/alpha-build-machinery/make/, \
include $(addprefix ./vendor/github.com/openshift/build-machinery-go/make/, \
golang.mk \
targets/openshift/deps-gomod.mk \
targets/openshift/images.mk \
Expand Down
2 changes: 1 addition & 1 deletion assets/csi_controller_deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
serviceAccount: csi-snapshot-controller
containers:
- name: snapshot-controller
image: quay.io/k8scsi/snapshot-controller:v2.0.0
image: quay.io/k8scsi/snapshot-controller:v2.2.0-rc1
args:
- "--v=5"
- "--leader-election=true"
Expand Down
52 changes: 39 additions & 13 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,49 @@ module github.com/openshift/cluster-csi-snapshot-controller-operator
go 1.13

require (
github.com/google/go-cmp v0.3.1
github.com/jteeuwen/go-bindata v3.0.8-0.20151023091102-a0ff2567cfb7+incompatible
github.com/go-bindata/go-bindata v3.1.2+incompatible
github.com/google/go-cmp v0.4.0
github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
github.com/kubernetes-csi/external-snapshotter/v2 v2.0.1
github.com/openshift/api v0.0.0-20200116145750-0e2ff1e215dd
github.com/openshift/client-go v0.0.0-20200116152001-92a2713fa240
github.com/openshift/library-go v0.0.0-20200110123007-276971bef92b
github.com/kubernetes-csi/external-snapshotter/v2 v2.2.0-rc1
github.com/openshift/api v0.0.0-20200701144905-de5b010b2b38
github.com/openshift/build-machinery-go v0.0.0-20200713135615-1f43d26dccc7
github.com/openshift/client-go v0.0.0-20200521150516-05eb9880269c
github.com/openshift/library-go v0.0.0-20200716164352-7bba3eea3cb7
github.com/prometheus/client_golang v1.1.0
github.com/spf13/cobra v0.0.5
github.com/spf13/pflag v1.0.5
golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9 // indirect
gopkg.in/yaml.v2 v2.2.8 // indirect
k8s.io/api v0.17.1
k8s.io/apiextensions-apiserver v0.17.0
k8s.io/apimachinery v0.17.1
k8s.io/client-go v0.17.1
k8s.io/component-base v0.17.0
go.etcd.io/bbolt v1.3.5 // indirect
go.etcd.io/etcd v0.5.0-alpha.5.0.20200520232829-54ba9589114f // indirect
go.uber.org/zap v1.14.1 // indirect
k8s.io/api v0.18.3
k8s.io/apiextensions-apiserver v0.18.3
k8s.io/apimachinery v0.18.3
k8s.io/client-go v0.18.3
k8s.io/component-base v0.18.3
k8s.io/klog v1.0.0
sigs.k8s.io/controller-runtime v0.4.0
)

replace (
k8s.io/api => k8s.io/api v0.18.3
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.18.3
k8s.io/apimachinery => k8s.io/apimachinery v0.18.3
k8s.io/apiserver => k8s.io/apiserver v0.18.3
k8s.io/cli-runtime => k8s.io/cli-runtime v0.18.3
k8s.io/client-go => k8s.io/client-go v0.18.3
k8s.io/cloud-provider => k8s.io/cloud-provider v0.18.3
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.18.3
k8s.io/code-generator => k8s.io/code-generator v0.18.3
k8s.io/component-base => k8s.io/component-base v0.18.3
k8s.io/cri-api => k8s.io/cri-api v0.18.3
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.18.3
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.18.3
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.18.3
k8s.io/kube-proxy => k8s.io/kube-proxy v0.18.3
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.18.3
k8s.io/kubectl => k8s.io/kubectl v0.18.3
k8s.io/kubelet => k8s.io/kubelet v0.18.3
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.18.3
k8s.io/metrics => k8s.io/metrics v0.18.3
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.18.3
)
274 changes: 153 additions & 121 deletions go.sum

Large diffs are not rendered by default.

5 changes: 3 additions & 2 deletions pkg/dependencymagnet/dependencymagnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package dependencymagnet

import (
_ "github.com/jteeuwen/go-bindata/go-bindata"
_ "github.com/openshift/library-go/alpha-build-machinery"
_ "github.com/go-bindata/go-bindata"
_ "github.com/go-bindata/go-bindata/go-bindata"
_ "github.com/openshift/build-machinery-go"
)
19 changes: 14 additions & 5 deletions pkg/generated/bindata.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 6 additions & 4 deletions pkg/operator/operator_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package operator

import (
"context"
"sort"
"testing"
"time"
Expand All @@ -11,6 +12,7 @@ import (
opinformers "github.com/openshift/client-go/operator/informers/externalversions"
"github.com/openshift/cluster-csi-snapshot-controller-operator/pkg/generated"
"github.com/openshift/library-go/pkg/operator/events"
"github.com/openshift/library-go/pkg/operator/resource/resourceapply"
"github.com/openshift/library-go/pkg/operator/resource/resourceread"
"github.com/openshift/library-go/pkg/operator/status"
appsv1 "k8s.io/api/apps/v1"
Expand Down Expand Up @@ -256,7 +258,7 @@ func getDeployment(args []string, image string, modifiers ...deploymentModifier)
if dep.Annotations == nil {
dep.Annotations = map[string]string{}
}
dep.Annotations["operator.openshift.io/pull-spec"] = image
resourceapply.SetSpecHashAnnotation(&dep.ObjectMeta, dep.Spec)

for _, modifier := range modifiers {
dep = modifier(dep)
Expand Down Expand Up @@ -689,7 +691,7 @@ func TestSync(t *testing.T) {
}

// Check expectedObjects.crds
actualCRDList, _ := ctx.extAPIClient.ApiextensionsV1beta1().CustomResourceDefinitions().List(metav1.ListOptions{})
actualCRDList, _ := ctx.extAPIClient.ApiextensionsV1beta1().CustomResourceDefinitions().List(context.TODO(), metav1.ListOptions{})
actualCRDs := map[string]*apiextv1beta1.CustomResourceDefinition{}
for i := range actualCRDList.Items {
crd := &actualCRDList.Items[i]
Expand Down Expand Up @@ -719,7 +721,7 @@ func TestSync(t *testing.T) {

// Check expectedObjects.deployment
if test.expectedObjects.deployment != nil {
actualDeployment, err := ctx.coreClient.AppsV1().Deployments(targetNamespace).Get(targetName, metav1.GetOptions{})
actualDeployment, err := ctx.coreClient.AppsV1().Deployments(targetNamespace).Get(context.TODO(), targetName, metav1.GetOptions{})
if err != nil {
t.Errorf("Failed to get Deployment %s: %v", targetName, err)
}
Expand All @@ -731,7 +733,7 @@ func TestSync(t *testing.T) {
}
// Check expectedObjects.csiSnapshotController
if test.expectedObjects.csiSnapshotController != nil {
actualCSISnapshotController, err := ctx.operatorClient.OperatorV1().CSISnapshotControllers().Get(globalConfigName, metav1.GetOptions{})
actualCSISnapshotController, err := ctx.operatorClient.OperatorV1().CSISnapshotControllers().Get(context.TODO(), globalConfigName, metav1.GetOptions{})
if err != nil {
t.Errorf("Failed to get CSISnapshotController %s: %v", globalConfigName, err)
}
Expand Down
16 changes: 14 additions & 2 deletions pkg/operator/operatorclient.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package operator

import (
"context"

"k8s.io/client-go/tools/cache"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

operatorv1 "github.com/openshift/api/operator/v1"

operatorconfigclient "github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1"
Expand All @@ -27,6 +31,14 @@ func (c OperatorClient) GetOperatorState() (*operatorv1.OperatorSpec, *operatorv
return &instance.Spec.OperatorSpec, &instance.Status.OperatorStatus, instance.ResourceVersion, nil
}

func (c OperatorClient) GetObjectMeta() (*metav1.ObjectMeta, error) {
instance, err := c.Informers.Operator().V1().CSISnapshotControllers().Lister().Get(globalConfigName)
if err != nil {
return nil, err
}
return &instance.ObjectMeta, nil
}

func (c OperatorClient) UpdateOperatorSpec(resourceVersion string, spec *operatorv1.OperatorSpec) (*operatorv1.OperatorSpec, string, error) {
original, err := c.Informers.Operator().V1().CSISnapshotControllers().Lister().Get(globalConfigName)
if err != nil {
Expand All @@ -36,7 +48,7 @@ func (c OperatorClient) UpdateOperatorSpec(resourceVersion string, spec *operato
copy.ResourceVersion = resourceVersion
copy.Spec.OperatorSpec = *spec

ret, err := c.Client.CSISnapshotControllers().Update(copy)
ret, err := c.Client.CSISnapshotControllers().Update(context.TODO(), copy, metav1.UpdateOptions{})
if err != nil {
return nil, "", err
}
Expand All @@ -53,7 +65,7 @@ func (c OperatorClient) UpdateOperatorStatus(resourceVersion string, status *ope
copy.ResourceVersion = resourceVersion
copy.Status.OperatorStatus = *status

ret, err := c.Client.CSISnapshotControllers().UpdateStatus(copy)
ret, err := c.Client.CSISnapshotControllers().UpdateStatus(context.TODO(), copy, metav1.UpdateOptions{})
if err != nil {
return nil, err
}
Expand Down
23 changes: 2 additions & 21 deletions pkg/operator/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (c *csiSnapshotOperator) syncCustomResourceDefinitions() error {
}
for _, file := range crds {
crd := resourceread.ReadCustomResourceDefinitionV1Beta1OrDie(generated.MustAsset(file))
_, updated, err := resourceapply.ApplyCustomResourceDefinition(c.crdClient.ApiextensionsV1beta1(), c.eventRecorder, crd)
_, updated, err := resourceapply.ApplyCustomResourceDefinitionV1Beta1(c.crdClient.ApiextensionsV1beta1(), c.eventRecorder, crd)
if err != nil {
return err
}
Expand Down Expand Up @@ -110,30 +110,11 @@ func (c *csiSnapshotOperator) checkAlphaCRDs() error {
func (c *csiSnapshotOperator) syncDeployment(instance *operatorv1.CSISnapshotController) (*appsv1.Deployment, error) {
deploy := c.getExpectedDeployment(instance)

// Update the deployment when something updated CSISnapshotController.Spec.LogLevel.
// The easiest check is for Generation update (i.e. redeploy on any CSISnapshotController.Spec change).
// This may update the Deployment more than it is strictly necessary, but the overhead is not that big.
forceRollout := false
if instance.Generation != instance.Status.ObservedGeneration {
forceRollout = true
}

if c.versionChanged("operator", c.operatorVersion) {
// Operator version changed. The new one _may_ have updated Deployment -> we should deploy it.
forceRollout = true
}

if c.versionChanged("csi-snapshot-controller", c.operandVersion) {
// Operand version changed. Update the deployment with a new image.
forceRollout = true
}

deploy, _, err := resourceapply.ApplyDeployment(
c.kubeClient.AppsV1(),
c.eventRecorder,
deploy,
resourcemerge.ExpectedDeploymentGeneration(deploy, instance.Status.Generations),
forceRollout)
resourcemerge.ExpectedDeploymentGeneration(deploy, instance.Status.Generations))
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 108649c

Please sign in to comment.