external-secrets.io_secretstores.yaml 31 KB

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