external-secrets.io_clusterexternalsecrets.yaml 37 KB

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