Skip to content
This repository was archived by the owner on Nov 18, 2020. It is now read-only.

Commit 032ed79

Browse files
committed
memcached-operator: resync to master sdk
1 parent aad5379 commit 032ed79

File tree

818 files changed

+48848
-19462
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

818 files changed

+48848
-19462
lines changed

memcached-operator/Gopkg.lock

Lines changed: 106 additions & 67 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

memcached-operator/Gopkg.toml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,32 @@ required = [
1414

1515
[[override]]
1616
name = "k8s.io/code-generator"
17-
# revision for tag "kubernetes-1.10.1"
18-
revision = "7ead8f38b01cf8653249f5af80ce7b2c8aba12e2"
17+
# revision for tag "kubernetes-1.11.2"
18+
revision = "6702109cc68eb6fe6350b83e14407c8d7309fd1a"
1919

2020
[[override]]
2121
name = "k8s.io/api"
22-
# revision for tag "kubernetes-1.10.1"
23-
revision = "73d903622b7391f3312dcbac6483fed484e185f8"
22+
# revision for tag "kubernetes-1.11.2"
23+
revision = "2d6f90ab1293a1fb871cf149423ebb72aa7423aa"
2424

2525
[[override]]
2626
name = "k8s.io/apiextensions-apiserver"
27-
# revision for tag "kubernetes-1.10.1"
28-
revision = "4347b330d0ff094db860f2f75fa725b4f4b53618"
27+
# revision for tag "kubernetes-1.11.2"
28+
revision = "408db4a50408e2149acbd657bceb2480c13cb0a4"
2929

3030
[[override]]
3131
name = "k8s.io/apimachinery"
32-
# revision for tag "kubernetes-1.10.1"
33-
revision = "302974c03f7e50f16561ba237db776ab93594ef6"
32+
# revision for tag "kubernetes-1.11.2"
33+
revision = "103fd098999dc9c0c88536f5c9ad2e5da39373ae"
3434

3535
[[override]]
3636
name = "k8s.io/client-go"
37-
# revision for tag "kubernetes-1.10.1"
38-
revision = "989be4278f353e42f26c416c53757d16fcff77db"
37+
# revision for tag "kubernetes-1.11.2"
38+
revision = "1f13a808da65775f22cbf47862c4e5898d8f4ca1"
3939

4040
[[override]]
4141
name = "sigs.k8s.io/controller-runtime"
42-
revision = "60bb251ad86f9b313653618aad0c2c53f41a6625"
42+
version = "v0.1.3"
4343

4444
[prune]
4545
go-tests = true
@@ -55,4 +55,4 @@ required = [
5555
name = "github.com/operator-framework/operator-sdk"
5656
# The version rule is used for a specific release and the master branch for in between releases.
5757
branch = "master"
58-
# version = "=v0.0.5"
58+
# version = "=v0.0.6"

memcached-operator/README.md

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
# Memcached Operator
22

33
## Overview
4+
45
This Memcached operator is a simple example operator for the [Operator SDK][operator_sdk] and includes some basic end-to-end tests.
56

67
## Quick Start
8+
79
This quick start guide walks through the process of building the memcached-operator and running its end-to-end tests.
810

911
### Prerequisites
12+
1013
- [dep][dep_tool] version v0.5.0+.
1114
- [go][go_tool] version v1.10+
1215
- [docker][docker_tool] version 17.03+
1316
- Access to a kubernetes v1.9.0+ cluster
1417

1518
### Install the Operator SDK CLI
19+
1620
First, checkout and install the operator-sdk CLI:
21+
1722
```
1823
$ cd $GOPATH/src/github.com/operator-framework/operator-sdk
1924
$ git checkout master // currently, there are no releases that include the test framework, so use the master for now
@@ -22,35 +27,72 @@ $ go install github.com/operator-framework/operator-sdk/commands/operator-sdk
2227
```
2328

2429
### Initial Setup
30+
2531
Checkout this Memcached Operator repository
32+
2633
```
2734
$ mkdir $GOPATH/src/github.com/operator-framework
2835
$ cd $GOPATH/src/github.com/operator-framework
2936
$ git clone https://github.com/operator-framework/operator-sdk-samples.git
3037
$ cd operator-sdk-samples/memcached-operator
3138
```
39+
3240
Vendor the dependencies
41+
3342
```
3443
$ dep ensure
3544
```
3645

3746
### Build the operator
38-
Build the Memcached operator image and push it to a public registry, such as quay.io
47+
48+
Build the Memcached operator image and push it to a public registry, such as quay.io:
49+
3950
```
4051
$ export IMAGE=quay.io/example-inc/memcached-operator:v0.0.1
4152
$ operator-sdk build $IMAGE
4253
$ docker push $IMAGE
4354
```
4455

4556
### Run the tests
46-
Run the tests that reside in test/e2e:
57+
58+
To run the tests in `test/e2e`, first make sure to update the image name from `REPLACE_IMAGE`
59+
to your desired image name in `deploy/operator.yaml`:
60+
61+
```
62+
$ sed "s@REPLACE_IMAGE@$IMAGE@g" -i deploy/operator.yaml
63+
```
64+
65+
Run the tests that reside in `test/e2e`:
66+
4767
```
48-
$ operator-sdk test --test-location ./test/e2e --kubeconfig $HOME/.kube/config
68+
$ operator-sdk test local ./test/e2e
4969
```
5070

5171
To run go-test with verbose and limit to 2 parallel tests:
72+
73+
```
74+
$ operator-sdk test local ./test/e2e --go-test-flags "-v -parallel=2"
75+
```
76+
77+
To run the tests from an image in the cluster, first build the tests into your image:
78+
79+
```
80+
$ operator-sdk build $IMAGE --enable-tests
81+
$ docker push $IMAGE
82+
```
83+
84+
Then, configure the testing environment:
85+
86+
```
87+
$ export NAMESPACE="my-test"
88+
$ kubectl create deploy/crd.yaml -n $NAMESPACE
89+
$ kubectl create deploy/sa.yaml -n $NAMESPACE
90+
$ kubectl create deploy/rbac.yaml -n $NAMESPACE
91+
```
92+
93+
Finally, run the tests:
5294
```
53-
$ operator-sdk test --test-location ./test/e2e --kubeconfig $HOME/.kube/config --go-test-flags "-v -parallel=2"
95+
$ operator-sdk test cluster $IMAGE --namespace $NAMESPACE --service-account memcached-operator
5496
```
5597

5698
[dep_tool]:https://golang.github.io/dep/docs/installation.html
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: memcached-operator
5+
spec:
6+
replicas: 1
7+
selector:
8+
matchLabels:
9+
name: memcached-operator
10+
template:
11+
metadata:
12+
labels:
13+
name: memcached-operator
14+
spec:
15+
serviceAccountName: memcached-operator
16+
containers:
17+
- name: memcached-operator
18+
image: REPLACE_IMAGE
19+
ports:
20+
- containerPort: 60000
21+
name: metrics
22+
command:
23+
- memcached-operator
24+
imagePullPolicy: Always
25+
env:
26+
- name: WATCH_NAMESPACE
27+
valueFrom:
28+
fieldRef:
29+
fieldPath: metadata.namespace
30+
- name: OPERATOR_NAME
31+
value: "memcached-operator"

memcached-operator/deploy/rbac.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ rules:
3636
kind: RoleBinding
3737
apiVersion: rbac.authorization.k8s.io/v1beta1
3838
metadata:
39-
name: default-account-memcached-operator
39+
name: memcached-operator
4040
subjects:
4141
- kind: ServiceAccount
42-
name: default
42+
name: memcached-operator
4343
roleRef:
4444
kind: Role
4545
name: memcached-operator

memcached-operator/deploy/sa.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: memcached-operator

memcached-operator/pkg/apis/cache/v1alpha1/zz_generated.deepcopy.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

memcached-operator/pkg/stub/handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package stub
22

33
import (
4+
"context"
45
"fmt"
56
"reflect"
6-
"context"
77

88
v1alpha1 "github.com/operator-framework/operator-sdk-samples/memcached-operator/pkg/apis/cache/v1alpha1"
99

memcached-operator/test/e2e/memcached_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ import (
2929
)
3030

3131
var (
32-
retryInterval = time.Second * 5
33-
timeout = time.Second * 30
32+
retryInterval = time.Second * 5
33+
timeout = time.Second * 30
34+
cleanupRetryInterval = time.Second * 1
35+
cleanupTimeout = time.Second * 5
3436
)
3537

3638
func TestMemcached(t *testing.T) {
@@ -70,25 +72,23 @@ func memcachedScaleTest(t *testing.T, f *framework.Framework, ctx *framework.Tes
7072
Size: 3,
7173
},
7274
}
73-
err = f.DynamicClient.Create(goctx.TODO(), exampleMemcached)
75+
// use TestCtx's create helper to create the object and add a cleanup function for the new object
76+
err = f.Client.Create(goctx.TODO(), exampleMemcached, &framework.CleanupOptions{TestContext: ctx, Timeout: cleanupTimeout, RetryInterval: cleanupRetryInterval})
7477
if err != nil {
7578
return err
7679
}
77-
ctx.AddFinalizerFn(func() error {
78-
return f.DynamicClient.Delete(goctx.TODO(), exampleMemcached)
79-
})
8080
// wait for example-memcached to reach 3 replicas
8181
err = e2eutil.WaitForDeployment(t, f.KubeClient, namespace, "example-memcached", 3, retryInterval, timeout)
8282
if err != nil {
8383
return err
8484
}
8585

86-
err = f.DynamicClient.Get(goctx.TODO(), types.NamespacedName{Name: "example-memcached", Namespace: namespace}, exampleMemcached)
86+
err = f.Client.Get(goctx.TODO(), types.NamespacedName{Name: "example-memcached", Namespace: namespace}, exampleMemcached)
8787
if err != nil {
8888
return err
8989
}
9090
exampleMemcached.Spec.Size = 4
91-
err = f.DynamicClient.Update(goctx.TODO(), exampleMemcached)
91+
err = f.Client.Update(goctx.TODO(), exampleMemcached)
9292
if err != nil {
9393
return err
9494
}
@@ -100,8 +100,8 @@ func memcachedScaleTest(t *testing.T, f *framework.Framework, ctx *framework.Tes
100100
func MemcachedCluster(t *testing.T) {
101101
t.Parallel()
102102
ctx := framework.NewTestCtx(t)
103-
defer ctx.Cleanup(t)
104-
err := ctx.InitializeClusterResources()
103+
defer ctx.Cleanup()
104+
err := ctx.InitializeClusterResources(&framework.CleanupOptions{TestContext: ctx, Timeout: cleanupTimeout, RetryInterval: cleanupRetryInterval})
105105
if err != nil {
106106
t.Fatalf("failed to initialize cluster resources: %v", err)
107107
}

memcached-operator/tmp/build/build.sh

Lines changed: 0 additions & 18 deletions
This file was deleted.

memcached-operator/tmp/build/docker_build.sh

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
memcached-operator-test -test.parallel=1 -test.failfast -root=/ -kubeconfig=incluster -namespacedMan=namespaced.yaml -test.v
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
ARG BASEIMAGE
2+
3+
FROM ${BASEIMAGE}
4+
5+
ADD tmp/_output/bin/memcached-operator-test /usr/local/bin/memcached-operator-test
6+
ARG NAMESPACEDMAN
7+
ADD $NAMESPACEDMAN /namespaced.yaml
8+
ADD tmp/build/go-test.sh /go-test.sh

memcached-operator/vendor/github.com/davecgh/go-spew/LICENSE

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)