external-secrets.io_clusterexternalsecrets.yaml 37 KB

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