1+ apiVersion : apiextensions.k8s.io/v1
2+ kind : CustomResourceDefinition
3+ metadata :
4+ name : reaperdaemonjobs.reaper.io
5+ spec :
6+ group : reaper.io
7+ names :
8+ kind : ReaperDaemonJob
9+ plural : reaperdaemonjobs
10+ shortNames :
11+ - rdjob
12+ singular : reaperdaemonjob
13+ scope : Namespaced
14+ versions :
15+ - additionalPrinterColumns :
16+ - jsonPath : .status.phase
17+ name : Phase
18+ type : string
19+ - jsonPath : .status.readyNodes
20+ name : Ready
21+ type : string
22+ - jsonPath : .status.totalNodes
23+ name : Total
24+ type : string
25+ - jsonPath : .metadata.creationTimestamp
26+ name : Age
27+ type : date
28+ name : v1alpha1
29+ schema :
30+ openAPIV3Schema :
31+ description : Auto-generated derived type for ReaperDaemonJobSpec via `CustomResource`
32+ properties :
33+ spec :
34+ description : " ReaperDaemonJob runs a command to completion on every matching\
35+ \ node and re-triggers on node events (join, reboot). Designed for node\
36+ \ configuration tasks like Ansible playbooks that compose via shared\
37+ \ overlays.\n\n Controller layering: ReaperDaemonJob \u2192 ReaperPod\
38+ \ \u2192 Pod."
39+ properties :
40+ after :
41+ description : ' Dependency ordering: names of other ReaperDaemonJobs
42+ in the same namespace that must complete on a node before this job
43+ runs there.'
44+ items :
45+ type : string
46+ type : array
47+ args :
48+ description : Arguments to the command.
49+ items :
50+ type : string
51+ type : array
52+ command :
53+ description : Command to execute on each node.
54+ items :
55+ type : string
56+ type : array
57+ concurrencyPolicy :
58+ description : ' What to do if the job is already running on a node when
59+ a new trigger fires. "Skip" (default): skip the new trigger. "Replace":
60+ terminate and re-run.'
61+ type : string
62+ dnsMode :
63+ description : ' DNS resolution mode: "host" (default) or "kubernetes".'
64+ nullable : true
65+ type : string
66+ env :
67+ description : Environment variables.
68+ items :
69+ description : Simplified environment variable (name + literal value
70+ or secret/configmap ref).
71+ properties :
72+ configMapKeyRef :
73+ description : Reference to a ConfigMap key.
74+ nullable : true
75+ properties :
76+ key :
77+ description : Key within the Secret or ConfigMap.
78+ type : string
79+ name :
80+ description : Name of the Secret or ConfigMap.
81+ type : string
82+ required :
83+ - key
84+ - name
85+ type : object
86+ name :
87+ description : Environment variable name.
88+ type : string
89+ secretKeyRef :
90+ description : Reference to a Secret key.
91+ nullable : true
92+ properties :
93+ key :
94+ description : Key within the Secret or ConfigMap.
95+ type : string
96+ name :
97+ description : Name of the Secret or ConfigMap.
98+ type : string
99+ required :
100+ - key
101+ - name
102+ type : object
103+ value :
104+ description : Literal value.
105+ nullable : true
106+ type : string
107+ required :
108+ - name
109+ type : object
110+ type : array
111+ nodeSelector :
112+ additionalProperties :
113+ type : string
114+ description : Select nodes by labels. If empty, targets all nodes.
115+ nullable : true
116+ type : object
117+ overlayName :
118+ description : Named overlay group for shared overlay filesystem. Multiple
119+ ReaperDaemonJobs with the same overlayName share an overlay, enabling
120+ composable vServices.
121+ nullable : true
122+ type : string
123+ retryLimit :
124+ default : 0
125+ description : Maximum number of retries per node on failure. 0 means
126+ no retries.
127+ format : int32
128+ type : integer
129+ runAsGroup :
130+ description : Run the process as this GID.
131+ format : int64
132+ nullable : true
133+ type : integer
134+ runAsUser :
135+ description : Run the process as this UID.
136+ format : int64
137+ nullable : true
138+ type : integer
139+ tolerations :
140+ description : Tolerations passed through to the underlying Pods.
141+ items :
142+ description : Simplified toleration.
143+ properties :
144+ effect :
145+ description : ' Effect: "NoSchedule", "PreferNoSchedule", or "NoExecute".'
146+ nullable : true
147+ type : string
148+ key :
149+ description : Toleration key.
150+ nullable : true
151+ type : string
152+ operator :
153+ description : ' Operator: "Exists" or "Equal".'
154+ nullable : true
155+ type : string
156+ value :
157+ description : Value to match (when operator is "Equal").
158+ nullable : true
159+ type : string
160+ type : object
161+ type : array
162+ triggerOn :
163+ default : NodeReady
164+ description : ' Events that trigger (re-)execution on nodes. Valid values:
165+ "NodeReady" (default), "Manual". NodeReady: run when a node becomes
166+ Ready (join or reboot). Manual: only run when the spec changes or
167+ the resource is created.'
168+ type : string
169+ volumes :
170+ description : Volumes with inline mount paths.
171+ items :
172+ description : A simplified volume definition with inline mountPath.
173+ properties :
174+ configMap :
175+ description : ConfigMap name to mount.
176+ nullable : true
177+ type : string
178+ emptyDir :
179+ default : false
180+ description : Use an emptyDir volume.
181+ type : boolean
182+ hostPath :
183+ description : Host path to mount.
184+ nullable : true
185+ type : string
186+ mountPath :
187+ description : Path inside the overlay where this volume is mounted.
188+ type : string
189+ name :
190+ description : Volume name (used internally).
191+ type : string
192+ readOnly :
193+ default : false
194+ description : Mount as read-only.
195+ type : boolean
196+ secret :
197+ description : Secret name to mount.
198+ nullable : true
199+ type : string
200+ required :
201+ - mountPath
202+ - name
203+ type : object
204+ type : array
205+ workingDir :
206+ description : Working directory for the command.
207+ nullable : true
208+ type : string
209+ required :
210+ - command
211+ type : object
0 commit comments