external-secrets.io_secretstores.yaml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467
  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. gcpsm:
  139. description: GCPSM configures this store to sync secrets using
  140. Google Cloud Platform Secret Manager provider
  141. properties:
  142. auth:
  143. description: Auth defines the information necessary to authenticate
  144. against GCP
  145. properties:
  146. secretRef:
  147. properties:
  148. secretAccessKeySecretRef:
  149. description: The SecretAccessKey is used for authentication
  150. properties:
  151. key:
  152. description: The key of the entry in the Secret
  153. resource's `data` field to be used. Some instances
  154. of this field may be defaulted, in others it
  155. may be required.
  156. type: string
  157. name:
  158. description: The name of the Secret resource being
  159. referred to.
  160. type: string
  161. namespace:
  162. description: Namespace of the resource being referred
  163. to. Ignored if referent is not cluster-scoped.
  164. cluster-scoped defaults to the namespace of
  165. the referent.
  166. type: string
  167. required:
  168. - name
  169. type: object
  170. type: object
  171. required:
  172. - secretRef
  173. type: object
  174. projectID:
  175. description: ProjectID project where secret is located
  176. type: string
  177. required:
  178. - auth
  179. type: object
  180. vault:
  181. description: Vault configures this store to sync secrets using
  182. Hashi provider
  183. properties:
  184. auth:
  185. description: Auth configures how secret-manager authenticates
  186. with the Vault server.
  187. properties:
  188. appRole:
  189. description: AppRole authenticates with Vault using the
  190. App Role auth mechanism, with the role and secret stored
  191. in a Kubernetes Secret resource.
  192. properties:
  193. path:
  194. default: approle
  195. description: 'Path where the App Role authentication
  196. backend is mounted in Vault, e.g: "approle"'
  197. type: string
  198. roleId:
  199. description: RoleID configured in the App Role authentication
  200. backend when setting up the authentication backend
  201. in Vault.
  202. type: string
  203. secretRef:
  204. description: Reference to a key in a Secret that contains
  205. the App Role secret used to authenticate with Vault.
  206. The `key` field must be specified and denotes which
  207. entry within the Secret resource is used as the
  208. app role secret.
  209. properties:
  210. key:
  211. description: The key of the entry in the Secret
  212. resource's `data` field to be used. Some instances
  213. of this field may be defaulted, in others it
  214. may be required.
  215. type: string
  216. name:
  217. description: The name of the Secret resource being
  218. referred to.
  219. type: string
  220. namespace:
  221. description: Namespace of the resource being referred
  222. to. Ignored if referent is not cluster-scoped.
  223. cluster-scoped defaults to the namespace of
  224. the referent.
  225. type: string
  226. required:
  227. - name
  228. type: object
  229. required:
  230. - path
  231. - roleId
  232. - secretRef
  233. type: object
  234. jwt:
  235. description: Jwt authenticates with Vault by passing role
  236. and JWT token using the JWT/OIDC authentication method
  237. properties:
  238. role:
  239. description: Role is a JWT role to authenticate using
  240. the JWT/OIDC Vault authentication method
  241. type: string
  242. secretRef:
  243. description: SecretRef to a key in a Secret resource
  244. containing JWT token to authenticate with Vault
  245. using the JWT/OIDC authentication method
  246. properties:
  247. key:
  248. description: The key of the entry in the Secret
  249. resource's `data` field to be used. Some instances
  250. of this field may be defaulted, in others it
  251. may be required.
  252. type: string
  253. name:
  254. description: The name of the Secret resource being
  255. referred to.
  256. type: string
  257. namespace:
  258. description: Namespace of the resource being referred
  259. to. Ignored if referent is not cluster-scoped.
  260. cluster-scoped defaults to the namespace of
  261. the referent.
  262. type: string
  263. required:
  264. - name
  265. type: object
  266. type: object
  267. kubernetes:
  268. description: Kubernetes authenticates with Vault by passing
  269. the ServiceAccount token stored in the named Secret
  270. resource to the Vault server.
  271. properties:
  272. mountPath:
  273. default: kubernetes
  274. description: 'Path where the Kubernetes authentication
  275. backend is mounted in Vault, e.g: "kubernetes"'
  276. type: string
  277. role:
  278. description: A required field containing the Vault
  279. Role to assume. A Role binds a Kubernetes ServiceAccount
  280. with a set of Vault policies.
  281. type: string
  282. secretRef:
  283. description: Optional secret field containing a Kubernetes
  284. ServiceAccount JWT used for authenticating with
  285. Vault. If a name is specified without a key, `token`
  286. is the default. If one is not specified, the one
  287. bound to the controller will be used.
  288. properties:
  289. key:
  290. description: The key of the entry in the Secret
  291. resource's `data` field to be used. Some instances
  292. of this field may be defaulted, in others it
  293. may be required.
  294. type: string
  295. name:
  296. description: The name of the Secret resource being
  297. referred to.
  298. type: string
  299. namespace:
  300. description: Namespace of the resource being referred
  301. to. Ignored if referent is not cluster-scoped.
  302. cluster-scoped defaults to the namespace of
  303. the referent.
  304. type: string
  305. required:
  306. - name
  307. type: object
  308. serviceAccountRef:
  309. description: Optional service account field containing
  310. the name of a kubernetes ServiceAccount. If the
  311. service account is specified, the service account
  312. secret token JWT will be used for authenticating
  313. with Vault. If the service account selector is not
  314. supplied, the secretRef will be used instead.
  315. properties:
  316. name:
  317. description: The name of the ServiceAccount resource
  318. being referred to.
  319. type: string
  320. namespace:
  321. description: Namespace of the resource being referred
  322. to. Ignored if referent is not cluster-scoped.
  323. cluster-scoped defaults to the namespace of
  324. the referent.
  325. type: string
  326. required:
  327. - name
  328. type: object
  329. required:
  330. - mountPath
  331. - role
  332. type: object
  333. ldap:
  334. description: Ldap authenticates with Vault by passing
  335. username/password pair using the LDAP authentication
  336. method
  337. properties:
  338. secretRef:
  339. description: SecretRef to a key in a Secret resource
  340. containing password for the LDAP user used to authenticate
  341. with Vault using the LDAP authentication method
  342. properties:
  343. key:
  344. description: The key of the entry in the Secret
  345. resource's `data` field to be used. Some instances
  346. of this field may be defaulted, in others it
  347. may be required.
  348. type: string
  349. name:
  350. description: The name of the Secret resource being
  351. referred to.
  352. type: string
  353. namespace:
  354. description: Namespace of the resource being referred
  355. to. Ignored if referent is not cluster-scoped.
  356. cluster-scoped defaults to the namespace of
  357. the referent.
  358. type: string
  359. required:
  360. - name
  361. type: object
  362. username:
  363. description: Username is a LDAP user name used to
  364. authenticate using the LDAP Vault authentication
  365. method
  366. type: string
  367. required:
  368. - username
  369. type: object
  370. tokenSecretRef:
  371. description: TokenSecretRef authenticates with Vault by
  372. presenting a token.
  373. properties:
  374. key:
  375. description: The key of the entry in the Secret resource's
  376. `data` field to be used. Some instances of this
  377. field may be defaulted, in others it may be required.
  378. type: string
  379. name:
  380. description: The name of the Secret resource being
  381. referred to.
  382. type: string
  383. namespace:
  384. description: Namespace of the resource being referred
  385. to. Ignored if referent is not cluster-scoped. cluster-scoped
  386. defaults to the namespace of the referent.
  387. type: string
  388. required:
  389. - name
  390. type: object
  391. type: object
  392. caBundle:
  393. description: PEM encoded CA bundle used to validate Vault
  394. server certificate. Only used if the Server URL is using
  395. HTTPS protocol. This parameter is ignored for plain HTTP
  396. protocol connection. If not set the system root certificates
  397. are used to validate the TLS connection.
  398. format: byte
  399. type: string
  400. namespace:
  401. description: 'Name of the vault namespace. Namespaces is a
  402. set of features within Vault Enterprise that allows Vault
  403. environments to support Secure Multi-tenancy. e.g: "ns1".
  404. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces'
  405. type: string
  406. path:
  407. description: 'Path is the mount path of the Vault KV backend
  408. endpoint, e.g: "secret". The v2 KV secret engine version
  409. specific "/data" path suffix for fetching secrets from Vault
  410. is optional and will be appended if not present in specified
  411. path.'
  412. type: string
  413. server:
  414. description: 'Server is the connection address for the Vault
  415. server, e.g: "https://vault.example.com:8200".'
  416. type: string
  417. version:
  418. default: v2
  419. description: Version is the Vault KV secret engine version.
  420. This can be either "v1" or "v2". Version defaults to "v2".
  421. enum:
  422. - v1
  423. - v2
  424. type: string
  425. required:
  426. - auth
  427. - path
  428. - server
  429. type: object
  430. type: object
  431. required:
  432. - provider
  433. type: object
  434. status:
  435. description: SecretStoreStatus defines the observed state of the SecretStore.
  436. properties:
  437. conditions:
  438. items:
  439. properties:
  440. lastTransitionTime:
  441. format: date-time
  442. type: string
  443. message:
  444. type: string
  445. reason:
  446. type: string
  447. status:
  448. type: string
  449. type:
  450. type: string
  451. required:
  452. - status
  453. - type
  454. type: object
  455. type: array
  456. type: object
  457. type: object
  458. served: true
  459. storage: true
  460. subresources:
  461. status: {}
  462. status:
  463. acceptedNames:
  464. kind: ""
  465. plural: ""
  466. conditions: []
  467. storedVersions: []