external-secrets.io_clusterpushsecrets.yaml 26 KB

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