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

Commit 942c977

Browse files
Update GO operator to SDK 0.14 (#106)
* Update GO operator to SDK 0.14
1 parent e471778 commit 942c977

6 files changed

Lines changed: 289 additions & 243 deletions

File tree

go/memcached-operator/cmd/manager/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ import (
2020
"github.com/operator-framework/operator-sdk/pkg/leader"
2121
"github.com/operator-framework/operator-sdk/pkg/log/zap"
2222
"github.com/operator-framework/operator-sdk/pkg/metrics"
23-
"github.com/operator-framework/operator-sdk/pkg/restmapper"
2423
sdkVersion "github.com/operator-framework/operator-sdk/version"
2524
"github.com/spf13/pflag"
2625
v1 "k8s.io/api/core/v1"
2726
"k8s.io/apimachinery/pkg/util/intstr"
27+
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
2828
"sigs.k8s.io/controller-runtime/pkg/client/config"
2929
logf "sigs.k8s.io/controller-runtime/pkg/log"
3030
"sigs.k8s.io/controller-runtime/pkg/manager"
@@ -93,7 +93,7 @@ func main() {
9393
// Create a new Cmd to provide shared dependencies and start components
9494
mgr, err := manager.New(cfg, manager.Options{
9595
Namespace: namespace,
96-
MapperProvider: restmapper.NewDynamicRESTMapper,
96+
MapperProvider: apiutil.NewDiscoveryRESTMapper,
9797
MetricsBindAddress: fmt.Sprintf("%s:%d", metricsHost, metricsPort),
9898
})
9999
if err != nil {

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ spec:
3232
description: MemcachedSpec defines the desired state of Memcached
3333
properties:
3434
size:
35-
description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
36-
Important: Run "operator-sdk generate k8s" to regenerate code after
37-
modifying this file Add custom validation using kubebuilder tags:
38-
https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
39-
Size is the size of the memcached deployment'
35+
description: Size is the size of the memcached deployment
4036
format: int32
4137
type: integer
4238
required:
@@ -46,11 +42,7 @@ spec:
4642
description: MemcachedStatus defines the observed state of Memcached
4743
properties:
4844
nodes:
49-
description: 'INSERT ADDITIONAL STATUS FIELD - define observed state
50-
of cluster Important: Run "operator-sdk generate k8s" to regenerate
51-
code after modifying this file Add custom validation using kubebuilder
52-
tags: https://book-v1.book.kubebuilder.io/beyond_basics/generating_crd.html
53-
Nodes are the names of the memcached pods'
45+
description: Nodes are the names of the memcached pods
5446
items:
5547
type: string
5648
type: array
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
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.14.0
20+
namespace: placeholder
21+
spec:
22+
apiservicedefinitions: {}
23+
customresourcedefinitions:
24+
owned:
25+
- description: Memcached is the Schema for the memcacheds API
26+
kind: Memcached
27+
name: memcacheds.cache.example.com
28+
version: v1alpha1
29+
description: Operator-SDK Go Memcached sample.
30+
displayName: Memcached Operator
31+
install:
32+
spec:
33+
deployments:
34+
- name: memcached-operator
35+
spec:
36+
replicas: 1
37+
selector:
38+
matchLabels:
39+
name: memcached-operator
40+
strategy: {}
41+
template:
42+
metadata:
43+
labels:
44+
name: memcached-operator
45+
spec:
46+
containers:
47+
- command:
48+
- memcached-operator
49+
env:
50+
- name: WATCH_NAMESPACE
51+
valueFrom:
52+
fieldRef:
53+
fieldPath: metadata.annotations['olm.targetNamespaces']
54+
- name: POD_NAME
55+
valueFrom:
56+
fieldRef:
57+
fieldPath: metadata.name
58+
- name: OPERATOR_NAME
59+
value: memcached-operator
60+
image: REPLACE_IMAGE
61+
imagePullPolicy: Always
62+
name: memcached-operator
63+
resources: {}
64+
serviceAccountName: memcached-operator
65+
permissions:
66+
- rules:
67+
- apiGroups:
68+
- ""
69+
resources:
70+
- pods
71+
- services
72+
- services/finalizers
73+
- endpoints
74+
- persistentvolumeclaims
75+
- events
76+
- configmaps
77+
- secrets
78+
verbs:
79+
- create
80+
- delete
81+
- get
82+
- list
83+
- patch
84+
- update
85+
- watch
86+
- apiGroups:
87+
- apps
88+
resources:
89+
- deployments
90+
- daemonsets
91+
- replicasets
92+
- statefulsets
93+
verbs:
94+
- create
95+
- delete
96+
- get
97+
- list
98+
- patch
99+
- update
100+
- watch
101+
- apiGroups:
102+
- monitoring.coreos.com
103+
resources:
104+
- servicemonitors
105+
verbs:
106+
- get
107+
- create
108+
- apiGroups:
109+
- apps
110+
resourceNames:
111+
- memcached-operator
112+
resources:
113+
- deployments/finalizers
114+
verbs:
115+
- update
116+
- apiGroups:
117+
- ""
118+
resources:
119+
- pods
120+
verbs:
121+
- get
122+
- apiGroups:
123+
- apps
124+
resources:
125+
- replicasets
126+
- deployments
127+
verbs:
128+
- get
129+
- apiGroups:
130+
- cache.example.com
131+
resources:
132+
- '*'
133+
verbs:
134+
- create
135+
- delete
136+
- get
137+
- list
138+
- patch
139+
- update
140+
- watch
141+
serviceAccountName: memcached-operator
142+
strategy: deployment
143+
installModes:
144+
- supported: true
145+
type: OwnNamespace
146+
- supported: true
147+
type: SingleNamespace
148+
- supported: false
149+
type: MultiNamespace
150+
- supported: true
151+
type: AllNamespaces
152+
keywords:
153+
- memcached
154+
- app
155+
maintainers:
156+
- email: corp@example.com
157+
name: Some Corp
158+
maturity: alpha
159+
provider:
160+
name: Example
161+
url: www.example.com
162+
version: 0.14.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
channels:
2-
- currentCSV: memcached-operator.v0.13.0
2+
- currentCSV: memcached-operator.v0.14.0
33
name: alpha
44
defaultChannel: alpha
55
packageName: memcached-operator

go/memcached-operator/go.mod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ module github.com/operator-framework/operator-sdk-samples/go/memcached-operator
33
go 1.13
44

55
require (
6-
github.com/go-openapi/spec v0.19.2
7-
github.com/operator-framework/operator-sdk v0.13.0
6+
github.com/go-openapi/spec v0.19.4
7+
github.com/operator-framework/operator-sdk v0.14.1
88
github.com/spf13/pflag v1.0.5
99
k8s.io/api v0.0.0
1010
k8s.io/apimachinery v0.0.0
@@ -37,3 +37,5 @@ replace (
3737
k8s.io/metrics => k8s.io/metrics v0.0.0-20191016113814-3b1a734dba6e
3838
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.0.0-20191016112829-06bb3c9d77c9
3939
)
40+
41+
replace github.com/docker/docker => github.com/moby/moby v0.7.3-0.20190826074503-38ab9da00309 // Required by Helm

0 commit comments

Comments
 (0)