external-secrets.io_secretstores.yaml 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  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. required:
  112. - name
  113. type: object
  114. secretAccessKeySecretRef:
  115. description: The SecretAccessKey is used for authentication
  116. properties:
  117. key:
  118. description: The key of the entry in the Secret
  119. resource's `data` field to be used. Some instances
  120. of this field may be defaulted, in others it
  121. may be required.
  122. type: string
  123. name:
  124. description: The name of the Secret resource being
  125. referred to.
  126. type: string
  127. namespace:
  128. description: Namespace of the resource being referred
  129. to. Ignored if referent is not cluster-scoped.
  130. cluster-scoped defaults to the namespace of
  131. the referent.
  132. type: string
  133. required:
  134. - name
  135. type: object
  136. type: object
  137. type: object
  138. region:
  139. description: AWS Region to be used for the provider
  140. type: string
  141. role:
  142. description: Role is a Role ARN which the SecretManager provider
  143. will assume
  144. type: string
  145. service:
  146. description: Service defines which service should be used
  147. to fetch the secrets
  148. enum:
  149. - SecretsManager
  150. - ParameterStore
  151. type: string
  152. required:
  153. - region
  154. - service
  155. type: object
  156. azurekv:
  157. description: AzureKV configures this store to sync secrets using
  158. Azure Key Vault provider
  159. properties:
  160. authSecretRef:
  161. description: Auth configures how the operator authenticates
  162. with Azure.
  163. properties:
  164. clientId:
  165. description: The Azure clientId of the service principle
  166. used for authentication.
  167. properties:
  168. key:
  169. description: The key of the entry in the Secret resource's
  170. `data` field to be used. Some instances of this
  171. field may be defaulted, in others it may be required.
  172. type: string
  173. name:
  174. description: The name of the Secret resource being
  175. referred to.
  176. type: string
  177. namespace:
  178. description: Namespace of the resource being referred
  179. to. Ignored if referent is not cluster-scoped. cluster-scoped
  180. defaults to the namespace of the referent.
  181. type: string
  182. required:
  183. - name
  184. type: object
  185. clientSecret:
  186. description: The Azure ClientSecret of the service principle
  187. used for authentication.
  188. properties:
  189. key:
  190. description: The key of the entry in the Secret resource's
  191. `data` field to be used. Some instances of this
  192. field may be defaulted, in others it may be required.
  193. type: string
  194. name:
  195. description: The name of the Secret resource being
  196. referred to.
  197. type: string
  198. namespace:
  199. description: Namespace of the resource being referred
  200. to. Ignored if referent is not cluster-scoped. cluster-scoped
  201. defaults to the namespace of the referent.
  202. type: string
  203. required:
  204. - name
  205. type: object
  206. required:
  207. - clientId
  208. - clientSecret
  209. type: object
  210. tenantId:
  211. description: TenantID configures the Azure Tenant to send
  212. requests to.
  213. type: string
  214. vaultUrl:
  215. description: Vault Url from which the secrets to be fetched
  216. from.
  217. type: string
  218. required:
  219. - authSecretRef
  220. - tenantId
  221. - vaultUrl
  222. type: object
  223. gcpsm:
  224. description: GCPSM configures this store to sync secrets using
  225. Google Cloud Platform Secret Manager provider
  226. properties:
  227. auth:
  228. description: Auth defines the information necessary to authenticate
  229. against GCP
  230. properties:
  231. secretRef:
  232. properties:
  233. secretAccessKeySecretRef:
  234. description: The SecretAccessKey is used for authentication
  235. properties:
  236. key:
  237. description: The key of the entry in the Secret
  238. resource's `data` field to be used. Some instances
  239. of this field may be defaulted, in others it
  240. may be required.
  241. type: string
  242. name:
  243. description: The name of the Secret resource being
  244. referred to.
  245. type: string
  246. namespace:
  247. description: Namespace of the resource being referred
  248. to. Ignored if referent is not cluster-scoped.
  249. cluster-scoped defaults to the namespace of
  250. the referent.
  251. type: string
  252. required:
  253. - name
  254. type: object
  255. type: object
  256. required:
  257. - secretRef
  258. type: object
  259. projectID:
  260. description: ProjectID project where secret is located
  261. type: string
  262. required:
  263. - auth
  264. type: object
  265. ibm:
  266. description: IBM configures this store to sync secrets using IBM
  267. Cloud provider
  268. properties:
  269. auth:
  270. description: Auth configures how secret-manager authenticates
  271. with the IBM secrets manager.
  272. properties:
  273. secretRef:
  274. properties:
  275. secretApiKeySecretRef:
  276. description: The SecretAccessKey is used for authentication
  277. properties:
  278. key:
  279. description: The key of the entry in the Secret
  280. resource's `data` field to be used. Some instances
  281. of this field may be defaulted, in others it
  282. may be required.
  283. type: string
  284. name:
  285. description: The name of the Secret resource being
  286. referred to.
  287. type: string
  288. namespace:
  289. description: Namespace of the resource being referred
  290. to. Ignored if referent is not cluster-scoped.
  291. cluster-scoped defaults to the namespace of
  292. the referent.
  293. type: string
  294. required:
  295. - name
  296. type: object
  297. type: object
  298. required:
  299. - secretRef
  300. type: object
  301. serviceUrl:
  302. description: ServiceURL is the Endpoint URL that is specific
  303. to the Secrets Manager service instance
  304. type: string
  305. required:
  306. - auth
  307. type: object
  308. vault:
  309. description: Vault configures this store to sync secrets using
  310. Hashi provider
  311. properties:
  312. auth:
  313. description: Auth configures how secret-manager authenticates
  314. with the Vault server.
  315. properties:
  316. appRole:
  317. description: AppRole authenticates with Vault using the
  318. App Role auth mechanism, with the role and secret stored
  319. in a Kubernetes Secret resource.
  320. properties:
  321. path:
  322. default: approle
  323. description: 'Path where the App Role authentication
  324. backend is mounted in Vault, e.g: "approle"'
  325. type: string
  326. roleId:
  327. description: RoleID configured in the App Role authentication
  328. backend when setting up the authentication backend
  329. in Vault.
  330. type: string
  331. secretRef:
  332. description: Reference to a key in a Secret that contains
  333. the App Role secret used to authenticate with Vault.
  334. The `key` field must be specified and denotes which
  335. entry within the Secret resource is used as the
  336. app role secret.
  337. properties:
  338. key:
  339. description: The key of the entry in the Secret
  340. resource's `data` field to be used. Some instances
  341. of this field may be defaulted, in others it
  342. may be required.
  343. type: string
  344. name:
  345. description: The name of the Secret resource being
  346. referred to.
  347. type: string
  348. namespace:
  349. description: Namespace of the resource being referred
  350. to. Ignored if referent is not cluster-scoped.
  351. cluster-scoped defaults to the namespace of
  352. the referent.
  353. type: string
  354. required:
  355. - name
  356. type: object
  357. required:
  358. - path
  359. - roleId
  360. - secretRef
  361. type: object
  362. cert:
  363. description: Cert authenticates with TLS Certificates
  364. by passing client certificate, private key and ca certificate
  365. Cert authentication method
  366. properties:
  367. clientCert:
  368. description: ClientCert is a certificate to authenticate
  369. using the Cert Vault authentication method
  370. properties:
  371. key:
  372. description: The key of the entry in the Secret
  373. resource's `data` field to be used. Some instances
  374. of this field may be defaulted, in others it
  375. may be required.
  376. type: string
  377. name:
  378. description: The name of the Secret resource being
  379. referred to.
  380. type: string
  381. namespace:
  382. description: Namespace of the resource being referred
  383. to. Ignored if referent is not cluster-scoped.
  384. cluster-scoped defaults to the namespace of
  385. the referent.
  386. type: string
  387. required:
  388. - name
  389. type: object
  390. secretRef:
  391. description: SecretRef to a key in a Secret resource
  392. containing client private key to authenticate with
  393. Vault using the Cert 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. required:
  412. - name
  413. type: object
  414. type: object
  415. jwt:
  416. description: Jwt authenticates with Vault by passing role
  417. and JWT token using the JWT/OIDC authentication method
  418. properties:
  419. role:
  420. description: Role is a JWT role to authenticate using
  421. the JWT/OIDC Vault authentication method
  422. type: string
  423. secretRef:
  424. description: SecretRef to a key in a Secret resource
  425. containing JWT token to authenticate with Vault
  426. using the JWT/OIDC authentication method
  427. properties:
  428. key:
  429. description: The key of the entry in the Secret
  430. resource's `data` field to be used. Some instances
  431. of this field may be defaulted, in others it
  432. may be required.
  433. type: string
  434. name:
  435. description: The name of the Secret resource being
  436. referred to.
  437. type: string
  438. namespace:
  439. description: Namespace of the resource being referred
  440. to. Ignored if referent is not cluster-scoped.
  441. cluster-scoped defaults to the namespace of
  442. the referent.
  443. type: string
  444. required:
  445. - name
  446. type: object
  447. type: object
  448. kubernetes:
  449. description: Kubernetes authenticates with Vault by passing
  450. the ServiceAccount token stored in the named Secret
  451. resource to the Vault server.
  452. properties:
  453. mountPath:
  454. default: kubernetes
  455. description: 'Path where the Kubernetes authentication
  456. backend is mounted in Vault, e.g: "kubernetes"'
  457. type: string
  458. role:
  459. description: A required field containing the Vault
  460. Role to assume. A Role binds a Kubernetes ServiceAccount
  461. with a set of Vault policies.
  462. type: string
  463. secretRef:
  464. description: Optional secret field containing a Kubernetes
  465. ServiceAccount JWT used for authenticating with
  466. Vault. If a name is specified without a key, `token`
  467. is the default. If one is not specified, the one
  468. bound to the controller will be used.
  469. properties:
  470. key:
  471. description: The key of the entry in the Secret
  472. resource's `data` field to be used. Some instances
  473. of this field may be defaulted, in others it
  474. may be required.
  475. type: string
  476. name:
  477. description: The name of the Secret resource being
  478. referred to.
  479. type: string
  480. namespace:
  481. description: Namespace of the resource being referred
  482. to. Ignored if referent is not cluster-scoped.
  483. cluster-scoped defaults to the namespace of
  484. the referent.
  485. type: string
  486. required:
  487. - name
  488. type: object
  489. serviceAccountRef:
  490. description: Optional service account field containing
  491. the name of a kubernetes ServiceAccount. If the
  492. service account is specified, the service account
  493. secret token JWT will be used for authenticating
  494. with Vault. If the service account selector is not
  495. supplied, the secretRef will be used instead.
  496. properties:
  497. name:
  498. description: The name of the ServiceAccount resource
  499. being referred to.
  500. type: string
  501. namespace:
  502. description: Namespace of the resource being referred
  503. to. Ignored if referent is not cluster-scoped.
  504. cluster-scoped defaults to the namespace of
  505. the referent.
  506. type: string
  507. required:
  508. - name
  509. type: object
  510. required:
  511. - mountPath
  512. - role
  513. type: object
  514. ldap:
  515. description: Ldap authenticates with Vault by passing
  516. username/password pair using the LDAP authentication
  517. method
  518. properties:
  519. secretRef:
  520. description: SecretRef to a key in a Secret resource
  521. containing password for the LDAP user used to authenticate
  522. with Vault using the LDAP authentication method
  523. properties:
  524. key:
  525. description: The key of the entry in the Secret
  526. resource's `data` field to be used. Some instances
  527. of this field may be defaulted, in others it
  528. may be required.
  529. type: string
  530. name:
  531. description: The name of the Secret resource being
  532. referred to.
  533. type: string
  534. namespace:
  535. description: Namespace of the resource being referred
  536. to. Ignored if referent is not cluster-scoped.
  537. cluster-scoped defaults to the namespace of
  538. the referent.
  539. type: string
  540. required:
  541. - name
  542. type: object
  543. username:
  544. description: Username is a LDAP user name used to
  545. authenticate using the LDAP Vault authentication
  546. method
  547. type: string
  548. required:
  549. - username
  550. type: object
  551. tokenSecretRef:
  552. description: TokenSecretRef authenticates with Vault by
  553. presenting a token.
  554. properties:
  555. key:
  556. description: The key of the entry in the Secret resource's
  557. `data` field to be used. Some instances of this
  558. field may be defaulted, in others it may be required.
  559. type: string
  560. name:
  561. description: The name of the Secret resource being
  562. referred to.
  563. type: string
  564. namespace:
  565. description: Namespace of the resource being referred
  566. to. Ignored if referent is not cluster-scoped. cluster-scoped
  567. defaults to the namespace of the referent.
  568. type: string
  569. required:
  570. - name
  571. type: object
  572. type: object
  573. caBundle:
  574. description: PEM encoded CA bundle used to validate Vault
  575. server certificate. Only used if the Server URL is using
  576. HTTPS protocol. This parameter is ignored for plain HTTP
  577. protocol connection. If not set the system root certificates
  578. are used to validate the TLS connection.
  579. format: byte
  580. type: string
  581. namespace:
  582. description: 'Name of the vault namespace. Namespaces is a
  583. set of features within Vault Enterprise that allows Vault
  584. environments to support Secure Multi-tenancy. e.g: "ns1".
  585. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  586. type: string
  587. path:
  588. description: 'Path is the mount path of the Vault KV backend
  589. endpoint, e.g: "secret". The v2 KV secret engine version
  590. specific "/data" path suffix for fetching secrets from Vault
  591. is optional and will be appended if not present in specified
  592. path.'
  593. type: string
  594. server:
  595. description: 'Server is the connection address for the Vault
  596. server, e.g: "https://vault.example.com:8200".'
  597. type: string
  598. version:
  599. default: v2
  600. description: Version is the Vault KV secret engine version.
  601. This can be either "v1" or "v2". Version defaults to "v2".
  602. enum:
  603. - v1
  604. - v2
  605. type: string
  606. required:
  607. - auth
  608. - path
  609. - server
  610. type: object
  611. type: object
  612. required:
  613. - provider
  614. type: object
  615. status:
  616. description: SecretStoreStatus defines the observed state of the SecretStore.
  617. properties:
  618. conditions:
  619. items:
  620. properties:
  621. lastTransitionTime:
  622. format: date-time
  623. type: string
  624. message:
  625. type: string
  626. reason:
  627. type: string
  628. status:
  629. type: string
  630. type:
  631. type: string
  632. required:
  633. - status
  634. - type
  635. type: object
  636. type: array
  637. type: object
  638. type: object
  639. served: true
  640. storage: true
  641. subresources:
  642. status: {}
  643. status:
  644. acceptedNames:
  645. kind: ""
  646. plural: ""
  647. conditions: []
  648. storedVersions: []