external-secrets.io_clusterpushsecrets.yaml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.19.0
  6. labels:
  7. external-secrets.io/component: controller
  8. name: clusterpushsecrets.external-secrets.io
  9. spec:
  10. group: external-secrets.io
  11. names:
  12. categories:
  13. - external-secrets
  14. kind: ClusterPushSecret
  15. listKind: ClusterPushSecretList
  16. plural: clusterpushsecrets
  17. singular: clusterpushsecret
  18. scope: Cluster
  19. versions:
  20. - additionalPrinterColumns:
  21. - jsonPath: .metadata.creationTimestamp
  22. name: AGE
  23. type: date
  24. - jsonPath: .status.conditions[?(@.type=="Ready")].reason
  25. name: Status
  26. type: string
  27. name: v1alpha1
  28. schema:
  29. openAPIV3Schema:
  30. description: ClusterPushSecret is the Schema for the ClusterPushSecrets API
  31. that enables cluster-wide management of pushing Kubernetes secrets to external
  32. providers.
  33. properties:
  34. apiVersion:
  35. description: |-
  36. APIVersion defines the versioned schema of this representation of an object.
  37. Servers should convert recognized schemas to the latest internal value, and
  38. may reject unrecognized values.
  39. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  40. type: string
  41. kind:
  42. description: |-
  43. Kind is a string value representing the REST resource this object represents.
  44. Servers may infer this from the endpoint the client submits requests to.
  45. Cannot be updated.
  46. In CamelCase.
  47. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  48. type: string
  49. metadata:
  50. type: object
  51. spec:
  52. description: ClusterPushSecretSpec defines the configuration for a ClusterPushSecret
  53. resource.
  54. properties:
  55. namespaceSelectors:
  56. description: A list of labels to select by to find the Namespaces
  57. to create the ExternalSecrets in. The selectors are ORed.
  58. items:
  59. description: |-
  60. A label selector is a label query over a set of resources. The result of matchLabels and
  61. matchExpressions are ANDed. An empty label selector matches all objects. A null
  62. label selector matches no objects.
  63. properties:
  64. matchExpressions:
  65. description: matchExpressions is a list of label selector requirements.
  66. The requirements are ANDed.
  67. items:
  68. description: |-
  69. A label selector requirement is a selector that contains values, a key, and an operator that
  70. relates the key and values.
  71. properties:
  72. key:
  73. description: key is the label key that the selector applies
  74. to.
  75. type: string
  76. operator:
  77. description: |-
  78. operator represents a key's relationship to a set of values.
  79. Valid operators are In, NotIn, Exists and DoesNotExist.
  80. type: string
  81. values:
  82. description: |-
  83. values is an array of string values. If the operator is In or NotIn,
  84. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  85. the values array must be empty. This array is replaced during a strategic
  86. merge patch.
  87. items:
  88. type: string
  89. type: array
  90. x-kubernetes-list-type: atomic
  91. required:
  92. - key
  93. - operator
  94. type: object
  95. type: array
  96. x-kubernetes-list-type: atomic
  97. matchLabels:
  98. additionalProperties:
  99. type: string
  100. description: |-
  101. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  102. map is equivalent to an element of matchExpressions, whose key field is "key", the
  103. operator is "In", and the values array contains only "value". The requirements are ANDed.
  104. type: object
  105. type: object
  106. x-kubernetes-map-type: atomic
  107. type: array
  108. pushSecretMetadata:
  109. description: The metadata of the external secrets to be created
  110. properties:
  111. annotations:
  112. additionalProperties:
  113. type: string
  114. type: object
  115. labels:
  116. additionalProperties:
  117. type: string
  118. type: object
  119. type: object
  120. pushSecretName:
  121. description: |-
  122. The name of the push secrets to be created.
  123. Defaults to the name of the ClusterPushSecret
  124. maxLength: 253
  125. minLength: 1
  126. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  127. type: string
  128. pushSecretSpec:
  129. description: PushSecretSpec defines what to do with the secrets.
  130. properties:
  131. data:
  132. description: Secret Data that should be pushed to providers
  133. items:
  134. description: PushSecretData defines data to be pushed to the
  135. provider and associated metadata.
  136. properties:
  137. conversionStrategy:
  138. default: None
  139. description: Used to define a conversion Strategy for the
  140. secret keys
  141. enum:
  142. - None
  143. - ReverseUnicode
  144. type: string
  145. match:
  146. description: Match a given Secret Key to be pushed to the
  147. provider.
  148. properties:
  149. remoteRef:
  150. description: Remote Refs to push to providers.
  151. properties:
  152. property:
  153. description: Name of the property in the resulting
  154. secret
  155. type: string
  156. remoteKey:
  157. description: Name of the resulting provider secret.
  158. type: string
  159. required:
  160. - remoteKey
  161. type: object
  162. secretKey:
  163. description: Secret Key to be pushed
  164. type: string
  165. required:
  166. - remoteRef
  167. type: object
  168. metadata:
  169. description: |-
  170. Metadata is metadata attached to the secret.
  171. The structure of metadata is provider specific, please look it up in the provider documentation.
  172. x-kubernetes-preserve-unknown-fields: true
  173. required:
  174. - match
  175. type: object
  176. type: array
  177. deletionPolicy:
  178. default: None
  179. description: Deletion Policy to handle Secrets in the provider.
  180. enum:
  181. - Delete
  182. - None
  183. type: string
  184. refreshInterval:
  185. default: 1h0m0s
  186. description: The Interval to which External Secrets will try to
  187. push a secret definition
  188. type: string
  189. secretStoreRefs:
  190. items:
  191. description: PushSecretStoreRef contains a reference on how
  192. to sync to a SecretStore.
  193. properties:
  194. kind:
  195. default: SecretStore
  196. description: Kind of the SecretStore resource (SecretStore
  197. or ClusterSecretStore)
  198. enum:
  199. - SecretStore
  200. - ClusterSecretStore
  201. type: string
  202. labelSelector:
  203. description: Optionally, sync to secret stores with label
  204. selector
  205. properties:
  206. matchExpressions:
  207. description: matchExpressions is a list of label selector
  208. requirements. The requirements are ANDed.
  209. items:
  210. description: |-
  211. A label selector requirement is a selector that contains values, a key, and an operator that
  212. relates the key and values.
  213. properties:
  214. key:
  215. description: key is the label key that the selector
  216. applies to.
  217. type: string
  218. operator:
  219. description: |-
  220. operator represents a key's relationship to a set of values.
  221. Valid operators are In, NotIn, Exists and DoesNotExist.
  222. type: string
  223. values:
  224. description: |-
  225. values is an array of string values. If the operator is In or NotIn,
  226. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  227. the values array must be empty. This array is replaced during a strategic
  228. merge patch.
  229. items:
  230. type: string
  231. type: array
  232. x-kubernetes-list-type: atomic
  233. required:
  234. - key
  235. - operator
  236. type: object
  237. type: array
  238. x-kubernetes-list-type: atomic
  239. matchLabels:
  240. additionalProperties:
  241. type: string
  242. description: |-
  243. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  244. map is equivalent to an element of matchExpressions, whose key field is "key", the
  245. operator is "In", and the values array contains only "value". The requirements are ANDed.
  246. type: object
  247. type: object
  248. x-kubernetes-map-type: atomic
  249. name:
  250. description: Optionally, sync to the SecretStore of the
  251. given name
  252. maxLength: 253
  253. minLength: 1
  254. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  255. type: string
  256. type: object
  257. type: array
  258. selector:
  259. description: The Secret Selector (k8s source) for the Push Secret
  260. maxProperties: 1
  261. minProperties: 1
  262. properties:
  263. generatorRef:
  264. description: Point to a generator to create a Secret.
  265. properties:
  266. apiVersion:
  267. default: generators.external-secrets.io/v1alpha1
  268. description: Specify the apiVersion of the generator resource
  269. type: string
  270. kind:
  271. description: Specify the Kind of the generator resource
  272. enum:
  273. - ACRAccessToken
  274. - ClusterGenerator
  275. - CloudsmithAccessToken
  276. - ECRAuthorizationToken
  277. - Fake
  278. - GCRAccessToken
  279. - GithubAccessToken
  280. - QuayAccessToken
  281. - Password
  282. - SSHKey
  283. - STSSessionToken
  284. - UUID
  285. - VaultDynamicSecret
  286. - Webhook
  287. - Grafana
  288. - MFA
  289. type: string
  290. name:
  291. description: Specify the name of the generator resource
  292. maxLength: 253
  293. minLength: 1
  294. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  295. type: string
  296. required:
  297. - kind
  298. - name
  299. type: object
  300. secret:
  301. description: Select a Secret to Push.
  302. properties:
  303. name:
  304. description: |-
  305. Name of the Secret.
  306. The Secret must exist in the same namespace as the PushSecret manifest.
  307. maxLength: 253
  308. minLength: 1
  309. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  310. type: string
  311. selector:
  312. description: Selector chooses secrets using a labelSelector.
  313. properties:
  314. matchExpressions:
  315. description: matchExpressions is a list of label selector
  316. requirements. The requirements are ANDed.
  317. items:
  318. description: |-
  319. A label selector requirement is a selector that contains values, a key, and an operator that
  320. relates the key and values.
  321. properties:
  322. key:
  323. description: key is the label key that the selector
  324. applies to.
  325. type: string
  326. operator:
  327. description: |-
  328. operator represents a key's relationship to a set of values.
  329. Valid operators are In, NotIn, Exists and DoesNotExist.
  330. type: string
  331. values:
  332. description: |-
  333. values is an array of string values. If the operator is In or NotIn,
  334. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  335. the values array must be empty. This array is replaced during a strategic
  336. merge patch.
  337. items:
  338. type: string
  339. type: array
  340. x-kubernetes-list-type: atomic
  341. required:
  342. - key
  343. - operator
  344. type: object
  345. type: array
  346. x-kubernetes-list-type: atomic
  347. matchLabels:
  348. additionalProperties:
  349. type: string
  350. description: |-
  351. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  352. map is equivalent to an element of matchExpressions, whose key field is "key", the
  353. operator is "In", and the values array contains only "value". The requirements are ANDed.
  354. type: object
  355. type: object
  356. x-kubernetes-map-type: atomic
  357. type: object
  358. type: object
  359. template:
  360. description: Template defines a blueprint for the created Secret
  361. resource.
  362. properties:
  363. data:
  364. additionalProperties:
  365. type: string
  366. type: object
  367. engineVersion:
  368. default: v2
  369. description: |-
  370. EngineVersion specifies the template engine version
  371. that should be used to compile/execute the
  372. template specified in .data and .templateFrom[].
  373. enum:
  374. - v2
  375. type: string
  376. mergePolicy:
  377. default: Replace
  378. description: TemplateMergePolicy defines how the rendered
  379. template should be merged with the existing Secret data.
  380. enum:
  381. - Replace
  382. - Merge
  383. type: string
  384. metadata:
  385. description: ExternalSecretTemplateMetadata defines metadata
  386. fields for the Secret blueprint.
  387. properties:
  388. annotations:
  389. additionalProperties:
  390. type: string
  391. type: object
  392. finalizers:
  393. items:
  394. type: string
  395. type: array
  396. labels:
  397. additionalProperties:
  398. type: string
  399. type: object
  400. type: object
  401. templateFrom:
  402. items:
  403. description: |-
  404. TemplateFrom specifies a source for templates.
  405. Each item in the list can either reference a ConfigMap or a Secret resource.
  406. properties:
  407. configMap:
  408. description: TemplateRef specifies a reference to either
  409. a ConfigMap or a Secret resource.
  410. properties:
  411. items:
  412. description: A list of keys in the ConfigMap/Secret
  413. to use as templates for Secret data
  414. items:
  415. description: TemplateRefItem specifies a key in
  416. the ConfigMap/Secret to use as a template for
  417. Secret data.
  418. properties:
  419. key:
  420. description: A key in the ConfigMap/Secret
  421. maxLength: 253
  422. minLength: 1
  423. pattern: ^[-._a-zA-Z0-9]+$
  424. type: string
  425. templateAs:
  426. default: Values
  427. description: TemplateScope specifies how the
  428. template keys should be interpreted.
  429. enum:
  430. - Values
  431. - KeysAndValues
  432. type: string
  433. required:
  434. - key
  435. type: object
  436. type: array
  437. name:
  438. description: The name of the ConfigMap/Secret resource
  439. maxLength: 253
  440. minLength: 1
  441. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  442. type: string
  443. required:
  444. - items
  445. - name
  446. type: object
  447. literal:
  448. type: string
  449. secret:
  450. description: TemplateRef specifies a reference to either
  451. a ConfigMap or a Secret resource.
  452. properties:
  453. items:
  454. description: A list of keys in the ConfigMap/Secret
  455. to use as templates for Secret data
  456. items:
  457. description: TemplateRefItem specifies a key in
  458. the ConfigMap/Secret to use as a template for
  459. Secret data.
  460. properties:
  461. key:
  462. description: A key in the ConfigMap/Secret
  463. maxLength: 253
  464. minLength: 1
  465. pattern: ^[-._a-zA-Z0-9]+$
  466. type: string
  467. templateAs:
  468. default: Values
  469. description: TemplateScope specifies how the
  470. template keys should be interpreted.
  471. enum:
  472. - Values
  473. - KeysAndValues
  474. type: string
  475. required:
  476. - key
  477. type: object
  478. type: array
  479. name:
  480. description: The name of the ConfigMap/Secret resource
  481. maxLength: 253
  482. minLength: 1
  483. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  484. type: string
  485. required:
  486. - items
  487. - name
  488. type: object
  489. target:
  490. default: Data
  491. description: |-
  492. Target specifies where to place the template result.
  493. For Secret resources, common values are: "Data", "Annotations", "Labels".
  494. For custom resources (when spec.target.manifest is set), this supports
  495. nested paths like "spec.database.config" or "data".
  496. type: string
  497. type: object
  498. type: array
  499. type:
  500. type: string
  501. type: object
  502. updatePolicy:
  503. default: Replace
  504. description: UpdatePolicy to handle Secrets in the provider.
  505. enum:
  506. - Replace
  507. - IfNotExists
  508. type: string
  509. required:
  510. - secretStoreRefs
  511. - selector
  512. type: object
  513. refreshTime:
  514. description: The time in which the controller should reconcile its
  515. objects and recheck namespaces for labels.
  516. type: string
  517. required:
  518. - pushSecretSpec
  519. type: object
  520. status:
  521. description: ClusterPushSecretStatus contains the status information for
  522. the ClusterPushSecret resource.
  523. properties:
  524. conditions:
  525. items:
  526. description: PushSecretStatusCondition indicates the status of the
  527. PushSecret.
  528. properties:
  529. lastTransitionTime:
  530. format: date-time
  531. type: string
  532. message:
  533. type: string
  534. reason:
  535. type: string
  536. status:
  537. type: string
  538. type:
  539. description: PushSecretConditionType indicates the condition
  540. of the PushSecret.
  541. type: string
  542. required:
  543. - status
  544. - type
  545. type: object
  546. type: array
  547. failedNamespaces:
  548. description: Failed namespaces are the namespaces that failed to apply
  549. an PushSecret
  550. items:
  551. description: ClusterPushSecretNamespaceFailure represents a failed
  552. namespace deployment and it's reason.
  553. properties:
  554. namespace:
  555. description: Namespace is the namespace that failed when trying
  556. to apply an PushSecret
  557. type: string
  558. reason:
  559. description: Reason is why the PushSecret failed to apply to
  560. the namespace
  561. type: string
  562. required:
  563. - namespace
  564. type: object
  565. type: array
  566. provisionedNamespaces:
  567. description: ProvisionedNamespaces are the namespaces where the ClusterPushSecret
  568. has secrets
  569. items:
  570. type: string
  571. type: array
  572. pushSecretName:
  573. type: string
  574. type: object
  575. type: object
  576. served: true
  577. storage: true
  578. subresources:
  579. status: {}