external-secrets.io_secretstores.yaml 33 KB

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