external-secrets.io_secretstores.yaml 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614
  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. caCert:
  350. description: CACert is the Vault TLS Listener CA certificate
  351. type: string
  352. clientCert:
  353. description: ClientCert is a certificate to authenticate
  354. using the Cert Vault authentication method
  355. type: string
  356. secretRef:
  357. description: SecretRef to a key in a Secret resource
  358. containing client private key to authenticate with
  359. Vault using the Cert authentication method
  360. properties:
  361. key:
  362. description: The key of the entry in the Secret
  363. resource's `data` field to be used. Some instances
  364. of this field may be defaulted, in others it
  365. may be required.
  366. type: string
  367. name:
  368. description: The name of the Secret resource being
  369. referred to.
  370. type: string
  371. namespace:
  372. description: Namespace of the resource being referred
  373. to. Ignored if referent is not cluster-scoped.
  374. cluster-scoped defaults to the namespace of
  375. the referent.
  376. type: string
  377. required:
  378. - name
  379. type: object
  380. type: object
  381. jwt:
  382. description: Jwt authenticates with Vault by passing role
  383. and JWT token using the JWT/OIDC authentication method
  384. properties:
  385. role:
  386. description: Role is a JWT role to authenticate using
  387. the JWT/OIDC Vault authentication method
  388. type: string
  389. secretRef:
  390. description: SecretRef to a key in a Secret resource
  391. containing JWT token to authenticate with Vault
  392. using the JWT/OIDC authentication method
  393. properties:
  394. key:
  395. description: The key of the entry in the Secret
  396. resource's `data` field to be used. Some instances
  397. of this field may be defaulted, in others it
  398. may be required.
  399. type: string
  400. name:
  401. description: The name of the Secret resource being
  402. referred to.
  403. type: string
  404. namespace:
  405. description: Namespace of the resource being referred
  406. to. Ignored if referent is not cluster-scoped.
  407. cluster-scoped defaults to the namespace of
  408. the referent.
  409. type: string
  410. required:
  411. - name
  412. type: object
  413. type: object
  414. kubernetes:
  415. description: Kubernetes authenticates with Vault by passing
  416. the ServiceAccount token stored in the named Secret
  417. resource to the Vault server.
  418. properties:
  419. mountPath:
  420. default: kubernetes
  421. description: 'Path where the Kubernetes authentication
  422. backend is mounted in Vault, e.g: "kubernetes"'
  423. type: string
  424. role:
  425. description: A required field containing the Vault
  426. Role to assume. A Role binds a Kubernetes ServiceAccount
  427. with a set of Vault policies.
  428. type: string
  429. secretRef:
  430. description: Optional secret field containing a Kubernetes
  431. ServiceAccount JWT used for authenticating with
  432. Vault. If a name is specified without a key, `token`
  433. is the default. If one is not specified, the one
  434. bound to the controller will be used.
  435. properties:
  436. key:
  437. description: The key of the entry in the Secret
  438. resource's `data` field to be used. Some instances
  439. of this field may be defaulted, in others it
  440. may be required.
  441. type: string
  442. name:
  443. description: The name of the Secret resource being
  444. referred to.
  445. type: string
  446. namespace:
  447. description: Namespace of the resource being referred
  448. to. Ignored if referent is not cluster-scoped.
  449. cluster-scoped defaults to the namespace of
  450. the referent.
  451. type: string
  452. required:
  453. - name
  454. type: object
  455. serviceAccountRef:
  456. description: Optional service account field containing
  457. the name of a kubernetes ServiceAccount. If the
  458. service account is specified, the service account
  459. secret token JWT will be used for authenticating
  460. with Vault. If the service account selector is not
  461. supplied, the secretRef will be used instead.
  462. properties:
  463. name:
  464. description: The name of the ServiceAccount resource
  465. being referred to.
  466. type: string
  467. namespace:
  468. description: Namespace of the resource being referred
  469. to. Ignored if referent is not cluster-scoped.
  470. cluster-scoped defaults to the namespace of
  471. the referent.
  472. type: string
  473. required:
  474. - name
  475. type: object
  476. required:
  477. - mountPath
  478. - role
  479. type: object
  480. ldap:
  481. description: Ldap authenticates with Vault by passing
  482. username/password pair using the LDAP authentication
  483. method
  484. properties:
  485. secretRef:
  486. description: SecretRef to a key in a Secret resource
  487. containing password for the LDAP user used to authenticate
  488. with Vault using the LDAP authentication method
  489. properties:
  490. key:
  491. description: The key of the entry in the Secret
  492. resource's `data` field to be used. Some instances
  493. of this field may be defaulted, in others it
  494. may be required.
  495. type: string
  496. name:
  497. description: The name of the Secret resource being
  498. referred to.
  499. type: string
  500. namespace:
  501. description: Namespace of the resource being referred
  502. to. Ignored if referent is not cluster-scoped.
  503. cluster-scoped defaults to the namespace of
  504. the referent.
  505. type: string
  506. required:
  507. - name
  508. type: object
  509. username:
  510. description: Username is a LDAP user name used to
  511. authenticate using the LDAP Vault authentication
  512. method
  513. type: string
  514. required:
  515. - username
  516. type: object
  517. tokenSecretRef:
  518. description: TokenSecretRef authenticates with Vault by
  519. presenting a token.
  520. properties:
  521. key:
  522. description: The key of the entry in the Secret resource's
  523. `data` field to be used. Some instances of this
  524. field may be defaulted, in others it may be required.
  525. type: string
  526. name:
  527. description: The name of the Secret resource being
  528. referred to.
  529. type: string
  530. namespace:
  531. description: Namespace of the resource being referred
  532. to. Ignored if referent is not cluster-scoped. cluster-scoped
  533. defaults to the namespace of the referent.
  534. type: string
  535. required:
  536. - name
  537. type: object
  538. type: object
  539. caBundle:
  540. description: PEM encoded CA bundle used to validate Vault
  541. server certificate. Only used if the Server URL is using
  542. HTTPS protocol. This parameter is ignored for plain HTTP
  543. protocol connection. If not set the system root certificates
  544. are used to validate the TLS connection.
  545. format: byte
  546. type: string
  547. namespace:
  548. description: 'Name of the vault namespace. Namespaces is a
  549. set of features within Vault Enterprise that allows Vault
  550. environments to support Secure Multi-tenancy. e.g: "ns1".
  551. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  552. type: string
  553. path:
  554. description: 'Path is the mount path of the Vault KV backend
  555. endpoint, e.g: "secret". The v2 KV secret engine version
  556. specific "/data" path suffix for fetching secrets from Vault
  557. is optional and will be appended if not present in specified
  558. path.'
  559. type: string
  560. server:
  561. description: 'Server is the connection address for the Vault
  562. server, e.g: "https://vault.example.com:8200".'
  563. type: string
  564. version:
  565. default: v2
  566. description: Version is the Vault KV secret engine version.
  567. This can be either "v1" or "v2". Version defaults to "v2".
  568. enum:
  569. - v1
  570. - v2
  571. type: string
  572. required:
  573. - auth
  574. - path
  575. - server
  576. type: object
  577. type: object
  578. required:
  579. - provider
  580. type: object
  581. status:
  582. description: SecretStoreStatus defines the observed state of the SecretStore.
  583. properties:
  584. conditions:
  585. items:
  586. properties:
  587. lastTransitionTime:
  588. format: date-time
  589. type: string
  590. message:
  591. type: string
  592. reason:
  593. type: string
  594. status:
  595. type: string
  596. type:
  597. type: string
  598. required:
  599. - status
  600. - type
  601. type: object
  602. type: array
  603. type: object
  604. type: object
  605. served: true
  606. storage: true
  607. subresources:
  608. status: {}
  609. status:
  610. acceptedNames:
  611. kind: ""
  612. plural: ""
  613. conditions: []
  614. storedVersions: []