external-secrets.io_clusterexternalsecrets.yaml 37 KB

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