external-secrets.io_pushsecrets.yaml 24 KB

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