external-secrets.io_clusterpushsecrets.yaml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
  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. - ECRAuthorizationToken
  267. - Fake
  268. - GCRAccessToken
  269. - GithubAccessToken
  270. - QuayAccessToken
  271. - Password
  272. - SSHKey
  273. - STSSessionToken
  274. - UUID
  275. - VaultDynamicSecret
  276. - Webhook
  277. - Grafana
  278. - MFA
  279. type: string
  280. name:
  281. description: Specify the name of the generator resource
  282. maxLength: 253
  283. minLength: 1
  284. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  285. type: string
  286. required:
  287. - kind
  288. - name
  289. type: object
  290. secret:
  291. description: Select a Secret to Push.
  292. properties:
  293. name:
  294. description: |-
  295. Name of the Secret.
  296. The Secret must exist in the same namespace as the PushSecret manifest.
  297. maxLength: 253
  298. minLength: 1
  299. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  300. type: string
  301. selector:
  302. description: Selector chooses secrets using a labelSelector.
  303. properties:
  304. matchExpressions:
  305. description: matchExpressions is a list of label selector
  306. requirements. The requirements are ANDed.
  307. items:
  308. description: |-
  309. A label selector requirement is a selector that contains values, a key, and an operator that
  310. relates the key and values.
  311. properties:
  312. key:
  313. description: key is the label key that the selector
  314. applies to.
  315. type: string
  316. operator:
  317. description: |-
  318. operator represents a key's relationship to a set of values.
  319. Valid operators are In, NotIn, Exists and DoesNotExist.
  320. type: string
  321. values:
  322. description: |-
  323. values is an array of string values. If the operator is In or NotIn,
  324. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  325. the values array must be empty. This array is replaced during a strategic
  326. merge patch.
  327. items:
  328. type: string
  329. type: array
  330. x-kubernetes-list-type: atomic
  331. required:
  332. - key
  333. - operator
  334. type: object
  335. type: array
  336. x-kubernetes-list-type: atomic
  337. matchLabels:
  338. additionalProperties:
  339. type: string
  340. description: |-
  341. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  342. map is equivalent to an element of matchExpressions, whose key field is "key", the
  343. operator is "In", and the values array contains only "value". The requirements are ANDed.
  344. type: object
  345. type: object
  346. x-kubernetes-map-type: atomic
  347. type: object
  348. type: object
  349. template:
  350. description: Template defines a blueprint for the created Secret
  351. resource.
  352. properties:
  353. data:
  354. additionalProperties:
  355. type: string
  356. type: object
  357. engineVersion:
  358. default: v2
  359. description: |-
  360. EngineVersion specifies the template engine version
  361. that should be used to compile/execute the
  362. template specified in .data and .templateFrom[].
  363. enum:
  364. - v2
  365. type: string
  366. mergePolicy:
  367. default: Replace
  368. enum:
  369. - Replace
  370. - Merge
  371. type: string
  372. metadata:
  373. description: ExternalSecretTemplateMetadata defines metadata
  374. fields for the Secret blueprint.
  375. properties:
  376. annotations:
  377. additionalProperties:
  378. type: string
  379. type: object
  380. finalizers:
  381. items:
  382. type: string
  383. type: array
  384. labels:
  385. additionalProperties:
  386. type: string
  387. type: object
  388. type: object
  389. templateFrom:
  390. items:
  391. properties:
  392. configMap:
  393. properties:
  394. items:
  395. description: A list of keys in the ConfigMap/Secret
  396. to use as templates for Secret data
  397. items:
  398. properties:
  399. key:
  400. description: A key in the ConfigMap/Secret
  401. maxLength: 253
  402. minLength: 1
  403. pattern: ^[-._a-zA-Z0-9]+$
  404. type: string
  405. templateAs:
  406. default: Values
  407. enum:
  408. - Values
  409. - KeysAndValues
  410. type: string
  411. required:
  412. - key
  413. type: object
  414. type: array
  415. name:
  416. description: The name of the ConfigMap/Secret resource
  417. maxLength: 253
  418. minLength: 1
  419. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  420. type: string
  421. required:
  422. - items
  423. - name
  424. type: object
  425. literal:
  426. type: string
  427. secret:
  428. properties:
  429. items:
  430. description: A list of keys in the ConfigMap/Secret
  431. to use as templates for Secret data
  432. items:
  433. properties:
  434. key:
  435. description: A key in the ConfigMap/Secret
  436. maxLength: 253
  437. minLength: 1
  438. pattern: ^[-._a-zA-Z0-9]+$
  439. type: string
  440. templateAs:
  441. default: Values
  442. enum:
  443. - Values
  444. - KeysAndValues
  445. type: string
  446. required:
  447. - key
  448. type: object
  449. type: array
  450. name:
  451. description: The name of the ConfigMap/Secret resource
  452. maxLength: 253
  453. minLength: 1
  454. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  455. type: string
  456. required:
  457. - items
  458. - name
  459. type: object
  460. target:
  461. default: Data
  462. enum:
  463. - Data
  464. - Annotations
  465. - Labels
  466. type: string
  467. type: object
  468. type: array
  469. type:
  470. type: string
  471. type: object
  472. updatePolicy:
  473. default: Replace
  474. description: UpdatePolicy to handle Secrets in the provider.
  475. enum:
  476. - Replace
  477. - IfNotExists
  478. type: string
  479. required:
  480. - secretStoreRefs
  481. - selector
  482. type: object
  483. refreshTime:
  484. description: The time in which the controller should reconcile its
  485. objects and recheck namespaces for labels.
  486. type: string
  487. required:
  488. - pushSecretSpec
  489. type: object
  490. status:
  491. properties:
  492. conditions:
  493. items:
  494. description: PushSecretStatusCondition indicates the status of the
  495. PushSecret.
  496. properties:
  497. lastTransitionTime:
  498. format: date-time
  499. type: string
  500. message:
  501. type: string
  502. reason:
  503. type: string
  504. status:
  505. type: string
  506. type:
  507. description: PushSecretConditionType indicates the condition
  508. of the PushSecret.
  509. type: string
  510. required:
  511. - status
  512. - type
  513. type: object
  514. type: array
  515. failedNamespaces:
  516. description: Failed namespaces are the namespaces that failed to apply
  517. an PushSecret
  518. items:
  519. description: ClusterPushSecretNamespaceFailure represents a failed
  520. namespace deployment and it's reason.
  521. properties:
  522. namespace:
  523. description: Namespace is the namespace that failed when trying
  524. to apply an PushSecret
  525. type: string
  526. reason:
  527. description: Reason is why the PushSecret failed to apply to
  528. the namespace
  529. type: string
  530. required:
  531. - namespace
  532. type: object
  533. type: array
  534. provisionedNamespaces:
  535. description: ProvisionedNamespaces are the namespaces where the ClusterPushSecret
  536. has secrets
  537. items:
  538. type: string
  539. type: array
  540. pushSecretName:
  541. type: string
  542. type: object
  543. type: object
  544. served: true
  545. storage: true
  546. subresources:
  547. status: {}