external-secrets.io_pushsecrets.yaml 22 KB

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