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

Commit 36f2a5d

Browse files
Merge pull request #90 from camilamacedo86/up-0.12
Go sample upgrade to use SDK 0.12
2 parents 27342c7 + b1357de commit 36f2a5d

File tree

9 files changed

+523
-335
lines changed

9 files changed

+523
-335
lines changed

memcached-operator/README.md

+32-1
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,42 @@ $ sed -i "" 's|REPLACE_IMAGE|quay.io/example-inc/memcached-operator|g' deploy/op
5858

5959
Run `make install` to install the operator. Check that the operator is running in the cluster, also check that the example Memcached service was deployed.
6060

61+
Following the expected result.
62+
63+
```shell
64+
$ kubectl get all -n memcached
65+
NAME READY STATUS RESTARTS AGE
66+
pod/example-memcached-7c4df9b7b4-lzd6j 1/1 Running 0 64s
67+
pod/example-memcached-7c4df9b7b4-wbtkz 1/1 Running 0 64s
68+
pod/example-memcached-7c4df9b7b4-wt6jb 1/1 Running 0 64s
69+
pod/memcached-operator-56f54d84bf-zrtfv 1/1 Running 0 69s
70+
71+
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
72+
service/example-memcached ClusterIP 10.108.124.47 <none> 11211/TCP 63s
73+
service/memcached-operator-metrics ClusterIP 10.108.67.82 <none> 8383/TCP,8686/TCP 66s
74+
75+
NAME READY UP-TO-DATE AVAILABLE AGE
76+
deployment.apps/example-memcached 3/3 3 3 65s
77+
deployment.apps/memcached-operator 1/1 1 1 70s
78+
79+
NAME DESIRED CURRENT READY AGE
80+
replicaset.apps/example-memcached-7c4df9b7b4 3 3 3 65s
81+
replicaset.apps/memcached-operator-56f54d84bf 1 1 1 70s
82+
```
83+
6184
### Uninstalling
6285

6386
To uninstall all that was performed in the above step run `make uninstall`.
6487

65-
### Run Tests
88+
### Troubleshooting
89+
90+
Use the following command to check the operator logs.
91+
92+
```shell
93+
kubectl logs deployment.apps/memcached-operator -n memcached
94+
```
95+
96+
### Running Tests
6697

