external-secrets.io_clusterexternalsecrets.yaml 29 KB

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