external-secrets.io_secretstores.yaml 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.5.0
  6. creationTimestamp: null
  7. name: secretstores.external-secrets.io
  8. spec:
  9. group: external-secrets.io
  10. names:
  11. categories:
  12. - externalsecrets
  13. kind: SecretStore
  14. listKind: SecretStoreList
  15. plural: secretstores
  16. shortNames:
  17. - ss
  18. singular: secretstore
  19. scope: Namespaced
  20. versions:
  21. - additionalPrinterColumns:
  22. - jsonPath: .metadata.creationTimestamp
  23. name: AGE
  24. type: date
  25. name: v1alpha1
  26. schema:
  27. openAPIV3Schema:
  28. description: SecretStore represents a secure external location for storing
  29. secrets, which can be referenced as part of `storeRef` fields.
  30. properties:
  31. apiVersion:
  32. description: 'APIVersion defines the versioned schema of this representation
  33. of an object. Servers should convert recognized schemas to the latest
  34. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  35. type: string
  36. kind:
  37. description: 'Kind is a string value representing the REST resource this
  38. object represents. Servers may infer this from the endpoint the client
  39. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  40. type: string
  41. metadata:
  42. type: object
  43. spec:
  44. description: SecretStoreSpec defines the desired state of SecretStore.
  45. properties:
  46. controller:
  47. description: 'Used to select the correct KES controller (think: ingress.ingressClassName)
  48. The KES controller is instantiated with a specific controller name
  49. and filters ES based on this property'
  50. type: string
  51. provider:
  52. description: Used to configure the provider. Only one provider may
  53. be set
  54. maxProperties: 1
  55. minProperties: 1
  56. properties:
  57. aws:
  58. description: AWS configures this store to sync secrets using AWS
  59. Secret Manager provider
  60. properties:
  61. auth:
  62. description: 'Auth defines the information necessary to authenticate
  63. against AWS if not set aws sdk will infer credentials from
  64. your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials'
  65. properties:
  66. jwt:
  67. description: Authenticate against AWS using service account
  68. tokens.
  69. properties:
  70. serviceAccountRef:
  71. description: A reference to a ServiceAccount resource.
  72. properties:
  73. name:
  74. description: The name of the ServiceAccount resource
  75. being referred to.
  76. type: string
  77. namespace:
  78. description: Namespace of the resource being referred
  79. to. Ignored if referent is not cluster-scoped.
  80. cluster-scoped defaults to the namespace of
  81. the referent.
  82. type: string
  83. required:
  84. - name
  85. type: object
  86. type: object
  87. secretRef:
  88. description: AWSAuthSecretRef holds secret references
  89. for AWS credentials both AccessKeyID and SecretAccessKey
  90. must be defined in order to properly authenticate.
  91. properties:
  92. accessKeyIDSecretRef:
  93. description: The AccessKeyID is used for authentication
  94. properties:
  95. key:
  96. description: The key of the entry in the Secret
  97. resource's `data` field to be used. Some instances
  98. of this field may be defaulted, in others it
  99. may be required.
  100. type: string
  101. name:
  102. description: The name of the Secret resource being
  103. referred to.
  104. type: string
  105. namespace:
  106. description: Namespace of the resource being referred
  107. to. Ignored if referent is not cluster-scoped.
  108. cluster-scoped defaults to the namespace of
  109. the referent.
  110. type: string
  111. type: object
  112. secretAccessKeySecretRef:
  113. description: The SecretAccessKey is used for authentication
  114. properties:
  115. key:
  116. description: The key of the entry in the Secret
  117. resource's `data` field to be used. Some instances
  118. of this field may be defaulted, in others it
  119. may be required.
  120. type: string
  121. name:
  122. description: The name of the Secret resource being
  123. referred to.
  124. type: string
  125. namespace:
  126. description: Namespace of the resource being referred
  127. to. Ignored if referent is not cluster-scoped.
  128. cluster-scoped defaults to the namespace of
  129. the referent.
  130. type: string
  131. type: object
  132. type: object
  133. type: object
  134. region:
  135. description: AWS Region to be used for the provider
  136. type: string
  137. role:
  138. description: Role is a Role ARN which the SecretManager provider
  139. will assume
  140. type: string
  141. service:
  142. description: Service defines which service should be used
  143. to fetch the secrets
  144. enum:
  145. - SecretsManager
  146. - ParameterStore
  147. type: string
  148. required:
  149. - region
  150. - service
  151. type: object
  152. azurekv:
  153. description: AzureKV configures this store to sync secrets using
  154. Azure Key Vault provider
  155. properties:
  156. authSecretRef:
  157. description: Auth configures how the operator authenticates
  158. with Azure.
  159. properties:
  160. clientId:
  161. description: The Azure clientId of the service principle
  162. used for authentication.
  163. properties:
  164. key:
  165. description: The key of the entry in the Secret resource's
  166. `data` field to be used. Some instances of this
  167. field may be defaulted, in others it may be required.
  168. type: string
  169. name:
  170. description: The name of the Secret resource being
  171. referred to.
  172. type: string
  173. namespace:
  174. description: Namespace of the resource being referred
  175. to. Ignored if referent is not cluster-scoped. cluster-scoped
  176. defaults to the namespace of the referent.
  177. type: string
  178. type: object
  179. clientSecret:
  180. description: The Azure ClientSecret of the service principle
  181. used for authentication.
  182. properties:
  183. key:
  184. description: The key of the entry in the Secret resource's
  185. `data` field to be used. Some instances of this
  186. field may be defaulted, in others it may be required.
  187. type: string
  188. name:
  189. description: The name of the Secret resource being
  190. referred to.
  191. type: string
  192. namespace:
  193. description: Namespace of the resource being referred
  194. to. Ignored if referent is not cluster-scoped. cluster-scoped
  195. defaults to the namespace of the referent.
  196. type: string
  197. type: object
  198. required:
  199. - clientId
  200. - clientSecret
  201. type: object
  202. tenantId:
  203. description: TenantID configures the Azure Tenant to send
  204. requests to.
  205. type: string
  206. vaultUrl:
  207. description: Vault Url from which the secrets to be fetched
  208. from.
  209. type: string
  210. required:
  211. - authSecretRef
  212. - tenantId
  213. - vaultUrl
  214. type: object
  215. gcpsm:
  216. description: GCPSM configures this store to sync secrets using
  217. Google Cloud Platform Secret Manager provider
  218. properties:
  219. auth:
  220. description: Auth defines the information necessary to authenticate
  221. against GCP
  222. properties:
  223. secretRef:
  224. properties:
  225. secretAccessKeySecretRef:
  226. description: The SecretAccessKey is used for authentication
  227. properties:
  228. key:
  229. description: The key of the entry in the Secret
  230. resource's `data` field to be used. Some instances
  231. of this field may be defaulted, in others it
  232. may be required.
  233. type: string
  234. name:
  235. description: The name of the Secret resource being
  236. referred to.
  237. type: string
  238. namespace:
  239. description: Namespace of the resource being referred
  240. to. Ignored if referent is not cluster-scoped.
  241. cluster-scoped defaults to the namespace of
  242. the referent.
  243. type: string
  244. type: object
  245. type: object
  246. required:
  247. - secretRef
  248. type: object
  249. projectID:
  250. description: ProjectID project where secret is located
  251. type: string
  252. type: object
  253. gitlab:
  254. description: GItlab configures this store to sync secrets using
  255. Gitlab Variables provider
  256. properties:
  257. auth:
  258. description: Auth configures how secret-manager authenticates
  259. with the IBM secrets manager.
  260. properties:
  261. SecretRef:
  262. properties:
  263. accessToken:
  264. description: The Access Token is used for authentication
  265. properties:
  266. key:
  267. description: The key of the entry in the Secret
  268. resource's `data` field to be used. Some instances
  269. of this field may be defaulted, in others it
  270. may be required.
  271. type: string
  272. name:
  273. description: The name of the Secret resource being
  274. referred to.
  275. type: string
  276. namespace:
  277. description: Namespace of the resource being referred
  278. to. Ignored if referent is not cluster-scoped.
  279. cluster-scoped defaults to the namespace of
  280. the referent.
  281. type: string
  282. type: object
  283. type: object
  284. required:
  285. - SecretRef
  286. type: object
  287. projectID:
  288. description: ProjectID project where secret is located
  289. type: string
  290. required:
  291. - auth
  292. type: object
  293. ibm:
  294. description: IBM configures this store to sync secrets using IBM
  295. Cloud provider
  296. properties:
  297. auth:
  298. description: Auth configures how secret-manager authenticates
  299. with the IBM secrets manager.
  300. properties:
  301. secretRef:
  302. properties:
  303. secretApiKeySecretRef:
  304. description: The SecretAccessKey is used for authentication
  305. properties:
  306. key:
  307. description: The key of the entry in the Secret
  308. resource's `data` field to be used. Some instances
  309. of this field may be defaulted, in others it
  310. may be required.
  311. type: string
  312. name:
  313. description: The name of the Secret resource being
  314. referred to.
  315. type: string
  316. namespace:
  317. description: Namespace of the resource being referred
  318. to. Ignored if referent is not cluster-scoped.
  319. cluster-scoped defaults to the namespace of
  320. the referent.
  321. type: string
  322. type: object
  323. type: object
  324. required:
  325. - secretRef
  326. type: object
  327. serviceUrl:
  328. description: ServiceURL is the Endpoint URL that is specific
  329. to the Secrets Manager service instance
  330. type: string
  331. required:
  332. - auth
  333. type: object
  334. vault:
  335. description: Vault configures this store to sync secrets using
  336. Hashi provider
  337. properties:
  338. auth:
  339. description: Auth configures how secret-manager authenticates
  340. with the Vault server.
  341. properties:
  342. appRole:
  343. description: AppRole authenticates with Vault using the
  344. App Role auth mechanism, with the role and secret stored
  345. in a Kubernetes Secret resource.
  346. properties:
  347. path:
  348. default: approle
  349. description: 'Path where the App Role authentication
  350. backend is mounted in Vault, e.g: "approle"'
  351. type: string
  352. roleId:
  353. description: RoleID configured in the App Role authentication
  354. backend when setting up the authentication backend
  355. in Vault.
  356. type: string
  357. secretRef:
  358. description: Reference to a key in a Secret that contains
  359. the App Role secret used to authenticate with Vault.
  360. The `key` field must be specified and denotes which
  361. entry within the Secret resource is used as the
  362. app role secret.
  363. properties:
  364. key:
  365. description: The key of the entry in the Secret
  366. resource's `data` field to be used. Some instances
  367. of this field may be defaulted, in others it
  368. may be required.
  369. type: string
  370. name:
  371. description: The name of the Secret resource being
  372. referred to.
  373. type: string
  374. namespace:
  375. description: Namespace of the resource being referred
  376. to. Ignored if referent is not cluster-scoped.
  377. cluster-scoped defaults to the namespace of
  378. the referent.
  379. type: string
  380. type: object
  381. required:
  382. - path
  383. - roleId
  384. - secretRef
  385. type: object
  386. cert:
  387. description: Cert authenticates with TLS Certificates
  388. by passing client certificate, private key and ca certificate
  389. Cert authentication method
  390. properties:
  391. clientCert:
  392. description: ClientCert is a certificate to authenticate
  393. using the Cert Vault authentication method
  394. properties:
  395. key:
  396. description: The key of the entry in the Secret
  397. resource's `data` field to be used. Some instances
  398. of this field may be defaulted, in others it
  399. may be required.
  400. type: string
  401. name:
  402. description: The name of the Secret resource being
  403. referred to.
  404. type: string
  405. namespace:
  406. description: Namespace of the resource being referred
  407. to. Ignored if referent is not cluster-scoped.
  408. cluster-scoped defaults to the namespace of
  409. the referent.
  410. type: string
  411. type: object
  412. secretRef:
  413. description: SecretRef to a key in a Secret resource
  414. containing client private key to authenticate with
  415. Vault using the Cert authentication method
  416. properties:
  417. key:
  418. description: The key of the entry in the Secret
  419. resource's `data` field to be used. Some instances
  420. of this field may be defaulted, in others it
  421. may be required.
  422. type: string
  423. name:
  424. description: The name of the Secret resource being
  425. referred to.
  426. type: string
  427. namespace:
  428. description: Namespace of the resource being referred
  429. to. Ignored if referent is not cluster-scoped.
  430. cluster-scoped defaults to the namespace of
  431. the referent.
  432. type: string
  433. type: object
  434. type: object
  435. jwt:
  436. description: Jwt authenticates with Vault by passing role
  437. and JWT token using the JWT/OIDC authentication method
  438. properties:
  439. role:
  440. description: Role is a JWT role to authenticate using
  441. the JWT/OIDC Vault authentication method
  442. type: string
  443. secretRef:
  444. description: SecretRef to a key in a Secret resource
  445. containing JWT token to authenticate with Vault
  446. using the JWT/OIDC authentication method
  447. properties:
  448. key:
  449. description: The key of the entry in the Secret
  450. resource's `data` field to be used. Some instances
  451. of this field may be defaulted, in others it
  452. may be required.
  453. type: string
  454. name:
  455. description: The name of the Secret resource being
  456. referred to.
  457. type: string
  458. namespace:
  459. description: Namespace of the resource being referred
  460. to. Ignored if referent is not cluster-scoped.
  461. cluster-scoped defaults to the namespace of
  462. the referent.
  463. type: string
  464. type: object
  465. type: object
  466. kubernetes:
  467. description: Kubernetes authenticates with Vault by passing
  468. the ServiceAccount token stored in the named Secret
  469. resource to the Vault server.
  470. properties:
  471. mountPath:
  472. default: kubernetes
  473. description: 'Path where the Kubernetes authentication
  474. backend is mounted in Vault, e.g: "kubernetes"'
  475. type: string
  476. role:
  477. description: A required field containing the Vault
  478. Role to assume. A Role binds a Kubernetes ServiceAccount
  479. with a set of Vault policies.
  480. type: string
  481. secretRef:
  482. description: Optional secret field containing a Kubernetes
  483. ServiceAccount JWT used for authenticating with
  484. Vault. If a name is specified without a key, `token`
  485. is the default. If one is not specified, the one
  486. bound to the controller will be used.
  487. properties:
  488. key:
  489. description: The key of the entry in the Secret
  490. resource's `data` field to be used. Some instances
  491. of this field may be defaulted, in others it
  492. may be required.
  493. type: string
  494. name:
  495. description: The name of the Secret resource being
  496. referred to.
  497. type: string
  498. namespace:
  499. description: Namespace of the resource being referred
  500. to. Ignored if referent is not cluster-scoped.
  501. cluster-scoped defaults to the namespace of
  502. the referent.
  503. type: string
  504. type: object
  505. serviceAccountRef:
  506. description: Optional service account field containing
  507. the name of a kubernetes ServiceAccount. If the
  508. service account is specified, the service account
  509. secret token JWT will be used for authenticating
  510. with Vault. If the service account selector is not
  511. supplied, the secretRef will be used instead.
  512. properties:
  513. name:
  514. description: The name of the ServiceAccount resource
  515. being referred to.
  516. type: string
  517. namespace:
  518. description: Namespace of the resource being referred
  519. to. Ignored if referent is not cluster-scoped.
  520. cluster-scoped defaults to the namespace of
  521. the referent.
  522. type: string
  523. required:
  524. - name
  525. type: object
  526. required:
  527. - mountPath
  528. - role
  529. type: object
  530. ldap:
  531. description: Ldap authenticates with Vault by passing
  532. username/password pair using the LDAP authentication
  533. method
  534. properties:
  535. secretRef:
  536. description: SecretRef to a key in a Secret resource
  537. containing password for the LDAP user used to authenticate
  538. with Vault using the LDAP authentication method
  539. properties:
  540. key:
  541. description: The key of the entry in the Secret
  542. resource's `data` field to be used. Some instances
  543. of this field may be defaulted, in others it
  544. may be required.
  545. type: string
  546. name:
  547. description: The name of the Secret resource being
  548. referred to.
  549. type: string
  550. namespace:
  551. description: Namespace of the resource being referred
  552. to. Ignored if referent is not cluster-scoped.
  553. cluster-scoped defaults to the namespace of
  554. the referent.
  555. type: string
  556. type: object
  557. username:
  558. description: Username is a LDAP user name used to
  559. authenticate using the LDAP Vault authentication
  560. method
  561. type: string
  562. required:
  563. - username
  564. type: object
  565. tokenSecretRef:
  566. description: TokenSecretRef authenticates with Vault by
  567. presenting a token.
  568. properties:
  569. key:
  570. description: The key of the entry in the Secret resource's
  571. `data` field to be used. Some instances of this
  572. field may be defaulted, in others it may be required.
  573. type: string
  574. name:
  575. description: The name of the Secret resource being
  576. referred to.
  577. type: string
  578. namespace:
  579. description: Namespace of the resource being referred
  580. to. Ignored if referent is not cluster-scoped. cluster-scoped
  581. defaults to the namespace of the referent.
  582. type: string
  583. type: object
  584. type: object
  585. caBundle:
  586. description: PEM encoded CA bundle used to validate Vault
  587. server certificate. Only used if the Server URL is using
  588. HTTPS protocol. This parameter is ignored for plain HTTP
  589. protocol connection. If not set the system root certificates
  590. are used to validate the TLS connection.
  591. format: byte
  592. type: string
  593. namespace:
  594. description: 'Name of the vault namespace. Namespaces is a
  595. set of features within Vault Enterprise that allows Vault
  596. environments to support Secure Multi-tenancy. e.g: "ns1".
  597. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  598. type: string
  599. path:
  600. description: 'Path is the mount path of the Vault KV backend
  601. endpoint, e.g: "secret". The v2 KV secret engine version
  602. specific "/data" path suffix for fetching secrets from Vault
  603. is optional and will be appended if not present in specified
  604. path.'
  605. type: string
  606. server:
  607. description: 'Server is the connection address for the Vault
  608. server, e.g: "https://vault.example.com:8200".'
  609. type: string
  610. version:
  611. default: v2
  612. description: Version is the Vault KV secret engine version.
  613. This can be either "v1" or "v2". Version defaults to "v2".
  614. enum:
  615. - v1
  616. - v2
  617. type: string
  618. required:
  619. - auth
  620. - path
  621. - server
  622. type: object
  623. yandexlockbox:
  624. description: YandexLockbox configures this store to sync secrets
  625. using Yandex Lockbox provider
  626. properties:
  627. apiEndpoint:
  628. description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
  629. type: string
  630. auth:
  631. description: Auth defines the information necessary to authenticate
  632. against Yandex Lockbox
  633. properties:
  634. authorizedKeySecretRef:
  635. description: The authorized key used for authentication
  636. properties:
  637. key:
  638. description: The key of the entry in the Secret resource's
  639. `data` field to be used. Some instances of this
  640. field may be defaulted, in others it may be required.
  641. type: string
  642. name:
  643. description: The name of the Secret resource being
  644. referred to.
  645. type: string
  646. namespace:
  647. description: Namespace of the resource being referred
  648. to. Ignored if referent is not cluster-scoped. cluster-scoped
  649. defaults to the namespace of the referent.
  650. type: string
  651. type: object
  652. type: object
  653. required:
  654. - auth
  655. type: object
  656. type: object
  657. required:
  658. - provider
  659. type: object
  660. status:
  661. description: SecretStoreStatus defines the observed state of the SecretStore.
  662. properties:
  663. conditions:
  664. items:
  665. properties:
  666. lastTransitionTime:
  667. format: date-time
  668. type: string
  669. message:
  670. type: string
  671. reason:
  672. type: string
  673. status:
  674. type: string
  675. type:
  676. type: string
  677. required:
  678. - status
  679. - type
  680. type: object
  681. type: array
  682. type: object
  683. type: object
  684. served: true
  685. storage: true
  686. subresources:
  687. status: {}
  688. status:
  689. acceptedNames:
  690. kind: ""
  691. plural: ""
  692. conditions: []
  693. storedVersions: []