Skip to content

Commit 48da4b6

Browse files
committed
update helm
1 parent 2a96510 commit 48da4b6

File tree

3 files changed

+360
-3
lines changed

3 files changed

+360
-3
lines changed
Lines changed: 306 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,306 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
annotations:
5+
cert-manager.io/inject-ca-from: code-server-operator-system/code-server-operator-serving-cert
6+
controller-gen.kubebuilder.io/version: v0.14.0
7+
name: codeserverdeployments.cs.walnuts.dev
8+
spec:
9+
group: cs.walnuts.dev
10+
names:
11+
kind: CodeServerDeployment
12+
listKind: CodeServerDeploymentList
13+
plural: codeserverdeployments
14+
singular: codeserverdeployment
15+
scope: Namespaced
16+
versions:
17+
- name: v1alpha1
18+
schema:
19+
openAPIV3Schema:
20+
description: CodeServerDeployment is the Schema for the codeserverdeployments
21+
API
22+
properties:
23+
apiVersion:
24+
description: |-
25+
APIVersion defines the versioned schema of this representation of an object.
26+
Servers should convert recognized schemas to the latest internal value, and
27+
may reject unrecognized values.
28+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
29+
type: string
30+
kind:
31+
description: |-
32+
Kind is a string value representing the REST resource this object represents.
33+
Servers may infer this from the endpoint the client submits requests to.
34+
Cannot be updated.
35+
In CamelCase.
36+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
37+
type: string
38+
metadata:
39+
type: object
40+
spec:
41+
description: CodeServerDeploymentSpec defines the desired state of CodeServerDeployment
42+
properties:
43+
replicas:
44+
format: int32
45+
type: integer
46+
template:
47+
properties:
48+
spec:
49+
description: CodeServerSpec defines the desired state of CodeServer
50+
properties:
51+
containerPort:
52+
default: 19200
53+
description: Specifies the terminal container port for connection,
54+
defaults in 19200.
55+
format: int32
56+
type: integer
57+
domain:
58+
description: Specifies the domain for code server
59+
type: string
60+
envs:
61+
description: Specifies the envs
62+
items:
63+
description: EnvVar represents an environment variable present
64+
in a Container.
65+
properties:
66+
name:
67+
description: Name of the environment variable. Must
68+
be a C_IDENTIFIER.
69+
type: string
70+
value:
71+
description: |-
72+
Variable references $(VAR_NAME) are expanded
73+
using the previously defined environment variables in the container and
74+
any service environment variables. If a variable cannot be resolved,
75+
the reference in the input string will be unchanged. Double $$ are reduced
76+
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
77+
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
78+
Escaped references will never be expanded, regardless of whether the variable
79+
exists or not.
80+
Defaults to "".
81+
type: string
82+
valueFrom:
83+
description: Source for the environment variable's value.
84+
Cannot be used if value is not empty.
85+
properties:
86+
configMapKeyRef:
87+
description: Selects a key of a ConfigMap.
88+
properties:
89+
key:
90+
description: The key to select.
91+
type: string
92+
name:
93+
description: |-
94+
Name of the referent.
95+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
96+
TODO: Add other useful fields. apiVersion, kind, uid?
97+
type: string
98+
optional:
99+
description: Specify whether the ConfigMap or
100+
its key must be defined
101+
type: boolean
102+
required:
103+
- key
104+
type: object
105+
x-kubernetes-map-type: atomic
106+
fieldRef:
107+
description: |-
108+
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
109+
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
110+
properties:
111+
apiVersion:
112+
description: Version of the schema the FieldPath
113+
is written in terms of, defaults to "v1".
114+
type: string
115+
fieldPath:
116+
description: Path of the field to select in
117+
the specified API version.
118+
type: string
119+
required:
120+
- fieldPath
121+
type: object
122+
x-kubernetes-map-type: atomic
123+
resourceFieldRef:
124+
description: |-
125+
Selects a resource of the container: only resources limits and requests
126+
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
127+
properties:
128+
containerName:
129+
description: 'Container name: required for volumes,
130+
optional for env vars'
131+
type: string
132+
divisor:
133+
anyOf:
134+
- type: integer
135+
- type: string
136+
description: Specifies the output format of
137+
the exposed resources, defaults to "1"
138+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
139+
x-kubernetes-int-or-string: true
140+
resource:
141+
description: 'Required: resource to select'
142+
type: string
143+
required:
144+
- resource
145+
type: object
146+
x-kubernetes-map-type: atomic
147+
secretKeyRef:
148+
description: Selects a key of a secret in the pod's
149+
namespace
150+
properties:
151+
key:
152+
description: The key of the secret to select
153+
from. Must be a valid secret key.
154+
type: string
155+
name:
156+
description: |-
157+
Name of the referent.
158+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
159+
TODO: Add other useful fields. apiVersion, kind, uid?
160+
type: string
161+
optional:
162+
description: Specify whether the Secret or its
163+
key must be defined
164+
type: boolean
165+
required:
166+
- key
167+
type: object
168+
x-kubernetes-map-type: atomic
169+
type: object
170+
required:
171+
- name
172+
type: object
173+
type: array
174+
image:
175+
default: ghcr.io/coder/code-server:latest
176+
description: Specifies the image used to running code server
177+
type: string
178+
imagePullSecrets:
179+
description: ImagePullSecrets is an optional list of references
180+
to secrets in the same namespace to use for pulling any
181+
of the images used by this PodSpec.
182+
items:
183+
description: |-
184+
LocalObjectReference contains enough information to let you locate the
185+
referenced object inside the same namespace.
186+
properties:
187+
name:
188+
description: |-
189+
Name of the referent.
190+
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
191+
TODO: Add other useful fields. apiVersion, kind, uid?
192+
type: string
193+
type: object
194+
x-kubernetes-map-type: atomic
195+
type: array
196+
initPlugins:
197+
additionalProperties:
198+
additionalProperties:
199+
type: string
200+
type: object
201+
description: Specifies the init plugins that will be running
202+
to finish before code server running.
203+
type: object
204+
nodeSelector:
205+
additionalProperties:
206+
type: string
207+
description: Specifies the node selector for scheduling.
208+
type: object
209+
resources:
210+
description: Specifies the resource requirements for code
211+
server pod.
212+
properties:
213+
claims:
214+
description: |-
215+
Claims lists the names of resources, defined in spec.resourceClaims,
216+
that are used by this container.
217+
218+
219+
This is an alpha field and requires enabling the
220+
DynamicResourceAllocation feature gate.
221+
222+
223+
This field is immutable. It can only be set for containers.
224+
items:
225+
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
226+
properties:
227+
name:
228+
description: |-
229+
Name must match the name of one entry in pod.spec.resourceClaims of
230+
the Pod where this field is used. It makes that resource available
231+
inside a container.
232+
type: string
233+
required:
234+
- name
235+
type: object
236+
type: array
237+
x-kubernetes-list-map-keys:
238+
- name
239+
x-kubernetes-list-type: map
240+
limits:
241+
additionalProperties:
242+
anyOf:
243+
- type: integer
244+
- type: string
245+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
246+
x-kubernetes-int-or-string: true
247+
description: |-
248+
Limits describes the maximum amount of compute resources allowed.
249+
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
250+
type: object
251+
requests:
252+
additionalProperties:
253+
anyOf:
254+
- type: integer
255+
- type: string
256+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
257+
x-kubernetes-int-or-string: true
258+
description: |-
259+
Requests describes the minimum amount of compute resources required.
260+
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
261+
otherwise to an implementation-defined value. Requests cannot exceed Limits.
262+
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
263+
type: object
264+
type: object
265+
storageAnnotations:
266+
additionalProperties:
267+
type: string
268+
description: Specifies the additional annotations for persistent
269+
volume claim
270+
type: object
271+
storageClassName:
272+
description: Specifies the storage class name for persistent
273+
volume claim
274+
type: string
275+
storageSize:
276+
default: 1Gi
277+
description: Specifies the storage size that will be used
278+
for code server
279+
pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
280+
type: string
281+
suspendAfterSeconds:
282+
description: Specifies the period before controller suspend
283+
the resources (delete all resources except data).
284+
format: int64
285+
type: integer
286+
volumeName:
287+
description: VolumeName specifies the volume name for persistent
288+
volume claim
289+
type: string
290+
type: object
291+
required:
292+
- spec
293+
type: object
294+
required:
295+
- replicas
296+
- template
297+
type: object
298+
status:
299+
description: CodeServerDeploymentStatus defines the observed state of
300+
CodeServerDeployment
301+
type: object
302+
type: object
303+
served: true
304+
storage: true
305+
subresources:
306+
status: {}

