external-secrets.io_pushsecrets.yaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  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: 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. labels:
  304. additionalProperties:
  305. type: string
  306. type: object
  307. type: object
  308. templateFrom:
  309. items:
  310. properties:
  311. configMap:
  312. properties:
  313. items:
  314. description: A list of keys in the ConfigMap/Secret
  315. to use as templates for Secret data
  316. items:
  317. properties:
  318. key:
  319. description: A key in the ConfigMap/Secret
  320. maxLength: 253
  321. minLength: 1
  322. pattern: ^[-._a-zA-Z0-9]+$
  323. type: string
  324. templateAs:
  325. default: Values
  326. enum:
  327. - Values
  328. - KeysAndValues
  329. type: string
  330. required:
  331. - key
  332. type: object
  333. type: array
  334. name:
  335. description: The name of the ConfigMap/Secret resource
  336. maxLength: 253
  337. minLength: 1
  338. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  339. type: string
  340. required:
  341. - items
  342. - name
  343. type: object
  344. literal:
  345. type: string
  346. secret:
  347. properties:
  348. items:
  349. description: A list of keys in the ConfigMap/Secret
  350. to use as templates for Secret data
  351. items:
  352. properties:
  353. key:
  354. description: A key in the ConfigMap/Secret
  355. maxLength: 253
  356. minLength: 1
  357. pattern: ^[-._a-zA-Z0-9]+$
  358. type: string
  359. templateAs:
  360. default: Values
  361. enum:
  362. - Values
  363. - KeysAndValues
  364. type: string
  365. required:
  366. - key
  367. type: object
  368. type: array
  369. name:
  370. description: The name of the ConfigMap/Secret resource
  371. maxLength: 253
  372. minLength: 1
  373. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  374. type: string
  375. required:
  376. - items
  377. - name
  378. type: object
  379. target:
  380. default: Data
  381. enum:
  382. - Data
  383. - Annotations
  384. - Labels
  385. type: string
  386. type: object
  387. type: array
  388. type:
  389. type: string
  390. type: object
  391. updatePolicy:
  392. default: Replace
  393. description: UpdatePolicy to handle Secrets in the provider.
  394. enum:
  395. - Replace
  396. - IfNotExists
  397. type: string
  398. required:
  399. - secretStoreRefs
  400. - selector
  401. type: object
  402. status:
  403. description: PushSecretStatus indicates the history of the status of PushSecret.
  404. properties:
  405. conditions:
  406. items:
  407. description: PushSecretStatusCondition indicates the status of the
  408. PushSecret.
  409. properties:
  410. lastTransitionTime:
  411. format: date-time
  412. type: string
  413. message:
  414. type: string
  415. reason:
  416. type: string
  417. status:
  418. type: string
  419. type:
  420. description: PushSecretConditionType indicates the condition
  421. of the PushSecret.
  422. type: string
  423. required:
  424. - status
  425. - type
  426. type: object
  427. type: array
  428. refreshTime:
  429. description: |-
  430. refreshTime is the time and date the external secret was fetched and
  431. the target secret updated
  432. format: date-time
  433. nullable: true
  434. type: string
  435. syncedPushSecrets:
  436. additionalProperties:
  437. additionalProperties:
  438. properties:
  439. conversionStrategy:
  440. default: None
  441. description: Used to define a conversion Strategy for the
  442. secret keys
  443. enum:
  444. - None
  445. - ReverseUnicode
  446. type: string
  447. match:
  448. description: Match a given Secret Key to be pushed to the
  449. provider.
  450. properties:
  451. remoteRef:
  452. description: Remote Refs to push to providers.
  453. properties:
  454. property:
  455. description: Name of the property in the resulting
  456. secret
  457. type: string
  458. remoteKey:
  459. description: Name of the resulting provider secret.
  460. type: string
  461. required:
  462. - remoteKey
  463. type: object
  464. secretKey:
  465. description: Secret Key to be pushed
  466. type: string
  467. required:
  468. - remoteRef
  469. type: object
  470. metadata:
  471. description: |-
  472. Metadata is metadata attached to the secret.
  473. The structure of metadata is provider specific, please look it up in the provider documentation.
  474. x-kubernetes-preserve-unknown-fields: true
  475. required:
  476. - match
  477. type: object
  478. type: object
  479. description: |-
  480. Synced PushSecrets, including secrets that already exist in provider.
  481. Matches secret stores to PushSecretData that was stored to that secret store.
  482. type: object
  483. syncedResourceVersion:
  484. description: SyncedResourceVersion keeps track of the last synced
  485. version.
  486. type: string
  487. type: object
  488. type: object
  489. served: true
  490. storage: true
  491. subresources:
  492. status: {}