external-secrets.io_clusterpushsecrets.yaml 25 KB

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