charts/code-server-operator/templates/manager-rbac.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,58 @@ rules:
7373
- patch
7474
- update
7575
- watch
76+
- apiGroups:
77+
- cs.walnuts.dev
78+
resources:
79+
- codeserver
80+
verbs:
81+
- create
82+
- delete
83+
- get
84+
- list
85+
- patch
86+
- update
87+
- watch
88+
- apiGroups:
89+
- cs.walnuts.dev
90+
resources:
91+
- codeserver/finalizers
92+
verbs:
93+
- update
94+
- apiGroups:
95+
- cs.walnuts.dev
96+
resources:
97+
- codeserver/status
98+
verbs:
99+
- get
100+
- patch
101+
- update
102+
- apiGroups:
103+
- cs.walnuts.dev
104+
resources:
105+
- codeserverdeployments
106+
verbs:
107+
- create
108+
- delete
109+
- get
110+
- list
111+
- patch
112+
- update
113+
- watch
114+
- apiGroups:
115+
- cs.walnuts.dev
116+
resources:
117+
- codeserverdeployments/finalizers
118+
verbs:
119+
- update
120+
- apiGroups:
121+
- cs.walnuts.dev
122+
resources:
123+
- codeserverdeployments/status
124+
verbs:
125+
- get
126+
- patch
127+
- update
76128
- apiGroups:
77129
- cs.walnuts.dev
78130
resources:

charts/code-server-operator/values.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ controllerManager:
3131
drop:
3232
- ALL
3333
image:
34-
repository: ghcr.io/walnuts1018/code-server-operator
35-
tag: version-placeholder
34+
repository: controller
35+
tag: latest
3636
resources:
3737
limits:
3838
cpu: 500m
@@ -57,4 +57,3 @@ webhookService:
5757
protocol: TCP
5858
targetPort: 9443
5959
type: ClusterIP
60-

0 commit comments

Comments
 (0)