external-secrets.io_clusterpushsecrets.yaml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.18.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. labels:
  381. additionalProperties:
  382. type: string
  383. type: object
  384. type: object
  385. templateFrom:
  386. items:
  387. properties:
  388. configMap:
  389. properties:
  390. items:
  391. description: A list of keys in the ConfigMap/Secret
  392. to use as templates for Secret data
  393. items:
  394. properties:
  395. key:
  396. description: A key in the ConfigMap/Secret
  397. maxLength: 253
  398. minLength: 1
  399. pattern: ^[-._a-zA-Z0-9]+$
  400. type: string
  401. templateAs:
  402. default: Values
  403. enum:
  404. - Values
  405. - KeysAndValues
  406. type: string
  407. required:
  408. - key
  409. type: object
  410. type: array
  411. name:
  412. description: The name of the ConfigMap/Secret resource
  413. maxLength: 253
  414. minLength: 1
  415. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  416. type: string
  417. required:
  418. - items
  419. - name
  420. type: object
  421. literal:
  422. type: string
  423. secret:
  424. properties:
  425. items:
  426. description: A list of keys in the ConfigMap/Secret
  427. to use as templates for Secret data
  428. items:
  429. properties:
  430. key:
  431. description: A key in the ConfigMap/Secret
  432. maxLength: 253
  433. minLength: 1
  434. pattern: ^[-._a-zA-Z0-9]+$
  435. type: string
  436. templateAs:
  437. default: Values
  438. enum:
  439. - Values
  440. - KeysAndValues
  441. type: string
  442. required:
  443. - key
  444. type: object
  445. type: array
  446. name:
  447. description: The name of the ConfigMap/Secret resource
  448. maxLength: 253
  449. minLength: 1
  450. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  451. type: string
  452. required:
  453. - items
  454. - name
  455. type: object
  456. target:
  457. default: Data
  458. enum:
  459. - Data
  460. - Annotations
  461. - Labels
  462. type: string
  463. type: object
  464. type: array
  465. type:
  466. type: string
  467. type: object
  468. updatePolicy:
  469. default: Replace
  470. description: UpdatePolicy to handle Secrets in the provider.
  471. enum:
  472. - Replace
  473. - IfNotExists
  474. type: string
  475. required:
  476. - secretStoreRefs
  477. - selector
  478. type: object
  479. refreshTime:
  480. description: The time in which the controller should reconcile its
  481. objects and recheck namespaces for labels.
  482. type: string
  483. required:
  484. - pushSecretSpec
  485. type: object
  486. status:
  487. properties:
  488. conditions:
  489. items:
  490. description: PushSecretStatusCondition indicates the status of the
  491. PushSecret.
  492. properties:
  493. lastTransitionTime:
  494. format: date-time
  495. type: string
  496. message:
  497. type: string
  498. reason:
  499. type: string
  500. status:
  501. type: string
  502. type:
  503. description: PushSecretConditionType indicates the condition
  504. of the PushSecret.
  505. type: string
  506. required:
  507. - status
  508. - type
  509. type: object
  510. type: array
  511. failedNamespaces:
  512. description: Failed namespaces are the namespaces that failed to apply
  513. an PushSecret
  514. items:
  515. description: ClusterPushSecretNamespaceFailure represents a failed
  516. namespace deployment and it's reason.
  517. properties:
  518. namespace:
  519. description: Namespace is the namespace that failed when trying
  520. to apply an PushSecret
  521. type: string
  522. reason:
  523. description: Reason is why the PushSecret failed to apply to
  524. the namespace
  525. type: string
  526. required:
  527. - namespace
  528. type: object
  529. type: array
  530. provisionedNamespaces:
  531. description: ProvisionedNamespaces are the namespaces where the ClusterPushSecret
  532. has secrets
  533. items:
  534. type: string
  535. type: array
  536. pushSecretName:
  537. type: string
  538. type: object
  539. type: object
  540. served: true
  541. storage: true
  542. subresources:
  543. status: {}