generators.external-secrets.io_clustergenerators.yaml 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923
  1. apiVersion: apiextensions.k8s.io/v1
  2. kind: CustomResourceDefinition
  3. metadata:
  4. annotations:
  5. controller-gen.kubebuilder.io/version: v0.18.0
  6. labels:
  7. external-secrets.io/component: controller
  8. name: clustergenerators.generators.external-secrets.io
  9. spec:
  10. group: generators.external-secrets.io
  11. names:
  12. categories:
  13. - external-secrets
  14. - external-secrets-generators
  15. kind: ClusterGenerator
  16. listKind: ClusterGeneratorList
  17. plural: clustergenerators
  18. singular: clustergenerator
  19. scope: Cluster
  20. versions:
  21. - name: v1alpha1
  22. schema:
  23. openAPIV3Schema:
  24. description: ClusterGenerator represents a cluster-wide generator which can
  25. be referenced as part of `generatorRef` fields.
  26. properties:
  27. apiVersion:
  28. description: |-
  29. APIVersion defines the versioned schema of this representation of an object.
  30. Servers should convert recognized schemas to the latest internal value, and
  31. may reject unrecognized values.
  32. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  33. type: string
  34. kind:
  35. description: |-
  36. Kind is a string value representing the REST resource this object represents.
  37. Servers may infer this from the endpoint the client submits requests to.
  38. Cannot be updated.
  39. In CamelCase.
  40. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  41. type: string
  42. metadata:
  43. type: object
  44. spec:
  45. properties:
  46. generator:
  47. description: Generator the spec for this generator, must match the
  48. kind.
  49. maxProperties: 1
  50. minProperties: 1
  51. properties:
  52. acrAccessTokenSpec:
  53. description: |-
  54. ACRAccessTokenSpec defines how to generate the access token
  55. e.g. how to authenticate and which registry to use.
  56. see: https://github.com/Azure/acr/blob/main/docs/AAD-OAuth.md#overview
  57. properties:
  58. auth:
  59. properties:
  60. managedIdentity:
  61. description: ManagedIdentity uses Azure Managed Identity
  62. to authenticate with Azure.
  63. properties:
  64. identityId:
  65. description: If multiple Managed Identity is assigned
  66. to the pod, you can select the one to be used
  67. type: string
  68. type: object
  69. servicePrincipal:
  70. description: ServicePrincipal uses Azure Service Principal
  71. credentials to authenticate with Azure.
  72. properties:
  73. secretRef:
  74. description: |-
  75. Configuration used to authenticate with Azure using static
  76. credentials stored in a Kind=Secret.
  77. properties:
  78. clientId:
  79. description: The Azure clientId of the service
  80. principle used for authentication.
  81. properties:
  82. key:
  83. description: |-
  84. A key in the referenced Secret.
  85. Some instances of this field may be defaulted, in others it may be required.
  86. maxLength: 253
  87. minLength: 1
  88. pattern: ^[-._a-zA-Z0-9]+$
  89. type: string
  90. name:
  91. description: The name of the Secret resource
  92. being referred to.
  93. maxLength: 253
  94. minLength: 1
  95. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  96. type: string
  97. namespace:
  98. description: |-
  99. The namespace of the Secret resource being referred to.
  100. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  101. maxLength: 63
  102. minLength: 1
  103. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  104. type: string
  105. type: object
  106. clientSecret:
  107. description: The Azure ClientSecret of the service
  108. principle used for authentication.
  109. properties:
  110. key:
  111. description: |-
  112. A key in the referenced Secret.
  113. Some instances of this field may be defaulted, in others it may be required.
  114. maxLength: 253
  115. minLength: 1
  116. pattern: ^[-._a-zA-Z0-9]+$
  117. type: string
  118. name:
  119. description: The name of the Secret resource
  120. being referred to.
  121. maxLength: 253
  122. minLength: 1
  123. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  124. type: string
  125. namespace:
  126. description: |-
  127. The namespace of the Secret resource being referred to.
  128. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  129. maxLength: 63
  130. minLength: 1
  131. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  132. type: string
  133. type: object
  134. type: object
  135. required:
  136. - secretRef
  137. type: object
  138. workloadIdentity:
  139. description: WorkloadIdentity uses Azure Workload Identity
  140. to authenticate with Azure.
  141. properties:
  142. serviceAccountRef:
  143. description: |-
  144. ServiceAccountRef specified the service account
  145. that should be used when authenticating with WorkloadIdentity.
  146. properties:
  147. audiences:
  148. description: |-
  149. Audience specifies the `aud` claim for the service account token
  150. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  151. then this audiences will be appended to the list
  152. items:
  153. type: string
  154. type: array
  155. name:
  156. description: The name of the ServiceAccount resource
  157. being referred to.
  158. maxLength: 253
  159. minLength: 1
  160. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  161. type: string
  162. namespace:
  163. description: |-
  164. Namespace of the resource being referred to.
  165. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  166. maxLength: 63
  167. minLength: 1
  168. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  169. type: string
  170. required:
  171. - name
  172. type: object
  173. type: object
  174. type: object
  175. environmentType:
  176. default: PublicCloud
  177. description: |-
  178. EnvironmentType specifies the Azure cloud environment endpoints to use for
  179. connecting and authenticating with Azure. By default it points to the public cloud AAD endpoint.
  180. The following endpoints are available, also see here: https://github.com/Azure/go-autorest/blob/main/autorest/azure/environments.go#L152
  181. PublicCloud, USGovernmentCloud, ChinaCloud, GermanCloud
  182. enum:
  183. - PublicCloud
  184. - USGovernmentCloud
  185. - ChinaCloud
  186. - GermanCloud
  187. type: string
  188. registry:
  189. description: |-
  190. the domain name of the ACR registry
  191. e.g. foobarexample.azurecr.io
  192. type: string
  193. scope:
  194. description: |-
  195. Define the scope for the access token, e.g. pull/push access for a repository.
  196. if not provided it will return a refresh token that has full scope.
  197. Note: you need to pin it down to the repository level, there is no wildcard available.
  198. examples:
  199. repository:my-repository:pull,push
  200. repository:my-repository:pull
  201. see docs for details: https://docs.docker.com/registry/spec/auth/scope/
  202. type: string
  203. tenantId:
  204. description: TenantID configures the Azure Tenant to send
  205. requests to. Required for ServicePrincipal auth type.
  206. type: string
  207. required:
  208. - auth
  209. - registry
  210. type: object
  211. ecrAuthorizationTokenSpec:
  212. properties:
  213. auth:
  214. description: Auth defines how to authenticate with AWS
  215. properties:
  216. jwt:
  217. description: Authenticate against AWS using service account
  218. tokens.
  219. properties:
  220. serviceAccountRef:
  221. description: A reference to a ServiceAccount resource.
  222. properties:
  223. audiences:
  224. description: |-
  225. Audience specifies the `aud` claim for the service account token
  226. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  227. then this audiences will be appended to the list
  228. items:
  229. type: string
  230. type: array
  231. name:
  232. description: The name of the ServiceAccount resource
  233. being referred to.
  234. maxLength: 253
  235. minLength: 1
  236. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  237. type: string
  238. namespace:
  239. description: |-
  240. Namespace of the resource being referred to.
  241. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  242. maxLength: 63
  243. minLength: 1
  244. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  245. type: string
  246. required:
  247. - name
  248. type: object
  249. type: object
  250. secretRef:
  251. description: |-
  252. AWSAuthSecretRef holds secret references for AWS credentials
  253. both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
  254. properties:
  255. accessKeyIDSecretRef:
  256. description: The AccessKeyID is used for authentication
  257. properties:
  258. key:
  259. description: |-
  260. A key in the referenced Secret.
  261. Some instances of this field may be defaulted, in others it may be required.
  262. maxLength: 253
  263. minLength: 1
  264. pattern: ^[-._a-zA-Z0-9]+$
  265. type: string
  266. name:
  267. description: The name of the Secret resource being
  268. referred to.
  269. maxLength: 253
  270. minLength: 1
  271. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  272. type: string
  273. namespace:
  274. description: |-
  275. The namespace of the Secret resource being referred to.
  276. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  277. maxLength: 63
  278. minLength: 1
  279. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  280. type: string
  281. type: object
  282. secretAccessKeySecretRef:
  283. description: The SecretAccessKey is used for authentication
  284. properties:
  285. key:
  286. description: |-
  287. A key in the referenced Secret.
  288. Some instances of this field may be defaulted, in others it may be required.
  289. maxLength: 253
  290. minLength: 1
  291. pattern: ^[-._a-zA-Z0-9]+$
  292. type: string
  293. name:
  294. description: The name of the Secret resource being
  295. referred to.
  296. maxLength: 253
  297. minLength: 1
  298. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  299. type: string
  300. namespace:
  301. description: |-
  302. The namespace of the Secret resource being referred to.
  303. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  304. maxLength: 63
  305. minLength: 1
  306. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  307. type: string
  308. type: object
  309. sessionTokenSecretRef:
  310. description: |-
  311. The SessionToken used for authentication
  312. This must be defined if AccessKeyID and SecretAccessKey are temporary credentials
  313. see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
  314. properties:
  315. key:
  316. description: |-
  317. A key in the referenced Secret.
  318. Some instances of this field may be defaulted, in others it may be required.
  319. maxLength: 253
  320. minLength: 1
  321. pattern: ^[-._a-zA-Z0-9]+$
  322. type: string
  323. name:
  324. description: The name of the Secret resource being
  325. referred to.
  326. maxLength: 253
  327. minLength: 1
  328. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  329. type: string
  330. namespace:
  331. description: |-
  332. The namespace of the Secret resource being referred to.
  333. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  334. maxLength: 63
  335. minLength: 1
  336. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  337. type: string
  338. type: object
  339. type: object
  340. type: object
  341. region:
  342. description: Region specifies the region to operate in.
  343. type: string
  344. role:
  345. description: |-
  346. You can assume a role before making calls to the
  347. desired AWS service.
  348. type: string
  349. scope:
  350. description: |-
  351. Scope specifies the ECR service scope.
  352. Valid options are private and public.
  353. type: string
  354. required:
  355. - region
  356. type: object
  357. fakeSpec:
  358. description: FakeSpec contains the static data.
  359. properties:
  360. controller:
  361. description: |-
  362. Used to select the correct ESO controller (think: ingress.ingressClassName)
  363. The ESO controller is instantiated with a specific controller name and filters VDS based on this property
  364. type: string
  365. data:
  366. additionalProperties:
  367. type: string
  368. description: |-
  369. Data defines the static data returned
  370. by this generator.
  371. type: object
  372. type: object
  373. gcrAccessTokenSpec:
  374. properties:
  375. auth:
  376. description: Auth defines the means for authenticating with
  377. GCP
  378. properties:
  379. secretRef:
  380. properties:
  381. secretAccessKeySecretRef:
  382. description: The SecretAccessKey is used for authentication
  383. properties:
  384. key:
  385. description: |-
  386. A key in the referenced Secret.
  387. Some instances of this field may be defaulted, in others it may be required.
  388. maxLength: 253
  389. minLength: 1
  390. pattern: ^[-._a-zA-Z0-9]+$
  391. type: string
  392. name:
  393. description: The name of the Secret resource being
  394. referred to.
  395. maxLength: 253
  396. minLength: 1
  397. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  398. type: string
  399. namespace:
  400. description: |-
  401. The namespace of the Secret resource being referred to.
  402. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  403. maxLength: 63
  404. minLength: 1
  405. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  406. type: string
  407. type: object
  408. type: object
  409. workloadIdentity:
  410. properties:
  411. clusterLocation:
  412. type: string
  413. clusterName:
  414. type: string
  415. clusterProjectID:
  416. type: string
  417. serviceAccountRef:
  418. description: A reference to a ServiceAccount resource.
  419. properties:
  420. audiences:
  421. description: |-
  422. Audience specifies the `aud` claim for the service account token
  423. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  424. then this audiences will be appended to the list
  425. items:
  426. type: string
  427. type: array
  428. name:
  429. description: The name of the ServiceAccount resource
  430. being referred to.
  431. maxLength: 253
  432. minLength: 1
  433. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  434. type: string
  435. namespace:
  436. description: |-
  437. Namespace of the resource being referred to.
  438. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  439. maxLength: 63
  440. minLength: 1
  441. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  442. type: string
  443. required:
  444. - name
  445. type: object
  446. required:
  447. - clusterLocation
  448. - clusterName
  449. - serviceAccountRef
  450. type: object
  451. type: object
  452. projectID:
  453. description: ProjectID defines which project to use to authenticate
  454. with
  455. type: string
  456. required:
  457. - auth
  458. - projectID
  459. type: object
  460. githubAccessTokenSpec:
  461. properties:
  462. appID:
  463. type: string
  464. auth:
  465. description: Auth configures how ESO authenticates with a
  466. Github instance.
  467. properties:
  468. privateKey:
  469. properties:
  470. secretRef:
  471. description: |-
  472. A reference to a specific 'key' within a Secret resource.
  473. In some instances, `key` is a required field.
  474. properties:
  475. key:
  476. description: |-
  477. A key in the referenced Secret.
  478. Some instances of this field may be defaulted, in others it may be required.
  479. maxLength: 253
  480. minLength: 1
  481. pattern: ^[-._a-zA-Z0-9]+$
  482. type: string
  483. name:
  484. description: The name of the Secret resource being
  485. referred to.
  486. maxLength: 253
  487. minLength: 1
  488. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  489. type: string
  490. namespace:
  491. description: |-
  492. The namespace of the Secret resource being referred to.
  493. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  494. maxLength: 63
  495. minLength: 1
  496. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  497. type: string
  498. type: object
  499. required:
  500. - secretRef
  501. type: object
  502. required:
  503. - privateKey
  504. type: object
  505. installID:
  506. type: string
  507. permissions:
  508. additionalProperties:
  509. type: string
  510. description: Map of permissions the token will have. If omitted,
  511. defaults to all permissions the GitHub App has.
  512. type: object
  513. repositories:
  514. description: |-
  515. List of repositories the token will have access to. If omitted, defaults to all repositories the GitHub App
  516. is installed to.
  517. items:
  518. type: string
  519. type: array
  520. url:
  521. description: URL configures the Github instance URL. Defaults
  522. to https://github.com/.
  523. type: string
  524. required:
  525. - appID
  526. - auth
  527. - installID
  528. type: object
  529. grafanaSpec:
  530. description: GrafanaSpec controls the behavior of the grafana
  531. generator.
  532. properties:
  533. auth:
  534. description: |-
  535. Auth is the authentication configuration to authenticate
  536. against the Grafana instance.
  537. properties:
  538. basic:
  539. description: |-
  540. Basic auth credentials used to authenticate against the Grafana instance.
  541. Note: you need a token which has elevated permissions to create service accounts.
  542. See here for the documentation on basic roles offered by Grafana:
  543. https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/
  544. properties:
  545. password:
  546. description: A basic auth password used to authenticate
  547. against the Grafana instance.
  548. properties:
  549. key:
  550. description: The key where the token is found.
  551. maxLength: 253
  552. minLength: 1
  553. pattern: ^[-._a-zA-Z0-9]+$
  554. type: string
  555. name:
  556. description: The name of the Secret resource being
  557. referred to.
  558. maxLength: 253
  559. minLength: 1
  560. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  561. type: string
  562. type: object
  563. username:
  564. description: A basic auth username used to authenticate
  565. against the Grafana instance.
  566. type: string
  567. required:
  568. - password
  569. - username
  570. type: object
  571. token:
  572. description: |-
  573. A service account token used to authenticate against the Grafana instance.
  574. Note: you need a token which has elevated permissions to create service accounts.
  575. See here for the documentation on basic roles offered by Grafana:
  576. https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/
  577. properties:
  578. key:
  579. description: The key where the token is found.
  580. maxLength: 253
  581. minLength: 1
  582. pattern: ^[-._a-zA-Z0-9]+$
  583. type: string
  584. name:
  585. description: The name of the Secret resource being
  586. referred to.
  587. maxLength: 253
  588. minLength: 1
  589. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  590. type: string
  591. type: object
  592. type: object
  593. serviceAccount:
  594. description: |-
  595. ServiceAccount is the configuration for the service account that
  596. is supposed to be generated by the generator.
  597. properties:
  598. name:
  599. description: Name is the name of the service account that
  600. will be created by ESO.
  601. type: string
  602. role:
  603. description: |-
  604. Role is the role of the service account.
  605. See here for the documentation on basic roles offered by Grafana:
  606. https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/rbac-fixed-basic-role-definitions/
  607. type: string
  608. required:
  609. - name
  610. - role
  611. type: object
  612. url:
  613. description: URL is the URL of the Grafana instance.
  614. type: string
  615. required:
  616. - auth
  617. - serviceAccount
  618. - url
  619. type: object
  620. passwordSpec:
  621. description: PasswordSpec controls the behavior of the password
  622. generator.
  623. properties:
  624. allowRepeat:
  625. default: false
  626. description: set AllowRepeat to true to allow repeating characters.
  627. type: boolean
  628. digits:
  629. description: |-
  630. Digits specifies the number of digits in the generated
  631. password. If omitted it defaults to 25% of the length of the password
  632. type: integer
  633. length:
  634. default: 24
  635. description: |-
  636. Length of the password to be generated.
  637. Defaults to 24
  638. type: integer
  639. noUpper:
  640. default: false
  641. description: Set NoUpper to disable uppercase characters
  642. type: boolean
  643. symbolCharacters:
  644. description: |-
  645. SymbolCharacters specifies the special characters that should be used
  646. in the generated password.
  647. type: string
  648. symbols:
  649. description: |-
  650. Symbols specifies the number of symbol characters in the generated
  651. password. If omitted it defaults to 25% of the length of the password
  652. type: integer
  653. required:
  654. - allowRepeat
  655. - length
  656. - noUpper
  657. type: object
  658. quayAccessTokenSpec:
  659. properties:
  660. robotAccount:
  661. description: Name of the robot account you are federating
  662. with
  663. type: string
  664. serviceAccountRef:
  665. description: Name of the service account you are federating
  666. with
  667. properties:
  668. audiences:
  669. description: |-
  670. Audience specifies the `aud` claim for the service account token
  671. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  672. then this audiences will be appended to the list
  673. items:
  674. type: string
  675. type: array
  676. name:
  677. description: The name of the ServiceAccount resource being
  678. referred to.
  679. maxLength: 253
  680. minLength: 1
  681. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  682. type: string
  683. namespace:
  684. description: |-
  685. Namespace of the resource being referred to.
  686. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  687. maxLength: 63
  688. minLength: 1
  689. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  690. type: string
  691. required:
  692. - name
  693. type: object
  694. url:
  695. description: URL configures the Quay instance URL. Defaults
  696. to quay.io.
  697. type: string
  698. required:
  699. - robotAccount
  700. - serviceAccountRef
  701. type: object
  702. stsSessionTokenSpec:
  703. properties:
  704. auth:
  705. description: Auth defines how to authenticate with AWS
  706. properties:
  707. jwt:
  708. description: Authenticate against AWS using service account
  709. tokens.
  710. properties:
  711. serviceAccountRef:
  712. description: A reference to a ServiceAccount resource.
  713. properties:
  714. audiences:
  715. description: |-
  716. Audience specifies the `aud` claim for the service account token
  717. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  718. then this audiences will be appended to the list
  719. items:
  720. type: string
  721. type: array
  722. name:
  723. description: The name of the ServiceAccount resource
  724. being referred to.
  725. maxLength: 253
  726. minLength: 1
  727. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  728. type: string
  729. namespace:
  730. description: |-
  731. Namespace of the resource being referred to.
  732. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  733. maxLength: 63
  734. minLength: 1
  735. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  736. type: string
  737. required:
  738. - name
  739. type: object
  740. type: object
  741. secretRef:
  742. description: |-
  743. AWSAuthSecretRef holds secret references for AWS credentials
  744. both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.
  745. properties:
  746. accessKeyIDSecretRef:
  747. description: The AccessKeyID is used for authentication
  748. properties:
  749. key:
  750. description: |-
  751. A key in the referenced Secret.
  752. Some instances of this field may be defaulted, in others it may be required.
  753. maxLength: 253
  754. minLength: 1
  755. pattern: ^[-._a-zA-Z0-9]+$
  756. type: string
  757. name:
  758. description: The name of the Secret resource being
  759. referred to.
  760. maxLength: 253
  761. minLength: 1
  762. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  763. type: string
  764. namespace:
  765. description: |-
  766. The namespace of the Secret resource being referred to.
  767. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  768. maxLength: 63
  769. minLength: 1
  770. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  771. type: string
  772. type: object
  773. secretAccessKeySecretRef:
  774. description: The SecretAccessKey is used for authentication
  775. properties:
  776. key:
  777. description: |-
  778. A key in the referenced Secret.
  779. Some instances of this field may be defaulted, in others it may be required.
  780. maxLength: 253
  781. minLength: 1
  782. pattern: ^[-._a-zA-Z0-9]+$
  783. type: string
  784. name:
  785. description: The name of the Secret resource being
  786. referred to.
  787. maxLength: 253
  788. minLength: 1
  789. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  790. type: string
  791. namespace:
  792. description: |-
  793. The namespace of the Secret resource being referred to.
  794. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  795. maxLength: 63
  796. minLength: 1
  797. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  798. type: string
  799. type: object
  800. sessionTokenSecretRef:
  801. description: |-
  802. The SessionToken used for authentication
  803. This must be defined if AccessKeyID and SecretAccessKey are temporary credentials
  804. see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
  805. properties:
  806. key:
  807. description: |-
  808. A key in the referenced Secret.
  809. Some instances of this field may be defaulted, in others it may be required.
  810. maxLength: 253
  811. minLength: 1
  812. pattern: ^[-._a-zA-Z0-9]+$
  813. type: string
  814. name:
  815. description: The name of the Secret resource being
  816. referred to.
  817. maxLength: 253
  818. minLength: 1
  819. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  820. type: string
  821. namespace:
  822. description: |-
  823. The namespace of the Secret resource being referred to.
  824. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  825. maxLength: 63
  826. minLength: 1
  827. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  828. type: string
  829. type: object
  830. type: object
  831. type: object
  832. region:
  833. description: Region specifies the region to operate in.
  834. type: string
  835. requestParameters:
  836. description: RequestParameters contains parameters that can
  837. be passed to the STS service.
  838. properties:
  839. serialNumber:
  840. description: |-
  841. SerialNumber is the identification number of the MFA device that is associated with the IAM user who is making
  842. the GetSessionToken call.
  843. Possible values: hardware device (such as GAHT12345678) or an Amazon Resource Name (ARN) for a virtual device
  844. (such as arn:aws:iam::123456789012:mfa/user)
  845. type: string
  846. sessionDuration:
  847. description: |-
  848. SessionDuration The duration, in seconds, that the credentials should remain valid. Acceptable durations for
  849. IAM user sessions range from 900 seconds (15 minutes) to 129,600 seconds (36 hours), with 43,200 seconds
  850. (12 hours) as the default.
  851. format: int64
  852. type: integer
  853. tokenCode:
  854. description: TokenCode is the value provided by the MFA
  855. device, if MFA is required.
  856. type: string
  857. type: object
  858. role:
  859. description: |-
  860. You can assume a role before making calls to the
  861. desired AWS service.
  862. type: string
  863. required:
  864. - region
  865. type: object
  866. uuidSpec:
  867. description: UUIDSpec controls the behavior of the uuid generator.
  868. type: object
  869. vaultDynamicSecretSpec:
  870. properties:
  871. allowEmptyResponse:
  872. default: false
  873. description: Do not fail if no secrets are found. Useful for
  874. requests where no data is expected.
  875. type: boolean
  876. controller:
  877. description: |-
  878. Used to select the correct ESO controller (think: ingress.ingressClassName)
  879. The ESO controller is instantiated with a specific controller name and filters VDS based on this property
  880. type: string
  881. method:
  882. description: Vault API method to use (GET/POST/other)
  883. type: string
  884. parameters:
  885. description: Parameters to pass to Vault write (for non-GET
  886. methods)
  887. x-kubernetes-preserve-unknown-fields: true
  888. path:
  889. description: Vault path to obtain the dynamic secret from
  890. type: string
  891. provider:
  892. description: Vault provider common spec
  893. properties:
  894. auth:
  895. description: Auth configures how secret-manager authenticates
  896. with the Vault server.
  897. properties:
  898. appRole:
  899. description: |-
  900. AppRole authenticates with Vault using the App Role auth mechanism,
  901. with the role and secret stored in a Kubernetes Secret resource.
  902. properties:
  903. path:
  904. default: approle
  905. description: |-
  906. Path where the App Role authentication backend is mounted
  907. in Vault, e.g: "approle"
  908. type: string
  909. roleId:
  910. description: |-
  911. RoleID configured in the App Role authentication backend when setting
  912. up the authentication backend in Vault.
  913. type: string
  914. roleRef:
  915. description: |-
  916. Reference to a key in a Secret that contains the App Role ID used
  917. to authenticate with Vault.
  918. The `key` field must be specified and denotes which entry within the Secret
  919. resource is used as the app role id.
  920. properties:
  921. key:
  922. description: |-
  923. A key in the referenced Secret.
  924. Some instances of this field may be defaulted, in others it may be required.
  925. maxLength: 253
  926. minLength: 1
  927. pattern: ^[-._a-zA-Z0-9]+$
  928. type: string
  929. name:
  930. description: The name of the Secret resource
  931. being referred to.
  932. maxLength: 253
  933. minLength: 1
  934. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  935. type: string
  936. namespace:
  937. description: |-
  938. The namespace of the Secret resource being referred to.
  939. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  940. maxLength: 63
  941. minLength: 1
  942. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  943. type: string
  944. type: object
  945. secretRef:
  946. description: |-
  947. Reference to a key in a Secret that contains the App Role secret used
  948. to authenticate with Vault.
  949. The `key` field must be specified and denotes which entry within the Secret
  950. resource is used as the app role secret.
  951. properties:
  952. key:
  953. description: |-
  954. A key in the referenced Secret.
  955. Some instances of this field may be defaulted, in others it may be required.
  956. maxLength: 253
  957. minLength: 1
  958. pattern: ^[-._a-zA-Z0-9]+$
  959. type: string
  960. name:
  961. description: The name of the Secret resource
  962. being referred to.
  963. maxLength: 253
  964. minLength: 1
  965. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  966. type: string
  967. namespace:
  968. description: |-
  969. The namespace of the Secret resource being referred to.
  970. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  971. maxLength: 63
  972. minLength: 1
  973. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  974. type: string
  975. type: object
  976. required:
  977. - path
  978. - secretRef
  979. type: object
  980. cert:
  981. description: |-
  982. Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate
  983. Cert authentication method
  984. properties:
  985. clientCert:
  986. description: |-
  987. ClientCert is a certificate to authenticate using the Cert Vault
  988. authentication method
  989. properties:
  990. key:
  991. description: |-
  992. A key in the referenced Secret.
  993. Some instances of this field may be defaulted, in others it may be required.
  994. maxLength: 253
  995. minLength: 1
  996. pattern: ^[-._a-zA-Z0-9]+$
  997. type: string
  998. name:
  999. description: The name of the Secret resource
  1000. being referred to.
  1001. maxLength: 253
  1002. minLength: 1
  1003. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1004. type: string
  1005. namespace:
  1006. description: |-
  1007. The namespace of the Secret resource being referred to.
  1008. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1009. maxLength: 63
  1010. minLength: 1
  1011. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1012. type: string
  1013. type: object
  1014. secretRef:
  1015. description: |-
  1016. SecretRef to a key in a Secret resource containing client private key to
  1017. authenticate with Vault using the Cert authentication method
  1018. properties:
  1019. key:
  1020. description: |-
  1021. A key in the referenced Secret.
  1022. Some instances of this field may be defaulted, in others it may be required.
  1023. maxLength: 253
  1024. minLength: 1
  1025. pattern: ^[-._a-zA-Z0-9]+$
  1026. type: string
  1027. name:
  1028. description: The name of the Secret resource
  1029. being referred to.
  1030. maxLength: 253
  1031. minLength: 1
  1032. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1033. type: string
  1034. namespace:
  1035. description: |-
  1036. The namespace of the Secret resource being referred to.
  1037. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1038. maxLength: 63
  1039. minLength: 1
  1040. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1041. type: string
  1042. type: object
  1043. type: object
  1044. iam:
  1045. description: |-
  1046. Iam authenticates with vault by passing a special AWS request signed with AWS IAM credentials
  1047. AWS IAM authentication method
  1048. properties:
  1049. externalID:
  1050. description: AWS External ID set on assumed IAM
  1051. roles
  1052. type: string
  1053. jwt:
  1054. description: Specify a service account with IRSA
  1055. enabled
  1056. properties:
  1057. serviceAccountRef:
  1058. description: A reference to a ServiceAccount
  1059. resource.
  1060. properties:
  1061. audiences:
  1062. description: |-
  1063. Audience specifies the `aud` claim for the service account token
  1064. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  1065. then this audiences will be appended to the list
  1066. items:
  1067. type: string
  1068. type: array
  1069. name:
  1070. description: The name of the ServiceAccount
  1071. resource being referred to.
  1072. maxLength: 253
  1073. minLength: 1
  1074. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1075. type: string
  1076. namespace:
  1077. description: |-
  1078. Namespace of the resource being referred to.
  1079. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1080. maxLength: 63
  1081. minLength: 1
  1082. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1083. type: string
  1084. required:
  1085. - name
  1086. type: object
  1087. type: object
  1088. path:
  1089. description: 'Path where the AWS auth method is
  1090. enabled in Vault, e.g: "aws"'
  1091. type: string
  1092. region:
  1093. description: AWS region
  1094. type: string
  1095. role:
  1096. description: This is the AWS role to be assumed
  1097. before talking to vault
  1098. type: string
  1099. secretRef:
  1100. description: Specify credentials in a Secret object
  1101. properties:
  1102. accessKeyIDSecretRef:
  1103. description: The AccessKeyID is used for authentication
  1104. properties:
  1105. key:
  1106. description: |-
  1107. A key in the referenced Secret.
  1108. Some instances of this field may be defaulted, in others it may be required.
  1109. maxLength: 253
  1110. minLength: 1
  1111. pattern: ^[-._a-zA-Z0-9]+$
  1112. type: string
  1113. name:
  1114. description: The name of the Secret resource
  1115. being referred to.
  1116. maxLength: 253
  1117. minLength: 1
  1118. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1119. type: string
  1120. namespace:
  1121. description: |-
  1122. The namespace of the Secret resource being referred to.
  1123. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1124. maxLength: 63
  1125. minLength: 1
  1126. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1127. type: string
  1128. type: object
  1129. secretAccessKeySecretRef:
  1130. description: The SecretAccessKey is used for
  1131. authentication
  1132. properties:
  1133. key:
  1134. description: |-
  1135. A key in the referenced Secret.
  1136. Some instances of this field may be defaulted, in others it may be required.
  1137. maxLength: 253
  1138. minLength: 1
  1139. pattern: ^[-._a-zA-Z0-9]+$
  1140. type: string
  1141. name:
  1142. description: The name of the Secret resource
  1143. being referred to.
  1144. maxLength: 253
  1145. minLength: 1
  1146. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1147. type: string
  1148. namespace:
  1149. description: |-
  1150. The namespace of the Secret resource being referred to.
  1151. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1152. maxLength: 63
  1153. minLength: 1
  1154. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1155. type: string
  1156. type: object
  1157. sessionTokenSecretRef:
  1158. description: |-
  1159. The SessionToken used for authentication
  1160. This must be defined if AccessKeyID and SecretAccessKey are temporary credentials
  1161. see: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
  1162. properties:
  1163. key:
  1164. description: |-
  1165. A key in the referenced Secret.
  1166. Some instances of this field may be defaulted, in others it may be required.
  1167. maxLength: 253
  1168. minLength: 1
  1169. pattern: ^[-._a-zA-Z0-9]+$
  1170. type: string
  1171. name:
  1172. description: The name of the Secret resource
  1173. being referred to.
  1174. maxLength: 253
  1175. minLength: 1
  1176. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1177. type: string
  1178. namespace:
  1179. description: |-
  1180. The namespace of the Secret resource being referred to.
  1181. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1182. maxLength: 63
  1183. minLength: 1
  1184. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1185. type: string
  1186. type: object
  1187. type: object
  1188. vaultAwsIamServerID:
  1189. description: 'X-Vault-AWS-IAM-Server-ID is an
  1190. additional header used by Vault IAM auth method
  1191. to mitigate against different types of replay
  1192. attacks. More details here: https://developer.hashicorp.com/vault/docs/auth/aws'
  1193. type: string
  1194. vaultRole:
  1195. description: Vault Role. In vault, a role describes
  1196. an identity with a set of permissions, groups,
  1197. or policies you want to attach a user of the
  1198. secrets engine
  1199. type: string
  1200. required:
  1201. - vaultRole
  1202. type: object
  1203. jwt:
  1204. description: |-
  1205. Jwt authenticates with Vault by passing role and JWT token using the
  1206. JWT/OIDC authentication method
  1207. properties:
  1208. kubernetesServiceAccountToken:
  1209. description: |-
  1210. Optional ServiceAccountToken specifies the Kubernetes service account for which to request
  1211. a token for with the `TokenRequest` API.
  1212. properties:
  1213. audiences:
  1214. description: |-
  1215. Optional audiences field that will be used to request a temporary Kubernetes service
  1216. account token for the service account referenced by `serviceAccountRef`.
  1217. Defaults to a single audience `vault` it not specified.
  1218. Deprecated: use serviceAccountRef.Audiences instead
  1219. items:
  1220. type: string
  1221. type: array
  1222. expirationSeconds:
  1223. description: |-
  1224. Optional expiration time in seconds that will be used to request a temporary
  1225. Kubernetes service account token for the service account referenced by
  1226. `serviceAccountRef`.
  1227. Deprecated: this will be removed in the future.
  1228. Defaults to 10 minutes.
  1229. format: int64
  1230. type: integer
  1231. serviceAccountRef:
  1232. description: Service account field containing
  1233. the name of a kubernetes ServiceAccount.
  1234. properties:
  1235. audiences:
  1236. description: |-
  1237. Audience specifies the `aud` claim for the service account token
  1238. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  1239. then this audiences will be appended to the list
  1240. items:
  1241. type: string
  1242. type: array
  1243. name:
  1244. description: The name of the ServiceAccount
  1245. resource being referred to.
  1246. maxLength: 253
  1247. minLength: 1
  1248. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1249. type: string
  1250. namespace:
  1251. description: |-
  1252. Namespace of the resource being referred to.
  1253. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1254. maxLength: 63
  1255. minLength: 1
  1256. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1257. type: string
  1258. required:
  1259. - name
  1260. type: object
  1261. required:
  1262. - serviceAccountRef
  1263. type: object
  1264. path:
  1265. default: jwt
  1266. description: |-
  1267. Path where the JWT authentication backend is mounted
  1268. in Vault, e.g: "jwt"
  1269. type: string
  1270. role:
  1271. description: |-
  1272. Role is a JWT role to authenticate using the JWT/OIDC Vault
  1273. authentication method
  1274. type: string
  1275. secretRef:
  1276. description: |-
  1277. Optional SecretRef that refers to a key in a Secret resource containing JWT token to
  1278. authenticate with Vault using the JWT/OIDC authentication method.
  1279. properties:
  1280. key:
  1281. description: |-
  1282. A key in the referenced Secret.
  1283. Some instances of this field may be defaulted, in others it may be required.
  1284. maxLength: 253
  1285. minLength: 1
  1286. pattern: ^[-._a-zA-Z0-9]+$
  1287. type: string
  1288. name:
  1289. description: The name of the Secret resource
  1290. being referred to.
  1291. maxLength: 253
  1292. minLength: 1
  1293. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1294. type: string
  1295. namespace:
  1296. description: |-
  1297. The namespace of the Secret resource being referred to.
  1298. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1299. maxLength: 63
  1300. minLength: 1
  1301. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1302. type: string
  1303. type: object
  1304. required:
  1305. - path
  1306. type: object
  1307. kubernetes:
  1308. description: |-
  1309. Kubernetes authenticates with Vault by passing the ServiceAccount
  1310. token stored in the named Secret resource to the Vault server.
  1311. properties:
  1312. mountPath:
  1313. default: kubernetes
  1314. description: |-
  1315. Path where the Kubernetes authentication backend is mounted in Vault, e.g:
  1316. "kubernetes"
  1317. type: string
  1318. role:
  1319. description: |-
  1320. A required field containing the Vault Role to assume. A Role binds a
  1321. Kubernetes ServiceAccount with a set of Vault policies.
  1322. type: string
  1323. secretRef:
  1324. description: |-
  1325. Optional secret field containing a Kubernetes ServiceAccount JWT used
  1326. for authenticating with Vault. If a name is specified without a key,
  1327. `token` is the default. If one is not specified, the one bound to
  1328. the controller will be used.
  1329. properties:
  1330. key:
  1331. description: |-
  1332. A key in the referenced Secret.
  1333. Some instances of this field may be defaulted, in others it may be required.
  1334. maxLength: 253
  1335. minLength: 1
  1336. pattern: ^[-._a-zA-Z0-9]+$
  1337. type: string
  1338. name:
  1339. description: The name of the Secret resource
  1340. being referred to.
  1341. maxLength: 253
  1342. minLength: 1
  1343. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1344. type: string
  1345. namespace:
  1346. description: |-
  1347. The namespace of the Secret resource being referred to.
  1348. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1349. maxLength: 63
  1350. minLength: 1
  1351. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1352. type: string
  1353. type: object
  1354. serviceAccountRef:
  1355. description: |-
  1356. Optional service account field containing the name of a kubernetes ServiceAccount.
  1357. If the service account is specified, the service account secret token JWT will be used
  1358. for authenticating with Vault. If the service account selector is not supplied,
  1359. the secretRef will be used instead.
  1360. properties:
  1361. audiences:
  1362. description: |-
  1363. Audience specifies the `aud` claim for the service account token
  1364. If the service account uses a well-known annotation for e.g. IRSA or GCP Workload Identity
  1365. then this audiences will be appended to the list
  1366. items:
  1367. type: string
  1368. type: array
  1369. name:
  1370. description: The name of the ServiceAccount
  1371. resource being referred to.
  1372. maxLength: 253
  1373. minLength: 1
  1374. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1375. type: string
  1376. namespace:
  1377. description: |-
  1378. Namespace of the resource being referred to.
  1379. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1380. maxLength: 63
  1381. minLength: 1
  1382. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1383. type: string
  1384. required:
  1385. - name
  1386. type: object
  1387. required:
  1388. - mountPath
  1389. - role
  1390. type: object
  1391. ldap:
  1392. description: |-
  1393. Ldap authenticates with Vault by passing username/password pair using
  1394. the LDAP authentication method
  1395. properties:
  1396. path:
  1397. default: ldap
  1398. description: |-
  1399. Path where the LDAP authentication backend is mounted
  1400. in Vault, e.g: "ldap"
  1401. type: string
  1402. secretRef:
  1403. description: |-
  1404. SecretRef to a key in a Secret resource containing password for the LDAP
  1405. user used to authenticate with Vault using the LDAP authentication
  1406. method
  1407. properties:
  1408. key:
  1409. description: |-
  1410. A key in the referenced Secret.
  1411. Some instances of this field may be defaulted, in others it may be required.
  1412. maxLength: 253
  1413. minLength: 1
  1414. pattern: ^[-._a-zA-Z0-9]+$
  1415. type: string
  1416. name:
  1417. description: The name of the Secret resource
  1418. being referred to.
  1419. maxLength: 253
  1420. minLength: 1
  1421. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1422. type: string
  1423. namespace:
  1424. description: |-
  1425. The namespace of the Secret resource being referred to.
  1426. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1427. maxLength: 63
  1428. minLength: 1
  1429. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1430. type: string
  1431. type: object
  1432. username:
  1433. description: |-
  1434. Username is an LDAP username used to authenticate using the LDAP Vault
  1435. authentication method
  1436. type: string
  1437. required:
  1438. - path
  1439. - username
  1440. type: object
  1441. namespace:
  1442. description: |-
  1443. Name of the vault namespace to authenticate to. This can be different than the namespace your secret is in.
  1444. Namespaces is a set of features within Vault Enterprise that allows
  1445. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  1446. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  1447. This will default to Vault.Namespace field if set, or empty otherwise
  1448. type: string
  1449. tokenSecretRef:
  1450. description: TokenSecretRef authenticates with Vault
  1451. by presenting a token.
  1452. properties:
  1453. key:
  1454. description: |-
  1455. A key in the referenced Secret.
  1456. Some instances of this field may be defaulted, in others it may be required.
  1457. maxLength: 253
  1458. minLength: 1
  1459. pattern: ^[-._a-zA-Z0-9]+$
  1460. type: string
  1461. name:
  1462. description: The name of the Secret resource being
  1463. referred to.
  1464. maxLength: 253
  1465. minLength: 1
  1466. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1467. type: string
  1468. namespace:
  1469. description: |-
  1470. The namespace of the Secret resource being referred to.
  1471. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1472. maxLength: 63
  1473. minLength: 1
  1474. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1475. type: string
  1476. type: object
  1477. userPass:
  1478. description: UserPass authenticates with Vault by
  1479. passing username/password pair
  1480. properties:
  1481. path:
  1482. default: userpass
  1483. description: |-
  1484. Path where the UserPassword authentication backend is mounted
  1485. in Vault, e.g: "userpass"
  1486. type: string
  1487. secretRef:
  1488. description: |-
  1489. SecretRef to a key in a Secret resource containing password for the
  1490. user used to authenticate with Vault using the UserPass authentication
  1491. method
  1492. properties:
  1493. key:
  1494. description: |-
  1495. A key in the referenced Secret.
  1496. Some instances of this field may be defaulted, in others it may be required.
  1497. maxLength: 253
  1498. minLength: 1
  1499. pattern: ^[-._a-zA-Z0-9]+$
  1500. type: string
  1501. name:
  1502. description: The name of the Secret resource
  1503. being referred to.
  1504. maxLength: 253
  1505. minLength: 1
  1506. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1507. type: string
  1508. namespace:
  1509. description: |-
  1510. The namespace of the Secret resource being referred to.
  1511. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1512. maxLength: 63
  1513. minLength: 1
  1514. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1515. type: string
  1516. type: object
  1517. username:
  1518. description: |-
  1519. Username is a username used to authenticate using the UserPass Vault
  1520. authentication method
  1521. type: string
  1522. required:
  1523. - path
  1524. - username
  1525. type: object
  1526. type: object
  1527. caBundle:
  1528. description: |-
  1529. PEM encoded CA bundle used to validate Vault server certificate. Only used
  1530. if the Server URL is using HTTPS protocol. This parameter is ignored for
  1531. plain HTTP protocol connection. If not set the system root certificates
  1532. are used to validate the TLS connection.
  1533. format: byte
  1534. type: string
  1535. caProvider:
  1536. description: The provider for the CA bundle to use to
  1537. validate Vault server certificate.
  1538. properties:
  1539. key:
  1540. description: The key where the CA certificate can
  1541. be found in the Secret or ConfigMap.
  1542. maxLength: 253
  1543. minLength: 1
  1544. pattern: ^[-._a-zA-Z0-9]+$
  1545. type: string
  1546. name:
  1547. description: The name of the object located at the
  1548. provider type.
  1549. maxLength: 253
  1550. minLength: 1
  1551. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1552. type: string
  1553. namespace:
  1554. description: |-
  1555. The namespace the Provider type is in.
  1556. Can only be defined when used in a ClusterSecretStore.
  1557. maxLength: 63
  1558. minLength: 1
  1559. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1560. type: string
  1561. type:
  1562. description: The type of provider to use such as "Secret",
  1563. or "ConfigMap".
  1564. enum:
  1565. - Secret
  1566. - ConfigMap
  1567. type: string
  1568. required:
  1569. - name
  1570. - type
  1571. type: object
  1572. forwardInconsistent:
  1573. description: |-
  1574. ForwardInconsistent tells Vault to forward read-after-write requests to the Vault
  1575. leader instead of simply retrying within a loop. This can increase performance if
  1576. the option is enabled serverside.
  1577. https://www.vaultproject.io/docs/configuration/replication#allow_forwarding_via_header
  1578. type: boolean
  1579. headers:
  1580. additionalProperties:
  1581. type: string
  1582. description: Headers to be added in Vault request
  1583. type: object
  1584. namespace:
  1585. description: |-
  1586. Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows
  1587. Vault environments to support Secure Multi-tenancy. e.g: "ns1".
  1588. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces
  1589. type: string
  1590. path:
  1591. description: |-
  1592. Path is the mount path of the Vault KV backend endpoint, e.g:
  1593. "secret". The v2 KV secret engine version specific "/data" path suffix
  1594. for fetching secrets from Vault is optional and will be appended
  1595. if not present in specified path.
  1596. type: string
  1597. readYourWrites:
  1598. description: |-
  1599. ReadYourWrites ensures isolated read-after-write semantics by
  1600. providing discovered cluster replication states in each request.
  1601. More information about eventual consistency in Vault can be found here
  1602. https://www.vaultproject.io/docs/enterprise/consistency
  1603. type: boolean
  1604. server:
  1605. description: 'Server is the connection address for the
  1606. Vault server, e.g: "https://vault.example.com:8200".'
  1607. type: string
  1608. tls:
  1609. description: |-
  1610. The configuration used for client side related TLS communication, when the Vault server
  1611. requires mutual authentication. Only used if the Server URL is using HTTPS protocol.
  1612. This parameter is ignored for plain HTTP protocol connection.
  1613. It's worth noting this configuration is different from the "TLS certificates auth method",
  1614. which is available under the `auth.cert` section.
  1615. properties:
  1616. certSecretRef:
  1617. description: |-
  1618. CertSecretRef is a certificate added to the transport layer
  1619. when communicating with the Vault server.
  1620. If no key for the Secret is specified, external-secret will default to 'tls.crt'.
  1621. properties:
  1622. key:
  1623. description: |-
  1624. A key in the referenced Secret.
  1625. Some instances of this field may be defaulted, in others it may be required.
  1626. maxLength: 253
  1627. minLength: 1
  1628. pattern: ^[-._a-zA-Z0-9]+$
  1629. type: string
  1630. name:
  1631. description: The name of the Secret resource being
  1632. referred to.
  1633. maxLength: 253
  1634. minLength: 1
  1635. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1636. type: string
  1637. namespace:
  1638. description: |-
  1639. The namespace of the Secret resource being referred to.
  1640. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1641. maxLength: 63
  1642. minLength: 1
  1643. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1644. type: string
  1645. type: object
  1646. keySecretRef:
  1647. description: |-
  1648. KeySecretRef to a key in a Secret resource containing client private key
  1649. added to the transport layer when communicating with the Vault server.
  1650. If no key for the Secret is specified, external-secret will default to 'tls.key'.
  1651. properties:
  1652. key:
  1653. description: |-
  1654. A key in the referenced Secret.
  1655. Some instances of this field may be defaulted, in others it may be required.
  1656. maxLength: 253
  1657. minLength: 1
  1658. pattern: ^[-._a-zA-Z0-9]+$
  1659. type: string
  1660. name:
  1661. description: The name of the Secret resource being
  1662. referred to.
  1663. maxLength: 253
  1664. minLength: 1
  1665. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1666. type: string
  1667. namespace:
  1668. description: |-
  1669. The namespace of the Secret resource being referred to.
  1670. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1671. maxLength: 63
  1672. minLength: 1
  1673. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1674. type: string
  1675. type: object
  1676. type: object
  1677. version:
  1678. default: v2
  1679. description: |-
  1680. Version is the Vault KV secret engine version. This can be either "v1" or
  1681. "v2". Version defaults to "v2".
  1682. enum:
  1683. - v1
  1684. - v2
  1685. type: string
  1686. required:
  1687. - server
  1688. type: object
  1689. resultType:
  1690. default: Data
  1691. description: |-
  1692. Result type defines which data is returned from the generator.
  1693. By default it is the "data" section of the Vault API response.
  1694. When using e.g. /auth/token/create the "data" section is empty but
  1695. the "auth" section contains the generated token.
  1696. Please refer to the vault docs regarding the result data structure.
  1697. Additionally, accessing the raw response is possibly by using "Raw" result type.
  1698. enum:
  1699. - Data
  1700. - Auth
  1701. - Raw
  1702. type: string
  1703. retrySettings:
  1704. description: Used to configure http retries if failed
  1705. properties:
  1706. maxRetries:
  1707. format: int32
  1708. type: integer
  1709. retryInterval:
  1710. type: string
  1711. type: object
  1712. required:
  1713. - path
  1714. - provider
  1715. type: object
  1716. webhookSpec:
  1717. description: WebhookSpec controls the behavior of the external
  1718. generator. Any body parameters should be passed to the server
  1719. through the parameters field.
  1720. properties:
  1721. auth:
  1722. description: Auth specifies a authorization protocol. Only
  1723. one protocol may be set.
  1724. maxProperties: 1
  1725. minProperties: 1
  1726. properties:
  1727. ntlm:
  1728. description: NTLMProtocol configures the store to use
  1729. NTLM for auth
  1730. properties:
  1731. passwordSecret:
  1732. description: |-
  1733. A reference to a specific 'key' within a Secret resource.
  1734. In some instances, `key` is a required field.
  1735. properties:
  1736. key:
  1737. description: |-
  1738. A key in the referenced Secret.
  1739. Some instances of this field may be defaulted, in others it may be required.
  1740. maxLength: 253
  1741. minLength: 1
  1742. pattern: ^[-._a-zA-Z0-9]+$
  1743. type: string
  1744. name:
  1745. description: The name of the Secret resource being
  1746. referred to.
  1747. maxLength: 253
  1748. minLength: 1
  1749. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1750. type: string
  1751. namespace:
  1752. description: |-
  1753. The namespace of the Secret resource being referred to.
  1754. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1755. maxLength: 63
  1756. minLength: 1
  1757. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1758. type: string
  1759. type: object
  1760. usernameSecret:
  1761. description: |-
  1762. A reference to a specific 'key' within a Secret resource.
  1763. In some instances, `key` is a required field.
  1764. properties:
  1765. key:
  1766. description: |-
  1767. A key in the referenced Secret.
  1768. Some instances of this field may be defaulted, in others it may be required.
  1769. maxLength: 253
  1770. minLength: 1
  1771. pattern: ^[-._a-zA-Z0-9]+$
  1772. type: string
  1773. name:
  1774. description: The name of the Secret resource being
  1775. referred to.
  1776. maxLength: 253
  1777. minLength: 1
  1778. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1779. type: string
  1780. namespace:
  1781. description: |-
  1782. The namespace of the Secret resource being referred to.
  1783. Ignored if referent is not cluster-scoped, otherwise defaults to the namespace of the referent.
  1784. maxLength: 63
  1785. minLength: 1
  1786. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1787. type: string
  1788. type: object
  1789. required:
  1790. - passwordSecret
  1791. - usernameSecret
  1792. type: object
  1793. type: object
  1794. body:
  1795. description: Body
  1796. type: string
  1797. caBundle:
  1798. description: |-
  1799. PEM encoded CA bundle used to validate webhook server certificate. Only used
  1800. if the Server URL is using HTTPS protocol. This parameter is ignored for
  1801. plain HTTP protocol connection. If not set the system root certificates
  1802. are used to validate the TLS connection.
  1803. format: byte
  1804. type: string
  1805. caProvider:
  1806. description: The provider for the CA bundle to use to validate
  1807. webhook server certificate.
  1808. properties:
  1809. key:
  1810. description: The key where the CA certificate can be found
  1811. in the Secret or ConfigMap.
  1812. maxLength: 253
  1813. minLength: 1
  1814. pattern: ^[-._a-zA-Z0-9]+$
  1815. type: string
  1816. name:
  1817. description: The name of the object located at the provider
  1818. type.
  1819. maxLength: 253
  1820. minLength: 1
  1821. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1822. type: string
  1823. namespace:
  1824. description: The namespace the Provider type is in.
  1825. maxLength: 63
  1826. minLength: 1
  1827. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
  1828. type: string
  1829. type:
  1830. description: The type of provider to use such as "Secret",
  1831. or "ConfigMap".
  1832. enum:
  1833. - Secret
  1834. - ConfigMap
  1835. type: string
  1836. required:
  1837. - name
  1838. - type
  1839. type: object
  1840. headers:
  1841. additionalProperties:
  1842. type: string
  1843. description: Headers
  1844. type: object
  1845. method:
  1846. description: Webhook Method
  1847. type: string
  1848. result:
  1849. description: Result formatting
  1850. properties:
  1851. jsonPath:
  1852. description: Json path of return value
  1853. type: string
  1854. type: object
  1855. secrets:
  1856. description: |-
  1857. Secrets to fill in templates
  1858. These secrets will be passed to the templating function as key value pairs under the given name
  1859. items:
  1860. properties:
  1861. name:
  1862. description: Name of this secret in templates
  1863. type: string
  1864. secretRef:
  1865. description: Secret ref to fill in credentials
  1866. properties:
  1867. key:
  1868. description: The key where the token is found.
  1869. maxLength: 253
  1870. minLength: 1
  1871. pattern: ^[-._a-zA-Z0-9]+$
  1872. type: string
  1873. name:
  1874. description: The name of the Secret resource being
  1875. referred to.
  1876. maxLength: 253
  1877. minLength: 1
  1878. pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
  1879. type: string
  1880. type: object
  1881. required:
  1882. - name
  1883. - secretRef
  1884. type: object
  1885. type: array
  1886. timeout:
  1887. description: Timeout
  1888. type: string
  1889. url:
  1890. description: Webhook url to call
  1891. type: string
  1892. required:
  1893. - result
  1894. - url
  1895. type: object
  1896. type: object
  1897. kind:
  1898. description: Kind the kind of this generator.
  1899. enum:
  1900. - ACRAccessToken
  1901. - ECRAuthorizationToken
  1902. - Fake
  1903. - GCRAccessToken
  1904. - GithubAccessToken
  1905. - QuayAccessToken
  1906. - Password
  1907. - STSSessionToken
  1908. - UUID
  1909. - VaultDynamicSecret
  1910. - Webhook
  1911. - Grafana
  1912. type: string
  1913. required:
  1914. - generator
  1915. - kind
  1916. type: object
  1917. type: object
  1918. served: true
  1919. storage: true
  1920. subresources:
  1921. status: {}