external-secrets.io_pushsecrets.yaml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  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. - CloudsmithAccessToken
  191. - ECRAuthorizationToken
  192. - Fake
  193. - GCRAccessToken
  194. - GithubAccessToken
  195. - QuayAccessToken
  196. - Password
  197. - SSHKey
  198. - STSSessionToken
  199. - UUID
  200. - VaultDynamicSecret
  201. - Webhook
  202. - Grafana
  203. - MFA
  204. type: string
  205. name:
  206. description: Specify the name of the generator resource
  207. maxLength: 253
  208. minLength: 1
  209. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  210. type: string
  211. required:
  212. - kind
  213. - name
  214. type: object
  215. secret:
  216. description: Select a Secret to Push.
  217. properties:
  218. name:
  219. description: |-
  220. Name of the Secret.
  221. The Secret must exist in the same namespace as the PushSecret manifest.
  222. maxLength: 253
  223. minLength: 1
  224. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  225. type: string
  226. selector:
  227. description: Selector chooses secrets using a labelSelector.
  228. properties:
  229. matchExpressions:
  230. description: matchExpressions is a list of label selector
  231. requirements. The requirements are ANDed.
  232. items:
  233. description: |-
  234. A label selector requirement is a selector that contains values, a key, and an operator that
  235. relates the key and values.
  236. properties:
  237. key:
  238. description: key is the label key that the selector
  239. applies to.
  240. type: string
  241. operator:
  242. description: |-
  243. operator represents a key's relationship to a set of values.
  244. Valid operators are In, NotIn, Exists and DoesNotExist.
  245. type: string
  246. values:
  247. description: |-
  248. values is an array of string values. If the operator is In or NotIn,
  249. the values array must be non-empty. If the operator is Exists or DoesNotExist,
  250. the values array must be empty. This array is replaced during a strategic
  251. merge patch.
  252. items:
  253. type: string
  254. type: array
  255. x-kubernetes-list-type: atomic
  256. required:
  257. - key
  258. - operator
  259. type: object
  260. type: array
  261. x-kubernetes-list-type: atomic
  262. matchLabels:
  263. additionalProperties:
  264. type: string
  265. description: |-
  266. matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
  267. map is equivalent to an element of matchExpressions, whose key field is "key", the
  268. operator is "In", and the values array contains only "value". The requirements are ANDed.
  269. type: object
  270. type: object
  271. x-kubernetes-map-type: atomic
  272. type: object
  273. type: object
  274. template:
  275. description: Template defines a blueprint for the created Secret resource.
  276. properties:
  277. data:
  278. additionalProperties:
  279. type: string
  280. type: object
  281. engineVersion:
  282. default: v2
  283. description: |-
  284. EngineVersion specifies the template engine version
  285. that should be used to compile/execute the
  286. template specified in .data and .templateFrom[].
  287. enum:
  288. - v2
  289. type: string
  290. mergePolicy:
  291. default: Replace
  292. enum:
  293. - Replace
  294. - Merge
  295. type: string
  296. metadata:
  297. description: ExternalSecretTemplateMetadata defines metadata fields
  298. for the Secret blueprint.
  299. properties:
  300. annotations:
  301. additionalProperties:
  302. type: string
  303. type: object
  304. finalizers:
  305. items:
  306. type: string
  307. type: array
  308. labels:
  309. additionalProperties:
  310. type: string
  311. type: object
  312. type: object
  313. templateFrom:
  314. items:
  315. properties:
  316. configMap:
  317. properties:
  318. items:
  319. description: A list of keys in the ConfigMap/Secret
  320. to use as templates for Secret data
  321. items:
  322. properties:
  323. key:
  324. description: A key in the ConfigMap/Secret
  325. maxLength: 253
  326. minLength: 1
  327. pattern: ^[-._a-zA-Z0-9]+$
  328. type: string
  329. templateAs:
  330. default: Values
  331. enum:
  332. - Values
  333. - KeysAndValues
  334. type: string
  335. required:
  336. - key
  337. type: object
  338. type: array
  339. name:
  340. description: The name of the ConfigMap/Secret resource
  341. maxLength: 253
  342. minLength: 1
  343. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  344. type: string
  345. required:
  346. - items
  347. - name
  348. type: object
  349. literal:
  350. type: string
  351. secret:
  352. properties:
  353. items:
  354. description: A list of keys in the ConfigMap/Secret
  355. to use as templates for Secret data
  356. items:
  357. properties:
  358. key:
  359. description: A key in the ConfigMap/Secret
  360. maxLength: 253
  361. minLength: 1
  362. pattern: ^[-._a-zA-Z0-9]+$
  363. type: string
  364. templateAs:
  365. default: Values
  366. enum:
  367. - Values
  368. - KeysAndValues
  369. type: string
  370. required:
  371. - key
  372. type: object
  373. type: array
  374. name:
  375. description: The name of the ConfigMap/Secret resource
  376. maxLength: 253
  377. minLength: 1
  378. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  379. type: string
  380. required:
  381. - items
  382. - name
  383. type: object
  384. target:
  385. default: Data
  386. enum:
  387. - Data
  388. - Annotations
  389. - Labels
  390. type: string
  391. type: object
  392. type: array
  393. type:
  394. type: string
  395. type: object
  396. updatePolicy:
  397. default: Replace
  398. description: UpdatePolicy to handle Secrets in the provider.
  399. enum:
  400. - Replace
  401. - IfNotExists
  402. type: string
  403. required:
  404. - secretStoreRefs
  405. - selector
  406. type: object
  407. status:
  408. description: PushSecretStatus indicates the history of the status of PushSecret.
  409. properties:
  410. conditions:
  411. items:
  412. description: PushSecretStatusCondition indicates the status of the
  413. PushSecret.
  414. properties:
  415. lastTransitionTime:
  416. format: date-time
  417. type: string
  418. message:
  419. type: string
  420. reason:
  421. type: string
  422. status:
  423. type: string
  424. type:
  425. description: PushSecretConditionType indicates the condition
  426. of the PushSecret.
  427. type: string
  428. required:
  429. - status
  430. - type
  431. type: object
  432. type: array
  433. refreshTime:
  434. description: |-
  435. refreshTime is the time and date the external secret was fetched and
  436. the target secret updated
  437. format: date-time
  438. nullable: true
  439. type: string
  440. syncedPushSecrets:
  441. additionalProperties:
  442. additionalProperties:
  443. properties:
  444. conversionStrategy:
  445. default: None
  446. description: Used to define a conversion Strategy for the
  447. secret keys
  448. enum:
  449. - None
  450. - ReverseUnicode
  451. type: string
  452. match:
  453. description: Match a given Secret Key to be pushed to the
  454. provider.
  455. properties:
  456. remoteRef:
  457. description: Remote Refs to push to providers.
  458. properties:
  459. property:
  460. description: Name of the property in the resulting
  461. secret
  462. type: string
  463. remoteKey:
  464. description: Name of the resulting provider secret.
  465. type: string
  466. required:
  467. - remoteKey
  468. type: object
  469. secretKey:
  470. description: Secret Key to be pushed
  471. type: string
  472. required:
  473. - remoteRef
  474. type: object
  475. metadata:
  476. description: |-
  477. Metadata is metadata attached to the secret.
  478. The structure of metadata is provider specific, please look it up in the provider documentation.
  479. x-kubernetes-preserve-unknown-fields: true
  480. required:
  481. - match
  482. type: object
  483. type: object
  484. description: |-
  485. Synced PushSecrets, including secrets that already exist in provider.
  486. Matches secret stores to PushSecretData that was stored to that secret store.
  487. type: object
  488. syncedResourceVersion:
  489. description: SyncedResourceVersion keeps track of the last synced
  490. version.
  491. type: string
  492. type: object
  493. type: object
  494. served: true
  495. storage: true
  496. subresources:
  497. status: {}