external-secrets.io_pushsecrets.yaml 22 KB

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