File size: 1,952 Bytes
287a0bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
kind: Namespace
apiVersion: v1
metadata:
  name: chroma
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: memberlist-reader
rules:
- apiGroups:
  - chroma.cluster
  resources:
  - memberlists
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: memberlist-reader
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: memberlist-reader
subjects:
- kind: ServiceAccount
  name: default
  namespace: chroma
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: chroma
  name: pod-list-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pod-list-role-binding
  namespace: chroma
subjects:
- kind: ServiceAccount
  name: default
  namespace: chroma
roleRef:
  kind: Role
  name: pod-list-role
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: memberlists.chroma.cluster
spec:
  group: chroma.cluster
  versions:
    - name: v1
      served: true
      storage: true
      schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                members:
                  type: array
                  items:
                    type: object
                    properties:
                      url: # Rename to ip
                        type: string
                        pattern: '^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'
  scope: Namespaced
  names:
    plural: memberlists
    singular: memberlist
    kind: MemberList
    shortNames:
      - ml
---
apiVersion: chroma.cluster/v1
kind: MemberList
metadata:
  name: worker-memberlist
  namespace: chroma
spec:
  members: