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

Commit e471778

Browse files
Update sample projects to use operator-sdk 0.13 (#105)
* GO operator modified for SDK 0.13 update * Update SDK 0.13 * Update SDK 0.13 * Update SDK 0.13 * Fixed Indentation and added missing CSV field in Go OLM * Ansible Readme:Updated K8s version * Fixed Role for GO operator failure
1 parent ccfcf4a commit e471778

17 files changed

Lines changed: 628 additions & 49 deletions

File tree

ansible/memcached-operator/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ This Memcached operator is a simple example operator for the [Operator SDK][oper
77
## Prerequisites
88

99
- [docker][docker_tool] version 17.03+
10-
- [kubectl][kubectl_tool] v1.12+
10+
- [kubectl][kubectl_tool] v1.14.1+
1111
- [operator_sdk][operator_install]
12-
- Access to a Kubernetes v1.12+ cluster
12+
- Access to a Kubernetes v1.14.1+ cluster
1313

1414
## Getting Started
1515

ansible/memcached-operator/build/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM quay.io/operator-framework/ansible-operator:v0.12.0
1+
FROM quay.io/operator-framework/ansible-operator:v0.13.0
22

33
COPY watches.yaml ${HOME}/watches.yaml
44

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ spec:
1212
scope: Namespaced
1313
subresources:
1414
status: {}
15+
validation:
16+
openAPIV3Schema:
17+
type: object
18+
x-kubernetes-preserve-unknown-fields: true
1519
versions:
1620
- name: v1alpha1
1721
served: true

ansible/memcached-operator/deploy/role.yaml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ rules:
1616
- configmaps
1717
- secrets
1818
verbs:
19-
- '*'
19+
- create
20+
- delete
21+
- get
22+
- list
23+
- patch
24+
- update
25+
- watch
2026
- apiGroups:
2127
- apps
2228
resources:
@@ -25,7 +31,13 @@ rules:
2531
- replicasets
2632
- statefulsets
2733
verbs:
28-
- '*'
34+
- create
35+
- delete
36+
- get
37+
- list
38+
- patch
39+
- update
40+
- watch
2941
- apiGroups:
3042
- monitoring.coreos.com
3143
resources:
@@ -59,4 +71,10 @@ rules:
5971
resources:
6072
- '*'
6173
verbs:
62-
- '*'
74+
- create
75+
- delete
76+
- get
77+
- list
78+
- patch
79+
- update
80+
- watch
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
localhost
2-

go/memcached-operator/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ This Memcached operator is a simple example operator for the [Operator SDK][oper
99
- [dep][dep_tool] version v0.5.0+.
1010
- [go][go_tool] version v1.12+.
1111
- [docker][docker_tool] version 17.03+
12-
- [kubectl][kubectl_tool] v1.11.3+
12+
- [kubectl][kubectl_tool] v1.14.1+
1313
- [operator-sdk][operator_install]
14-
- Access to a Kubernetes v1.11.3+ cluster
14+
- Access to a Kubernetes v1.14.1+ cluster
1515

1616
## Getting Started
1717

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,24 @@ spec:
1919
apiVersion:
2020
description: 'APIVersion defines the versioned schema of this representation
2121
of an object. Servers should convert recognized schemas to the latest
22-
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
22+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2323
type: string
2424
kind:
2525
description: 'Kind is a string value representing the REST resource this
2626
object represents. Servers may infer this from the endpoint the client
27-
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
27+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2828
type: string
2929
metadata:
3030
type: object
3131
spec:
3232
description: MemcachedSpec defines the desired state of Memcached
3333
properties:
3434
size:
35-
description: Size is the size of the memcached deployment
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'
3640
format: int32
3741
type: integer
3842
required:
@@ -42,7 +46,11 @@ spec:
4246
description: MemcachedStatus defines the observed state of Memcached
4347
properties:
4448
nodes:
45-
description: Nodes are the names of the memcached pods
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'
4654
items:
4755
type: string
4856
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.13.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.13.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.12.0
2+
- currentCSV: memcached-operator.v0.13.0
33
name: alpha
44
defaultChannel: alpha
55
packageName: memcached-operator

go/memcached-operator/deploy/operator.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ spec:
1616
containers:
1717
- name: memcached-operator
1818
# Replace this with the built image name
19-
image: REPLACE_IMAGE
19+
image: "REPLACE_IMAGE"
2020
command:
2121
- memcached-operator
2222
imagePullPolicy: Always

0 commit comments

Comments
 (0)