external-secrets.io_workflows.yaml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.15.0
  6. name: workflows.external-secrets.io
  7. spec:
  8. group: external-secrets.io
  9. names:
  10. categories:
  11. - workflows
  12. kind: Workflow
  13. listKind: WorkflowList
  14. plural: workflows
  15. singular: workflow
  16. scope: Namespaced
  17. versions:
  18. - additionalPrinterColumns:
  19. - jsonPath: .metadata.creationTimestamp
  20. name: AGE
  21. type: date
  22. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  23. name: Status
  24. type: string
  25. name: v1alpha1
  26. schema:
  27. openAPIV3Schema:
  28. properties:
  29. apiVersion:
  30. description: |-
  31. APIVersion defines the versioned schema of this representation of an object.
  32. Servers should convert recognized schemas to the latest internal value, and
  33. may reject unrecognized values.
  34. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  35. type: string
  36. kind:
  37. description: |-
  38. Kind is a string value representing the REST resource this object represents.
  39. Servers may infer this from the endpoint the client submits requests to.
  40. Cannot be updated.
  41. In CamelCase.
  42. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  43. type: string
  44. metadata:
  45. type: object
  46. spec:
  47. properties:
  48. refreshInterval:
  49. default: 1h
  50. description: |-
  51. RefreshInterval is the amount of time before the workflow is being reconciled.
  52. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  53. May be set to zero to fetch and create it once. Defaults to 1h.
  54. type: string
  55. workflows:
  56. description: Workflows are a list of workflows that are being executed
  57. in order.
  58. items:
  59. properties:
  60. name:
  61. description: |-
  62. Name of the workflow.
  63. It will be used as the index in the workflows data map.
  64. maxLength: 63
  65. minLength: 1
  66. type: string
  67. steps:
  68. description: Steps of the workflow, they are executed in order.
  69. items:
  70. properties:
  71. manifests:
  72. description: |-
  73. Manifests allows you to apply manifests to the cluster. The manifests are applied in order.
  74. The manifests can be templated and have access to the workflow data map.
  75. items:
  76. type: string
  77. type: array
  78. name:
  79. description: Name of the workflow step.
  80. type: string
  81. pull:
  82. description: |-
  83. Pull allows you to fetch secrets from a SecretStore.
  84. The secret data will be stored in the workflow data map.
  85. properties:
  86. data:
  87. description: Data allows you to fetch specific data
  88. from the secret.
  89. items:
  90. description: ExternalSecretData defines the connection
  91. between the Kubernetes Secret key (spec.data.<key>)
  92. and the Provider data.
  93. properties:
  94. remoteRef:
  95. description: |-
  96. RemoteRef points to the remote secret and defines
  97. which secret (version/property/..) to fetch.
  98. properties:
  99. conversionStrategy:
  100. default: Default
  101. description: Used to define a conversion
  102. Strategy
  103. enum:
  104. - Default
  105. - Unicode
  106. type: string
  107. decodingStrategy:
  108. default: None
  109. description: Used to define a decoding Strategy
  110. enum:
  111. - Auto
  112. - Base64
  113. - Base64URL
  114. - None
  115. type: string
  116. key:
  117. description: Key is the key used in the
  118. Provider, mandatory
  119. type: string
  120. metadataPolicy:
  121. default: None
  122. description: Policy for fetching tags/labels
  123. from provider secrets, possible options
  124. are Fetch, None. Defaults to None
  125. enum:
  126. - None
  127. - Fetch
  128. type: string
  129. property:
  130. description: Used to select a specific property
  131. of the Provider value (if a map), if supported
  132. type: string
  133. version:
  134. description: Used to select a specific version
  135. of the Provider value, if supported
  136. type: string
  137. required:
  138. - key
  139. type: object
  140. secretKey:
  141. description: |-
  142. SecretKey defines the key in which the controller stores
  143. the value. This is the key in the Kind=Secret
  144. type: string
  145. sourceRef:
  146. description: |-
  147. SourceRef allows you to override the source
  148. from which the value will pulled from.
  149. maxProperties: 1
  150. properties:
  151. generatorRef:
  152. description: |-
  153. GeneratorRef points to a generator custom resource.
  154. Deprecated: The generatorRef is not implemented in .data[].
  155. this will be removed with v1.
  156. properties:
  157. apiVersion:
  158. default: generators.external-secrets.io/v1alpha1
  159. description: Specify the apiVersion
  160. of the generator resource
  161. type: string
  162. kind:
  163. description: Specify the Kind of the
  164. resource, e.g. Password, ACRAccessToken
  165. etc.
  166. type: string
  167. name:
  168. description: Specify the name of the
  169. generator resource
  170. type: string
  171. required:
  172. - kind
  173. - name
  174. type: object
  175. storeRef:
  176. description: SecretStoreRef defines which
  177. SecretStore to fetch the ExternalSecret
  178. data.
  179. properties:
  180. kind:
  181. description: |-
  182. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  183. Defaults to `SecretStore`
  184. type: string
  185. name:
  186. description: Name of the SecretStore
  187. resource
  188. type: string
  189. required:
  190. - name
  191. type: object
  192. type: object
  193. required:
  194. - remoteRef
  195. - secretKey
  196. type: object
  197. type: array
  198. dataFrom:
  199. description: DataFrom allows you to find multiple
  200. secrets in a store or extract structured data from
  201. a secret.
  202. items:
  203. properties:
  204. extract:
  205. description: |-
  206. Used to extract multiple key/value pairs from one secret
  207. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  208. properties:
  209. conversionStrategy:
  210. default: Default
  211. description: Used to define a conversion
  212. Strategy
  213. enum:
  214. - Default
  215. - Unicode
  216. type: string
  217. decodingStrategy:
  218. default: None
  219. description: Used to define a decoding Strategy
  220. enum:
  221. - Auto
  222. - Base64
  223. - Base64URL
  224. - None
  225. type: string
  226. key:
  227. description: Key is the key used in the
  228. Provider, mandatory
  229. type: string
  230. metadataPolicy:
  231. default: None
  232. description: Policy for fetching tags/labels
  233. from provider secrets, possible options
  234. are Fetch, None. Defaults to None
  235. enum:
  236. - None
  237. - Fetch
  238. type: string
  239. property:
  240. description: Used to select a specific property
  241. of the Provider value (if a map), if supported
  242. type: string
  243. version:
  244. description: Used to select a specific version
  245. of the Provider value, if supported
  246. type: string
  247. required:
  248. - key
  249. type: object
  250. find:
  251. description: |-
  252. Used to find secrets based on tags or regular expressions
  253. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  254. properties:
  255. conversionStrategy:
  256. default: Default
  257. description: Used to define a conversion
  258. Strategy
  259. enum:
  260. - Default
  261. - Unicode
  262. type: string
  263. decodingStrategy:
  264. default: None
  265. description: Used to define a decoding Strategy
  266. enum:
  267. - Auto
  268. - Base64
  269. - Base64URL
  270. - None
  271. type: string
  272. name:
  273. description: Finds secrets based on the
  274. name.
  275. properties:
  276. regexp:
  277. description: Finds secrets base
  278. type: string
  279. type: object
  280. path:
  281. description: A root path to start the find
  282. operations.
  283. type: string
  284. tags:
  285. additionalProperties:
  286. type: string
  287. description: Find secrets based on tags.
  288. type: object
  289. type: object
  290. rewrite:
  291. description: |-
  292. Used to rewrite secret Keys after getting them from the secret Provider
  293. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  294. items:
  295. properties:
  296. regexp:
  297. description: |-
  298. Used to rewrite with regular expressions.
  299. The resulting key will be the output of a regexp.ReplaceAll operation.
  300. properties:
  301. source:
  302. description: Used to define the regular
  303. expression of a re.Compiler.
  304. type: string
  305. target:
  306. description: Used to define the target
  307. pattern of a ReplaceAll operation.
  308. type: string
  309. required:
  310. - source
  311. - target
  312. type: object
  313. transform:
  314. description: |-
  315. Used to apply string transformation on the secrets.
  316. The resulting key will be the output of the template applied by the operation.
  317. properties:
  318. template:
  319. description: |-
  320. Used to define the template to apply on the secret name.
  321. `.value ` will specify the secret name in the template.
  322. type: string
  323. required:
  324. - template
  325. type: object
  326. type: object
  327. type: array
  328. sourceRef:
  329. description: |-
  330. SourceRef points to a store or generator
  331. which contains secret values ready to use.
  332. Use this in combination with Extract or Find pull values out of
  333. a specific SecretStore.
  334. When sourceRef points to a generator Extract or Find is not supported.
  335. The generator returns a static map of values
  336. maxProperties: 1
  337. properties:
  338. generatorRef:
  339. description: GeneratorRef points to a generator
  340. custom resource.
  341. properties:
  342. apiVersion:
  343. default: generators.external-secrets.io/v1alpha1
  344. description: Specify the apiVersion
  345. of the generator resource
  346. type: string
  347. kind:
  348. description: Specify the Kind of the
  349. resource, e.g. Password, ACRAccessToken
  350. etc.
  351. type: string
  352. name:
  353. description: Specify the name of the
  354. generator resource
  355. type: string
  356. required:
  357. - kind
  358. - name
  359. type: object
  360. storeRef:
  361. description: SecretStoreRef defines which
  362. SecretStore to fetch the ExternalSecret
  363. data.
  364. properties:
  365. kind:
  366. description: |-
  367. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  368. Defaults to `SecretStore`
  369. type: string
  370. name:
  371. description: Name of the SecretStore
  372. resource
  373. type: string
  374. required:
  375. - name
  376. type: object
  377. type: object
  378. type: object
  379. type: array
  380. source:
  381. description: Source allows you to fetch secrets from
  382. a SecretStore.
  383. maxProperties: 1
  384. properties:
  385. generatorRef:
  386. description: |-
  387. GeneratorRef points to a generator custom resource.
  388. Deprecated: The generatorRef is not implemented in .data[].
  389. this will be removed with v1.
  390. properties:
  391. apiVersion:
  392. default: generators.external-secrets.io/v1alpha1
  393. description: Specify the apiVersion of the
  394. generator resource
  395. type: string
  396. kind:
  397. description: Specify the Kind of the resource,
  398. e.g. Password, ACRAccessToken etc.
  399. type: string
  400. name:
  401. description: Specify the name of the generator
  402. resource
  403. type: string
  404. required:
  405. - kind
  406. - name
  407. type: object
  408. storeRef:
  409. description: SecretStoreRef defines which SecretStore
  410. to fetch the ExternalSecret data.
  411. properties:
  412. kind:
  413. description: |-
  414. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  415. Defaults to `SecretStore`
  416. type: string
  417. name:
  418. description: Name of the SecretStore resource
  419. type: string
  420. required:
  421. - name
  422. type: object
  423. type: object
  424. required:
  425. - source
  426. type: object
  427. push:
  428. description: |-
  429. Push allows you to push secrets to a SecretStore.
  430. The secret data will be read from the workflow data map.
  431. properties:
  432. data:
  433. items:
  434. properties:
  435. conversionStrategy:
  436. default: None
  437. description: Used to define a conversion Strategy
  438. for the secret keys
  439. enum:
  440. - None
  441. - ReverseUnicode
  442. type: string
  443. match:
  444. description: Match a given Secret Key to be
  445. pushed to the provider.
  446. properties:
  447. remoteRef:
  448. description: Remote Refs to push to providers.
  449. properties:
  450. property:
  451. description: Name of the property in
  452. the resulting secret
  453. type: string
  454. remoteKey:
  455. description: Name of the resulting provider
  456. secret.
  457. type: string
  458. required:
  459. - remoteKey
  460. type: object
  461. secretKey:
  462. description: Secret Key to be pushed
  463. type: string
  464. required:
  465. - remoteRef
  466. type: object
  467. metadata:
  468. description: |-
  469. Metadata is metadata attached to the secret.
  470. The structure of metadata is provider specific, please look it up in the provider documentation.
  471. x-kubernetes-preserve-unknown-fields: true
  472. required:
  473. - match
  474. type: object
  475. type: array
  476. destination:
  477. description: |-
  478. DestinationRef allows you to override the SecretStore destination
  479. where the secret will be pushed to.
  480. maxProperties: 1
  481. properties:
  482. storeRef:
  483. description: SecretStoreRef defines which SecretStore
  484. to fetch the ExternalSecret data.
  485. properties:
  486. kind:
  487. description: |-
  488. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  489. Defaults to `SecretStore`
  490. type: string
  491. name:
  492. description: Name of the SecretStore resource
  493. type: string
  494. required:
  495. - name
  496. type: object
  497. type: object
  498. type: object
  499. template:
  500. description: |-
  501. Template allows you to compose data from the workflow.
  502. The result will be stored in the workflow data map.
  503. properties:
  504. data:
  505. additionalProperties:
  506. type: string
  507. description: |-
  508. Data allows you to compose data from the workflow. It is stored in the workflow data map.
  509. Previous data can be accessed from the workflow data map.
  510. type: object
  511. metadata:
  512. description: Metadata allows you to set metadata on
  513. the workflow data map.
  514. properties:
  515. annotations:
  516. additionalProperties:
  517. type: string
  518. type: object
  519. labels:
  520. additionalProperties:
  521. type: string
  522. type: object
  523. type: object
  524. type: object
  525. required:
  526. - name
  527. type: object
  528. type: array
  529. required:
  530. - name
  531. type: object
  532. type: array
  533. type: object
  534. status:
  535. properties:
  536. conditions:
  537. items:
  538. properties:
  539. lastTransitionTime:
  540. format: date-time
  541. type: string
  542. message:
  543. type: string
  544. reason:
  545. type: string
  546. status:
  547. type: string
  548. type:
  549. type: string
  550. required:
  551. - status
  552. - type
  553. type: object
  554. type: array
  555. type: object
  556. type: object
  557. served: true
  558. storage: true
  559. subresources:
  560. status: {}