external-secrets.io_clusterexternalsecrets.yaml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.16.5
  6. labels:
  7. external-secrets.io/component: controller
  8. name: clusterexternalsecrets.external-secrets.io
  9. spec:
  10. group: external-secrets.io
  11. names:
  12. categories:
  13. - external-secrets
  14. kind: ClusterExternalSecret
  15. listKind: ClusterExternalSecretList
  16. plural: clusterexternalsecrets
  17. shortNames:
  18. - ces
  19. singular: clusterexternalsecret
  20. scope: Cluster
  21. versions:
  22. - additionalPrinterColumns:
  23. - jsonPath: .spec.externalSecretSpec.secretStoreRef.name
  24. name: Store
  25. type: string
  26. - jsonPath: .spec.refreshTime
  27. name: Refresh Interval
  28. type: string
  29. - jsonPath: .status.conditions[?(@.type=="Ready")].status
  30. name: Ready
  31. type: string
  32. name: v1beta1
  33. schema:
  34. openAPIV3Schema:
  35. description: ClusterExternalSecret is the Schema for the clusterexternalsecrets
  36. API.
  37. properties:
  38. apiVersion:
  39. description: |-
  40. APIVersion defines the versioned schema of this representation of an object.
  41. Servers should convert recognized schemas to the latest internal value, and
  42. may reject unrecognized values.
  43. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  44. type: string
  45. kind:
  46. description: |-
  47. Kind is a string value representing the REST resource this object represents.
  48. Servers may infer this from the endpoint the client submits requests to.
  49. Cannot be updated.
  50. In CamelCase.
  51. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  52. type: string
  53. metadata:
  54. type: object
  55. spec:
  56. description: ClusterExternalSecretSpec defines the desired state of ClusterExternalSecret.
  57. properties:
  58. externalSecretMetadata:
  59. description: The metadata of the external secrets to be created
  60. properties:
  61. annotations:
  62. additionalProperties:
  63. type: string
  64. type: object
  65. labels:
  66. additionalProperties:
  67. type: string
  68. type: object
  69. type: object
  70. externalSecretName:
  71. description: The name of the external secrets to be created defaults
  72. to the name of the ClusterExternalSecret
  73. type: string
  74. externalSecretSpec:
  75. description: The spec for the ExternalSecrets to be created
  76. properties:
  77. data:
  78. description: Data defines the connection between the Kubernetes
  79. Secret keys and the Provider data
  80. items:
  81. description: ExternalSecretData defines the connection between
  82. the Kubernetes Secret key (spec.data.<key>) and the Provider
  83. data.
  84. properties:
  85. remoteRef:
  86. description: |-
  87. RemoteRef points to the remote secret and defines
  88. which secret (version/property/..) to fetch.
  89. properties:
  90. conversionStrategy:
  91. default: Default
  92. description: Used to define a conversion Strategy
  93. enum:
  94. - Default
  95. - Unicode
  96. type: string
  97. decodingStrategy:
  98. default: None
  99. description: Used to define a decoding Strategy
  100. enum:
  101. - Auto
  102. - Base64
  103. - Base64URL
  104. - None
  105. type: string
  106. key:
  107. description: Key is the key used in the Provider, mandatory
  108. type: string
  109. metadataPolicy:
  110. default: None
  111. description: Policy for fetching tags/labels from provider
  112. secrets, possible options are Fetch, None. Defaults
  113. to None
  114. enum:
  115. - None
  116. - Fetch
  117. type: string
  118. property:
  119. description: Used to select a specific property of the
  120. Provider value (if a map), if supported
  121. type: string
  122. version:
  123. description: Used to select a specific version of the
  124. Provider value, if supported
  125. type: string
  126. required:
  127. - key
  128. type: object
  129. secretKey:
  130. description: |-
  131. SecretKey defines the key in which the controller stores
  132. the value. This is the key in the Kind=Secret
  133. type: string
  134. sourceRef:
  135. description: |-
  136. SourceRef allows you to override the source
  137. from which the value will pulled from.
  138. maxProperties: 1
  139. properties:
  140. generatorRef:
  141. description: |-
  142. GeneratorRef points to a generator custom resource.
  143. Deprecated: The generatorRef is not implemented in .data[].
  144. this will be removed with v1.
  145. properties:
  146. apiVersion:
  147. default: generators.external-secrets.io/v1alpha1
  148. description: Specify the apiVersion of the generator
  149. resource
  150. type: string
  151. kind:
  152. description: Specify the Kind of the resource, e.g.
  153. Password, ACRAccessToken, ClusterGenerator etc.
  154. type: string
  155. name:
  156. description: Specify the name of the generator resource
  157. type: string
  158. required:
  159. - kind
  160. - name
  161. type: object
  162. storeRef:
  163. description: SecretStoreRef defines which SecretStore
  164. to fetch the ExternalSecret data.
  165. properties:
  166. kind:
  167. description: |-
  168. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  169. Defaults to `SecretStore`
  170. type: string
  171. name:
  172. description: Name of the SecretStore resource
  173. type: string
  174. required:
  175. - name
  176. type: object
  177. type: object
  178. required:
  179. - remoteRef
  180. - secretKey
  181. type: object
  182. type: array
  183. dataFrom:
  184. description: |-
  185. DataFrom is used to fetch all properties from a specific Provider data
  186. If multiple entries are specified, the Secret keys are merged in the specified order
  187. items:
  188. properties:
  189. extract:
  190. description: |-
  191. Used to extract multiple key/value pairs from one secret
  192. Note: Extract does not support sourceRef.Generator or sourceRef.GeneratorRef.
  193. properties:
  194. conversionStrategy:
  195. default: Default
  196. description: Used to define a conversion Strategy
  197. enum:
  198. - Default
  199. - Unicode
  200. type: string
  201. decodingStrategy:
  202. default: None
  203. description: Used to define a decoding Strategy
  204. enum:
  205. - Auto
  206. - Base64
  207. - Base64URL
  208. - None
  209. type: string
  210. key:
  211. description: Key is the key used in the Provider, mandatory
  212. type: string
  213. metadataPolicy:
  214. default: None
  215. description: Policy for fetching tags/labels from provider
  216. secrets, possible options are Fetch, None. Defaults
  217. to None
  218. enum:
  219. - None
  220. - Fetch
  221. type: string
  222. property:
  223. description: Used to select a specific property of the
  224. Provider value (if a map), if supported
  225. type: string
  226. version:
  227. description: Used to select a specific version of the
  228. Provider value, if supported
  229. type: string
  230. required:
  231. - key
  232. type: object
  233. find:
  234. description: |-
  235. Used to find secrets based on tags or regular expressions
  236. Note: Find does not support sourceRef.Generator or sourceRef.GeneratorRef.
  237. properties:
  238. conversionStrategy:
  239. default: Default
  240. description: Used to define a conversion Strategy
  241. enum:
  242. - Default
  243. - Unicode
  244. type: string
  245. decodingStrategy:
  246. default: None
  247. description: Used to define a decoding Strategy
  248. enum:
  249. - Auto
  250. - Base64
  251. - Base64URL
  252. - None
  253. type: string
  254. name:
  255. description: Finds secrets based on the name.
  256. properties:
  257. regexp:
  258. description: Finds secrets base
  259. type: string
  260. type: object
  261. path:
  262. description: A root path to start the find operations.
  263. type: string
  264. tags:
  265. additionalProperties:
  266. type: string
  267. description: Find secrets based on tags.
  268. type: object
  269. type: object
  270. rewrite:
  271. description: |-
  272. Used to rewrite secret Keys after getting them from the secret Provider
  273. Multiple Rewrite operations can be provided. They are applied in a layered order (first to last)
  274. items:
  275. properties:
  276. regexp:
  277. description: |-
  278. Used to rewrite with regular expressions.
  279. The resulting key will be the output of a regexp.ReplaceAll operation.
  280. properties:
  281. source:
  282. description: Used to define the regular expression
  283. of a re.Compiler.
  284. type: string
  285. target:
  286. description: Used to define the target pattern
  287. of a ReplaceAll operation.
  288. type: string
  289. required:
  290. - source
  291. - target
  292. type: object
  293. transform:
  294. description: |-
  295. Used to apply string transformation on the secrets.
  296. The resulting key will be the output of the template applied by the operation.
  297. properties:
  298. template:
  299. description: |-
  300. Used to define the template to apply on the secret name.
  301. `.value ` will specify the secret name in the template.
  302. type: string
  303. required:
  304. - template
  305. type: object
  306. type: object
  307. type: array
  308. sourceRef:
  309. description: |-
  310. SourceRef points to a store or generator
  311. which contains secret values ready to use.
  312. Use this in combination with Extract or Find pull values out of
  313. a specific SecretStore.
  314. When sourceRef points to a generator Extract or Find is not supported.
  315. The generator returns a static map of values
  316. maxProperties: 1
  317. properties:
  318. generatorRef:
  319. description: GeneratorRef points to a generator custom
  320. resource.
  321. properties:
  322. apiVersion:
  323. default: generators.external-secrets.io/v1alpha1
  324. description: Specify the apiVersion of the generator
  325. resource
  326. type: string
  327. kind:
  328. description: Specify the Kind of the resource, e.g.
  329. Password, ACRAccessToken, ClusterGenerator etc.
  330. type: string
  331. name:
  332. description: Specify the name of the generator resource
  333. type: string
  334. required:
  335. - kind
  336. - name
  337. type: object
  338. storeRef:
  339. description: SecretStoreRef defines which SecretStore
  340. to fetch the ExternalSecret data.
  341. properties:
  342. kind:
  343. description: |-
  344. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  345. Defaults to `SecretStore`
  346. type: string
  347. name:
  348. description: Name of the SecretStore resource
  349. type: string
  350. required:
  351. - name
  352. type: object
  353. type: object
  354. type: object
  355. type: array
  356. refreshInterval:
  357. default: 1h
  358. description: |-
  359. RefreshInterval is the amount of time before the values are read again from the SecretStore provider,
  360. specified as Golang Duration strings.
  361. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
  362. Example values: "1h", "2h30m", "5d", "10s"
  363. May be set to zero to fetch and create it once. Defaults to 1h.
  364. type: string
  365. secretStoreRef:
  366. description: SecretStoreRef defines which SecretStore to fetch
  367. the ExternalSecret data.
  368. properties:
  369. kind:
  370. description: |-
  371. Kind of the SecretStore resource (SecretStore or ClusterSecretStore)
  372. Defaults to `SecretStore`
  373. type: string
  374. name:
  375. description: Name of the SecretStore resource
  376. type: string
  377. required:
  378. - name
  379. type: object
  380. target:
  381. default:
  382. creationPolicy: Owner
  383. deletionPolicy: Retain
  384. description: |-
  385. ExternalSecretTarget defines the Kubernetes Secret to be created
  386. There can be only one target per ExternalSecret.
  387. properties:
  388. creationPolicy:
  389. default: Owner
  390. description: |-
  391. CreationPolicy defines rules on how to create the resulting Secret
  392. Defaults to 'Owner'
  393. enum:
  394. - Owner
  395. - Orphan
  396. - Merge
  397. - None
  398. type: string
  399. deletionPolicy:
  400. default: Retain
  401. description: |-
  402. DeletionPolicy defines rules on how to delete the resulting Secret
  403. Defaults to 'Retain'
  404. enum:
  405. - Delete
  406. - Merge
  407. - Retain
  408. type: string
  409. immutable:
  410. description: Immutable defines if the final secret will be
  411. immutable
  412. type: boolean
  413. name:
  414. description: |-
  415. Name defines the name of the Secret resource to be managed
  416. This field is immutable
  417. Defaults to the .metadata.name of the ExternalSecret resource
  418. type: string
  419. template:
  420. description: Template defines a blueprint for the created
  421. Secret resource.
  422. properties:
  423. data:
  424. additionalProperties:
  425. type: string
  426. type: object
  427. engineVersion:
  428. default: v2
  429. description: |-
  430. EngineVersion specifies the template engine version
  431. that should be used to compile/execute the
  432. template specified in .data and .templateFrom[].
  433. enum:
  434. - v1
  435. - v2
  436. type: string
  437. mergePolicy:
  438. default: Replace
  439. enum:
  440. - Replace
  441. - Merge
  442. type: string
  443. metadata:
  444. description: ExternalSecretTemplateMetadata defines metadata
  445. fields for the Secret blueprint.
  446. properties:
  447. annotations:
  448. additionalProperties:
  449. type: string
  450. type: object
  451. labels:
  452. additionalProperties:
  453. type: string
  454. type: object
  455. type: object
  456. templateFrom:
  457. items:
  458. properties:
  459. configMap:
  460. properties:
  461. items:
  462. items:
  463. properties:
  464. key:
  465. type: string
  466. templateAs:
  467. default: Values
  468. enum:
  469. - Values
  470. - KeysAndValues
  471. type: string
  472. required:
  473. - key
  474. type: object
  475. type: array
  476. name:
  477. type: string
  478. required:
  479. - items
  480. - name
  481. type: object
  482. literal:
  483. type: string
  484. secret:
  485. properties:
  486. items:
  487. items:
  488. properties:
  489. key:
  490. type: string
  491. templateAs:
  492. default: Values
  493. enum:
  494. - Values
  495. - KeysAndValues
  496. type: string
  497. required:
  498. - key
  499. type: object
  500. type: array
  501. name:
  502. type: string
  503. required:
  504. - items
  505. - name
  506. type: object
  507. target:
  508. default: Data
  509. enum:
  510. - Data
  511. - Annotations
  512. - Labels
  513. type: string
  514. type: object
  515. type: array
  516. type:
  517. type: string
  518. type: object
  519. type: object
  520. type: object
  521. namespaceSelector:
  522. description: |-
  523. The labels to select by to find the Namespaces to create the ExternalSecrets in.
  524. Deprecated: Use NamespaceSelectors instead.
  525. properties:
  526. matchExpressions:
  527. description: matchExpressions is a list of label selector requirements.
  528. The requirements are ANDed.
  529. items:
  530. description: |-
  531. A label selector requirement is a selector that contains values, a key, and an operator that
  532. relates the key and values.
  533. properties:
  534. key:
  535. description: key is the label key that the selector applies
  536. to.
  537. type: string
  538. operator:
  539. description: |-
  540. operator represents a key's relationship to a set of values.
  541. Valid operators are In, NotIn, Exists and DoesNotExist.
  542. type: string
  543. values:
  544. description: |-
  545. values is an array of string values. If the operator is In or NotIn,
  546. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  547. the values array must be empty. This array is replaced during a strategic
  548. merge patch.
  549. items:
  550. type: string
  551. type: array
  552. x-kubernetes-list-type: atomic
  553. required:
  554. - key
  555. - operator
  556. type: object
  557. type: array
  558. x-kubernetes-list-type: atomic
  559. matchLabels:
  560. additionalProperties:
  561. type: string
  562. description: |-
  563. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  564. map is equivalent to an element of matchExpressions, whose key field is "key", the
  565. operator is "In", and the values array contains only "value". The requirements are ANDed.
  566. type: object
  567. type: object
  568. x-kubernetes-map-type: atomic
  569. namespaceSelectors:
  570. description: A list of labels to select by to find the Namespaces
  571. to create the ExternalSecrets in. The selectors are ORed.
  572. items:
  573. description: |-
  574. A label selector is a label query over a set of resources. The result of matchLabels and
  575. matchExpressions are ANDed. An empty label selector matches all objects. A null
  576. label selector matches no objects.
  577. properties:
  578. matchExpressions:
  579. description: matchExpressions is a list of label selector requirements.
  580. The requirements are ANDed.
  581. items:
  582. description: |-
  583. A label selector requirement is a selector that contains values, a key, and an operator that
  584. relates the key and values.
  585. properties:
  586. key:
  587. description: key is the label key that the selector applies
  588. to.
  589. type: string
  590. operator:
  591. description: |-
  592. operator represents a key's relationship to a set of values.
  593. Valid operators are In, NotIn, Exists and DoesNotExist.
  594. type: string
  595. values:
  596. description: |-
  597. values is an array of string values. If the operator is In or NotIn,
  598. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  599. the values array must be empty. This array is replaced during a strategic
  600. merge patch.
  601. items:
  602. type: string
  603. type: array
  604. x-kubernetes-list-type: atomic
  605. required:
  606. - key
  607. - operator
  608. type: object
  609. type: array
  610. x-kubernetes-list-type: atomic
  611. matchLabels:
  612. additionalProperties:
  613. type: string
  614. description: |-
  615. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  616. map is equivalent to an element of matchExpressions, whose key field is "key", the
  617. operator is "In", and the values array contains only "value". The requirements are ANDed.
  618. type: object
  619. type: object
  620. x-kubernetes-map-type: atomic
  621. type: array
  622. namespaces:
  623. description: Choose namespaces by name. This field is ORed with anything
  624. that NamespaceSelectors ends up choosing.
  625. items:
  626. type: string
  627. type: array
  628. refreshTime:
  629. description: The time in which the controller should reconcile its
  630. objects and recheck namespaces for labels.
  631. type: string
  632. required:
  633. - externalSecretSpec
  634. type: object
  635. status:
  636. description: ClusterExternalSecretStatus defines the observed state of
  637. ClusterExternalSecret.
  638. properties:
  639. conditions:
  640. items:
  641. properties:
  642. message:
  643. type: string
  644. status:
  645. type: string
  646. type:
  647. type: string
  648. required:
  649. - status
  650. - type
  651. type: object
  652. type: array
  653. externalSecretName:
  654. description: ExternalSecretName is the name of the ExternalSecrets
  655. created by the ClusterExternalSecret
  656. type: string
  657. failedNamespaces:
  658. description: Failed namespaces are the namespaces that failed to apply
  659. an ExternalSecret
  660. items:
  661. description: ClusterExternalSecretNamespaceFailure represents a
  662. failed namespace deployment and it's reason.
  663. properties:
  664. namespace:
  665. description: Namespace is the namespace that failed when trying
  666. to apply an ExternalSecret
  667. type: string
  668. reason:
  669. description: Reason is why the ExternalSecret failed to apply
  670. to the namespace
  671. type: string
  672. required:
  673. - namespace
  674. type: object
  675. type: array
  676. provisionedNamespaces:
  677. description: ProvisionedNamespaces are the namespaces where the ClusterExternalSecret
  678. has secrets
  679. items:
  680. type: string
  681. type: array
  682. type: object
  683. type: object
  684. served: true
  685. storage: true
  686. subresources:
  687. status: {}