external-secrets.io_secretstores.yaml 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698
  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 a GitLab instance.
  260. properties:
  261. SecretRef:
  262. properties:
  263. accessToken:
  264. description: AccessToken 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 specifies a project where secrets are
  289. located.
  290. type: string
  291. url:
  292. description: URL configures the GitLab instance URL. Defaults
  293. to https://gitlab.com/.
  294. type: string
  295. required:
  296. - auth
  297. type: object
  298. ibm:
  299. description: IBM configures this store to sync secrets using IBM
  300. Cloud provider
  301. properties:
  302. auth:
  303. description: Auth configures how secret-manager authenticates
  304. with the IBM secrets manager.
  305. properties:
  306. secretRef:
  307. properties:
  308. secretApiKeySecretRef:
  309. description: The SecretAccessKey is used for authentication
  310. properties:
  311. key:
  312. description: The key of the entry in the Secret
  313. resource's `data` field to be used. Some instances
  314. of this field may be defaulted, in others it
  315. may be required.
  316. type: string
  317. name:
  318. description: The name of the Secret resource being
  319. referred to.
  320. type: string
  321. namespace:
  322. description: Namespace of the resource being referred
  323. to. Ignored if referent is not cluster-scoped.
  324. cluster-scoped defaults to the namespace of
  325. the referent.
  326. type: string
  327. type: object
  328. type: object
  329. required:
  330. - secretRef
  331. type: object
  332. serviceUrl:
  333. description: ServiceURL is the Endpoint URL that is specific
  334. to the Secrets Manager service instance
  335. type: string
  336. required:
  337. - auth
  338. type: object
  339. vault:
  340. description: Vault configures this store to sync secrets using
  341. Hashi provider
  342. properties:
  343. auth:
  344. description: Auth configures how secret-manager authenticates
  345. with the Vault server.
  346. properties:
  347. appRole:
  348. description: AppRole authenticates with Vault using the
  349. App Role auth mechanism, with the role and secret stored
  350. in a Kubernetes Secret resource.
  351. properties:
  352. path:
  353. default: approle
  354. description: 'Path where the App Role authentication
  355. backend is mounted in Vault, e.g: "approle"'
  356. type: string
  357. roleId:
  358. description: RoleID configured in the App Role authentication
  359. backend when setting up the authentication backend
  360. in Vault.
  361. type: string
  362. secretRef:
  363. description: Reference to a key in a Secret that contains
  364. the App Role secret used to authenticate with Vault.
  365. The `key` field must be specified and denotes which
  366. entry within the Secret resource is used as the
  367. app role secret.
  368. properties:
  369. key:
  370. description: The key of the entry in the Secret
  371. resource's `data` field to be used. Some instances
  372. of this field may be defaulted, in others it
  373. may be required.
  374. type: string
  375. name:
  376. description: The name of the Secret resource being
  377. referred to.
  378. type: string
  379. namespace:
  380. description: Namespace of the resource being referred
  381. to. Ignored if referent is not cluster-scoped.
  382. cluster-scoped defaults to the namespace of
  383. the referent.
  384. type: string
  385. type: object
  386. required:
  387. - path
  388. - roleId
  389. - secretRef
  390. type: object
  391. cert:
  392. description: Cert authenticates with TLS Certificates
  393. by passing client certificate, private key and ca certificate
  394. Cert authentication method
  395. properties:
  396. clientCert:
  397. description: ClientCert is a certificate to authenticate
  398. using the Cert Vault authentication method
  399. properties:
  400. key:
  401. description: The key of the entry in the Secret
  402. resource's `data` field to be used. Some instances
  403. of this field may be defaulted, in others it
  404. may be required.
  405. type: string
  406. name:
  407. description: The name of the Secret resource being
  408. referred to.
  409. type: string
  410. namespace:
  411. description: Namespace of the resource being referred
  412. to. Ignored if referent is not cluster-scoped.
  413. cluster-scoped defaults to the namespace of
  414. the referent.
  415. type: string
  416. type: object
  417. secretRef:
  418. description: SecretRef to a key in a Secret resource
  419. containing client private key to authenticate with
  420. Vault using the Cert authentication method
  421. properties:
  422. key:
  423. description: The key of the entry in the Secret
  424. resource's `data` field to be used. Some instances
  425. of this field may be defaulted, in others it
  426. may be required.
  427. type: string
  428. name:
  429. description: The name of the Secret resource being
  430. referred to.
  431. type: string
  432. namespace:
  433. description: Namespace of the resource being referred
  434. to. Ignored if referent is not cluster-scoped.
  435. cluster-scoped defaults to the namespace of
  436. the referent.
  437. type: string
  438. type: object
  439. type: object
  440. jwt:
  441. description: Jwt authenticates with Vault by passing role
  442. and JWT token using the JWT/OIDC authentication method
  443. properties:
  444. role:
  445. description: Role is a JWT role to authenticate using
  446. the JWT/OIDC Vault authentication method
  447. type: string
  448. secretRef:
  449. description: SecretRef to a key in a Secret resource
  450. containing JWT token to authenticate with Vault
  451. using the JWT/OIDC authentication method
  452. properties:
  453. key:
  454. description: The key of the entry in the Secret
  455. resource's `data` field to be used. Some instances
  456. of this field may be defaulted, in others it
  457. may be required.
  458. type: string
  459. name:
  460. description: The name of the Secret resource being
  461. referred to.
  462. type: string
  463. namespace:
  464. description: Namespace of the resource being referred
  465. to. Ignored if referent is not cluster-scoped.
  466. cluster-scoped defaults to the namespace of
  467. the referent.
  468. type: string
  469. type: object
  470. type: object
  471. kubernetes:
  472. description: Kubernetes authenticates with Vault by passing
  473. the ServiceAccount token stored in the named Secret
  474. resource to the Vault server.
  475. properties:
  476. mountPath:
  477. default: kubernetes
  478. description: 'Path where the Kubernetes authentication
  479. backend is mounted in Vault, e.g: "kubernetes"'
  480. type: string
  481. role:
  482. description: A required field containing the Vault
  483. Role to assume. A Role binds a Kubernetes ServiceAccount
  484. with a set of Vault policies.
  485. type: string
  486. secretRef:
  487. description: Optional secret field containing a Kubernetes
  488. ServiceAccount JWT used for authenticating with
  489. Vault. If a name is specified without a key, `token`
  490. is the default. If one is not specified, the one
  491. bound to the controller will be used.
  492. properties:
  493. key:
  494. description: The key of the entry in the Secret
  495. resource's `data` field to be used. Some instances
  496. of this field may be defaulted, in others it
  497. may be required.
  498. type: string
  499. name:
  500. description: The name of the Secret resource being
  501. referred to.
  502. type: string
  503. namespace:
  504. description: Namespace of the resource being referred
  505. to. Ignored if referent is not cluster-scoped.
  506. cluster-scoped defaults to the namespace of
  507. the referent.
  508. type: string
  509. type: object
  510. serviceAccountRef:
  511. description: Optional service account field containing
  512. the name of a kubernetes ServiceAccount. If the
  513. service account is specified, the service account
  514. secret token JWT will be used for authenticating
  515. with Vault. If the service account selector is not
  516. supplied, the secretRef will be used instead.
  517. properties:
  518. name:
  519. description: The name of the ServiceAccount resource
  520. being referred to.
  521. type: string
  522. namespace:
  523. description: Namespace of the resource being referred
  524. to. Ignored if referent is not cluster-scoped.
  525. cluster-scoped defaults to the namespace of
  526. the referent.
  527. type: string
  528. required:
  529. - name
  530. type: object
  531. required:
  532. - mountPath
  533. - role
  534. type: object
  535. ldap:
  536. description: Ldap authenticates with Vault by passing
  537. username/password pair using the LDAP authentication
  538. method
  539. properties:
  540. secretRef:
  541. description: SecretRef to a key in a Secret resource
  542. containing password for the LDAP user used to authenticate
  543. with Vault using the LDAP authentication method
  544. properties:
  545. key:
  546. description: The key of the entry in the Secret
  547. resource's `data` field to be used. Some instances
  548. of this field may be defaulted, in others it
  549. may be required.
  550. type: string
  551. name:
  552. description: The name of the Secret resource being
  553. referred to.
  554. type: string
  555. namespace:
  556. description: Namespace of the resource being referred
  557. to. Ignored if referent is not cluster-scoped.
  558. cluster-scoped defaults to the namespace of
  559. the referent.
  560. type: string
  561. type: object
  562. username:
  563. description: Username is a LDAP user name used to
  564. authenticate using the LDAP Vault authentication
  565. method
  566. type: string
  567. required:
  568. - username
  569. type: object
  570. tokenSecretRef:
  571. description: TokenSecretRef authenticates with Vault by
  572. presenting a token.
  573. properties:
  574. key:
  575. description: The key of the entry in the Secret resource's
  576. `data` field to be used. Some instances of this
  577. field may be defaulted, in others it may be required.
  578. type: string
  579. name:
  580. description: The name of the Secret resource being
  581. referred to.
  582. type: string
  583. namespace:
  584. description: Namespace of the resource being referred
  585. to. Ignored if referent is not cluster-scoped. cluster-scoped
  586. defaults to the namespace of the referent.
  587. type: string
  588. type: object
  589. type: object
  590. caBundle:
  591. description: PEM encoded CA bundle used to validate Vault
  592. server certificate. Only used if the Server URL is using
  593. HTTPS protocol. This parameter is ignored for plain HTTP
  594. protocol connection. If not set the system root certificates
  595. are used to validate the TLS connection.
  596. format: byte
  597. type: string
  598. namespace:
  599. description: 'Name of the vault namespace. Namespaces is a
  600. set of features within Vault Enterprise that allows Vault
  601. environments to support Secure Multi-tenancy. e.g: "ns1".
  602. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  603. type: string
  604. path:
  605. description: 'Path is the mount path of the Vault KV backend
  606. endpoint, e.g: "secret". The v2 KV secret engine version
  607. specific "/data" path suffix for fetching secrets from Vault
  608. is optional and will be appended if not present in specified
  609. path.'
  610. type: string
  611. server:
  612. description: 'Server is the connection address for the Vault
  613. server, e.g: "https://vault.example.com:8200".'
  614. type: string
  615. version:
  616. default: v2
  617. description: Version is the Vault KV secret engine version.
  618. This can be either "v1" or "v2". Version defaults to "v2".
  619. enum:
  620. - v1
  621. - v2
  622. type: string
  623. required:
  624. - auth
  625. - path
  626. - server
  627. type: object
  628. yandexlockbox:
  629. description: YandexLockbox configures this store to sync secrets
  630. using Yandex Lockbox provider
  631. properties:
  632. apiEndpoint:
  633. description: Yandex.Cloud API endpoint (e.g. 'api.cloud.yandex.net:443')
  634. type: string
  635. auth:
  636. description: Auth defines the information necessary to authenticate
  637. against Yandex Lockbox
  638. properties:
  639. authorizedKeySecretRef:
  640. description: The authorized key used for authentication
  641. properties:
  642. key:
  643. description: The key of the entry in the Secret resource's
  644. `data` field to be used. Some instances of this
  645. field may be defaulted, in others it may be required.
  646. type: string
  647. name:
  648. description: The name of the Secret resource being
  649. referred to.
  650. type: string
  651. namespace:
  652. description: Namespace of the resource being referred
  653. to. Ignored if referent is not cluster-scoped. cluster-scoped
  654. defaults to the namespace of the referent.
  655. type: string
  656. type: object
  657. type: object
  658. required:
  659. - auth
  660. type: object
  661. type: object
  662. required:
  663. - provider
  664. type: object
  665. status:
  666. description: SecretStoreStatus defines the observed state of the SecretStore.
  667. properties:
  668. conditions:
  669. items:
  670. properties:
  671. lastTransitionTime:
  672. format: date-time
  673. type: string
  674. message:
  675. type: string
  676. reason:
  677. type: string
  678. status:
  679. type: string
  680. type:
  681. type: string
  682. required:
  683. - status
  684. - type
  685. type: object
  686. type: array
  687. type: object
  688. type: object
  689. served: true
  690. storage: true
  691. subresources:
  692. status: {}
  693. status:
  694. acceptedNames:
  695. kind: ""
  696. plural: ""
  697. conditions: []
  698. storedVersions: []