external-secrets.io_pushsecrets.yaml 22 KB

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