external-secrets.io_secretstores.yaml 32 KB

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