external-secrets.io_clusterpushsecrets.yaml 25 KB

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