6798
Run `make test-e2e` to run the integration e2e tests with different options. For
6899
more information see the [writing e2e tests](https://github.com/operator-framework/operator-sdk/blob/master/doc/test-framework/writing-e2e-tests.md) guide.

memcached-operator/cmd/manager/main.go

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
"github.com/operator-framework/operator-sdk-samples/memcached-operator/pkg/apis"
1515
"github.com/operator-framework/operator-sdk-samples/memcached-operator/pkg/controller"
16+
"github.com/operator-framework/operator-sdk-samples/memcached-operator/version"
1617

1718
"github.com/operator-framework/operator-sdk/pkg/k8sutil"
1819
kubemetrics "github.com/operator-framework/operator-sdk/pkg/kube-metrics"
@@ -39,6 +40,7 @@ var (
3940
var log = logf.Log.WithName("cmd")
4041

4142
func printVersion() {
43+
log.Info(fmt.Sprintf("Operator Version: %s", version.Version))
4244
log.Info(fmt.Sprintf("Go Version: %s", runtime.Version()))
4345
log.Info(fmt.Sprintf("Go OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH))
4446
log.Info(fmt.Sprintf("Version of operator-sdk: %v", sdkVersion.Version))

memcached-operator/deploy/crds/cache.example.com_memcacheds_crd.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ spec:
4646
items:
4747
type: string
4848
type: array
49-
uniqueItems: true
5049
required:
5150
- nodes
5251
type: object
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
apiVersion: operators.coreos.com/v1alpha1
2+
kind: ClusterServiceVersion
3+
metadata:
4+
annotations:
5+
alm-examples: |-
6+
[
7+
{
8+
"apiVersion": "cache.example.com/v1alpha1",
9+
"kind": "Memcached",
10+
"metadata": {
11+
"name": "example-memcached"
12+
},
13+
"spec": {
14+
"size": 3
15+
}
16+
}
17+
]
18+
capabilities: Basic Install
19+
name: memcached-operator.v0.12.0
20+
namespace: placeholder
21+
spec:
22+
apiservicedefinitions: {}
23+
customresourcedefinitions:
24+
owned:
25+
- description: Represents a cluster of Memcached apps
26+
displayName: Memcached App
27+
kind: Memcached
28+
name: memcacheds.cache.example.com
29+
resources:
30+
- kind: Deployment
31+
name: ""
32+
version: v1
33+
- kind: Service
34+
name: ""
35+
version: v1
36+
- kind: ReplicaSet
37+
name: ""
38+
version: v1
39+
- kind: Pod
40+
name: ""
41+
version: v1
42+
specDescriptors:
43+
- description: The desired number of member Pods for the deployment.
44+
displayName: Size
45+
path: size
46+
x-descriptors:
47+
- urn:alm:descriptor:com.tectonic.ui:podCount
48+
statusDescriptors:
49+
- description: The current status of the application.
50+
displayName: Status
51+
path: phase
52+
x-descriptors:
53+
- urn:alm:descriptor:io.kubernetes.phase
54+
- description: Explanation for the current status of the application.
55+
displayName: Status Details
56+
path: reason
57+
x-descriptors:
58+
- urn:alm:descriptor:io.kubernetes.phase:reason
59+
version: v1alpha1
60+
description: Main enterprise application providing business critical features with
61+
high availability and no manual intervention.
62+
displayName: Memcached Application
63+
install:
64+
spec:
65+
deployments:
66+
- name: memcached-operator
67+
spec:
68+
replicas: 1
69+
selector:
70+
matchLabels:
71+
name: memcached-operator
72+
strategy: {}
73+
template:
74+
metadata:
75+
labels:
76+
name: memcached-operator
77+
spec:
78+
containers:
79+
- command:
80+
- memcached-operator
81+
env:
82+
- name: WATCH_NAMESPACE
83+
valueFrom:
84+
fieldRef:
85+
fieldPath: metadata.annotations['olm.targetNamespaces']
86+
- name: POD_NAME
87+
valueFrom:
88+
fieldRef:
89+
fieldPath: metadata.name
90+
- name: OPERATOR_NAME
91+
value: memcached-operator
92+
image: REPLACE_IMAGE
93+
imagePullPolicy: Always
94+
name: memcached-operator
95+
resources: {}
96+
serviceAccountName: memcached-operator
97+
permissions:
98+
- rules:
99+
- apiGroups:
100+
- ""
101+
resources:
102+
- pods
103+
- services
104+
- services/finalizers
105+
- endpoints
106+
- persistentvolumeclaims
107+
- events
108+
- configmaps
109+
- secrets
110+
verbs:
111+
- '*'
112+
- apiGroups:
113+
- apps
114+
resources:
115+
- deployments
116+
- daemonsets
117+
- replicasets
118+
- statefulsets
119+
verbs:
120+
- '*'
121+
- apiGroups:
122+
- monitoring.coreos.com
123+
resources:
124+
- servicemonitors
125+
verbs:
126+
- get
127+
- create
128+
- apiGroups:
129+
- apps
130+
resourceNames:
131+
- memcached-operator
132+
resources:
133+
- deployments/finalizers
134+
verbs:
135+
- update
136+
- apiGroups:
137+
- ""
138+
resources:
139+
- pods
140+
verbs:
141+
- get
142+
- apiGroups:
143+
- apps
144+
resources:
145+
- replicasets
146+
verbs:
147+
- get
148+
- apiGroups:
149+
- cache.example.com
150+
resources:
151+
- '*'
152+
verbs:
153+
- '*'
154+
serviceAccountName: memcached-operator
155+
strategy: deployment
156+
installModes:
157+
- supported: true
158+
type: OwnNamespace
159+
- supported: true
160+
type: SingleNamespace
161+
- supported: false
162+
type: MultiNamespace
163+
- supported: true
164+
type: AllNamespaces
165+
keywords:
166+
- memcached
167+
- app
168+
maintainers:
169+
170+
name: Some Corp
171+
maturity: alpha
172+
provider:
173+
name: Example
174+
url: www.example.com
175+
version: 0.12.0
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
channels:
2-
- currentCSV: memcached-operator.v0.11.0
2+
- currentCSV: memcached-operator.v0.12.0
33
name: alpha
44
defaultChannel: alpha
55
packageName: memcached-operator

memcached-operator/go.mod

+29-23
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,38 @@
11
module github.com/operator-framework/operator-sdk-samples/memcached-operator
22

3+
go 1.13
4+
35
require (
46
github.com/go-openapi/spec v0.19.0
5-
github.com/operator-framework/operator-sdk v0.10.1-0.20190906161029-1cb0481ca946
7+
github.com/operator-framework/operator-sdk v0.12.1-0.20191112211508-82fc57de5e5b
68
github.com/spf13/pflag v1.0.3
7-
k8s.io/api v0.0.0-20190918155943-95b840bb6a1f
8-
k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655
9-
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
10-
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208
11-
sigs.k8s.io/controller-runtime v0.2.2
12-
)
13-
14-
// Pinned to kubernetes-1.14.1
15-
replace (
16-
k8s.io/api => k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b
17-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.0.0-20190409022649-727a075fdec8
18-
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190404173353-6a84e37a896d
19-
k8s.io/client-go => k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
20-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.0.0-20190409023720-1bc0c81fa51d
9+
k8s.io/api v0.0.0
10+
k8s.io/apimachinery v0.0.0
11+
k8s.io/client-go v11.0.0+incompatible
12+
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d
13+
sigs.k8s.io/controller-runtime v0.3.0
2114
)
2215

16+
// Pinned to kubernetes-1.15.4
2317
replace (
24-
github.com/coreos/prometheus-operator => github.com/coreos/prometheus-operator v0.31.1
25-
// Pinned to v2.10.0 (kubernetes-1.14.1) so https://proxy.golang.org can
26-
// resolve it correctly.
27-
github.com/prometheus/prometheus => github.com/prometheus/prometheus v0.0.0-20190525122359-d20e84d0fb64
18+
k8s.io/api => k8s.io/api v0.0.0-20190918195907-bd6ac527cfd2
19+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.0.0-20190918201827-3de75813f604
20+
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20190817020851-f2f3a405f61d
21+
k8s.io/apiserver => k8s.io/apiserver v0.0.0-20190918200908-1e17798da8c1
22+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20190918202139-0b14c719ca62
23+
k8s.io/client-go => k8s.io/client-go v0.0.0-20190918200256-06eb1244587a
24+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.0.0-20190918203125-ae665f80358a
25+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.0.0-20190918202959-c340507a5d48
26+
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20190612205613-18da4a14b22b
27+
k8s.io/component-base => k8s.io/component-base v0.0.0-20190918200425-ed2f0867c778
28+
k8s.io/cri-api => k8s.io/cri-api v0.0.0-20190817025403-3ae76f584e79
29+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.0.0-20190918203248-97c07dcbb623
30+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.0.0-20190918201136-c3a845f1fbb2
31+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.0.0-20190918202837-c54ce30c680e
32+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.0.0-20190918202429-08c8357f8e2d
33+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.0.0-20190918202713-c34a54b3ec8e
34+
k8s.io/kubelet => k8s.io/kubelet v0.0.0-20190918202550-958285cf3eef
35+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.0.0-20190918203421-225f0541b3ea
36+
k8s.io/metrics => k8s.io/metrics v0.0.0-20190918202012-3c1ca76f5bda
37+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.0.0-20190918201353-5cc279503896
2838
)
29-
30-
replace github.com/operator-framework/operator-sdk => github.com/operator-framework/operator-sdk v0.11.0
31-
32-
go 1.12

0 commit comments

Comments
 (0)