external-secrets.io_pushsecrets.yaml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  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: 1h0m0s
  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: |-
  412. Target specifies where to place the template result.
  413. For Secret resources, common values are: "Data", "Annotations", "Labels".
  414. For custom resources (when spec.target.manifest is set), this supports
  415. nested paths like "spec.database.config" or "data".
  416. type: string
  417. type: object
  418. type: array
  419. type:
  420. type: string
  421. type: object
  422. updatePolicy:
  423. default: Replace
  424. description: UpdatePolicy to handle Secrets in the provider.
  425. enum:
  426. - Replace
  427. - IfNotExists
  428. type: string
  429. required:
  430. - secretStoreRefs
  431. - selector
  432. type: object
  433. status:
  434. description: PushSecretStatus indicates the history of the status of PushSecret.
  435. properties:
  436. conditions:
  437. items:
  438. description: PushSecretStatusCondition indicates the status of the
  439. PushSecret.
  440. properties:
  441. lastTransitionTime:
  442. format: date-time
  443. type: string
  444. message:
  445. type: string
  446. reason:
  447. type: string
  448. status:
  449. type: string
  450. type:
  451. description: PushSecretConditionType indicates the condition
  452. of the PushSecret.
  453. type: string
  454. required:
  455. - status
  456. - type
  457. type: object
  458. type: array
  459. refreshTime:
  460. description: |-
  461. refreshTime is the time and date the external secret was fetched and
  462. the target secret updated
  463. format: date-time
  464. nullable: true
  465. type: string
  466. syncedPushSecrets:
  467. additionalProperties:
  468. additionalProperties:
  469. description: PushSecretData defines data to be pushed to the provider
  470. and associated metadata.
  471. properties:
  472. conversionStrategy:
  473. default: None
  474. description: Used to define a conversion Strategy for the
  475. secret keys
  476. enum:
  477. - None
  478. - ReverseUnicode
  479. type: string
  480. match:
  481. description: Match a given Secret Key to be pushed to the
  482. provider.
  483. properties:
  484. remoteRef:
  485. description: Remote Refs to push to providers.
  486. properties:
  487. property:
  488. description: Name of the property in the resulting
  489. secret
  490. type: string
  491. remoteKey:
  492. description: Name of the resulting provider secret.
  493. type: string
  494. required:
  495. - remoteKey
  496. type: object
  497. secretKey:
  498. description: Secret Key to be pushed
  499. type: string
  500. required:
  501. - remoteRef
  502. type: object
  503. metadata:
  504. description: |-
  505. Metadata is metadata attached to the secret.
  506. The structure of metadata is provider specific, please look it up in the provider documentation.
  507. x-kubernetes-preserve-unknown-fields: true
  508. required:
  509. - match
  510. type: object
  511. type: object
  512. description: |-
  513. Synced PushSecrets, including secrets that already exist in provider.
  514. Matches secret stores to PushSecretData that was stored to that secret store.
  515. type: object
  516. syncedResourceVersion:
  517. description: SyncedResourceVersion keeps track of the last synced
  518. version.
  519. type: string
  520. type: object
  521. type: object
  522. served: true
  523. storage: true
  524. subresources:
  525. status: {}