values.schema.json 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908
  1. {
  2. "$schema": "http://json-schema.org/schema#",
  3. "$defs": {
  4. "intOrString": {
  5. "anyOf": [
  6. {
  7. "type": "string"
  8. },
  9. {
  10. "type": "integer"
  11. }
  12. ]
  13. }
  14. },
  15. "type": "object",
  16. "title": "Values",
  17. "additionalProperties": false,
  18. "properties": {
  19. "enabled": {
  20. "description": "Usually used when using Opentelemetry-collector as a subchart.",
  21. "type": "boolean"
  22. },
  23. "global": {
  24. "type": "object"
  25. },
  26. "nameOverride": {
  27. "description": "Override name of the chart used in Kubernetes object names.",
  28. "type": "string"
  29. },
  30. "fullnameOverride": {
  31. "description": "Override fully qualified app name.",
  32. "type": "string"
  33. },
  34. "mode": {
  35. "type": "string",
  36. "enum": ["daemonset", "deployment", "statefulset", ""]
  37. },
  38. "namespaceOverride": {
  39. "type": "string",
  40. "description": "Name of the namespace to deploy the resources into."
  41. },
  42. "presets": {
  43. "type": "object",
  44. "additionalProperties": false,
  45. "properties": {
  46. "logsCollection": {
  47. "type": "object",
  48. "additionalProperties": false,
  49. "properties": {
  50. "enabled": {
  51. "description": "Specifies whether the collector should collect logs.",
  52. "type": "boolean"
  53. },
  54. "includeCollectorLogs": {
  55. "description": "Specifies whether the collector should collect its own logs.",
  56. "type": "boolean"
  57. },
  58. "storeCheckpoints": {
  59. "description": "Specifies whether logs checkpoints should be stored in /var/lib/otelcol/ host directory.",
  60. "type": "boolean"
  61. },
  62. "maxRecombineLogSize": {
  63. "description": "Specifies the max recombine log size.",
  64. "type": "integer"
  65. }
  66. }
  67. },
  68. "hostMetrics": {
  69. "type": "object",
  70. "additionalProperties": false,
  71. "properties": {
  72. "enabled": {
  73. "description": "Specifies whether the collector should collect host metrics.",
  74. "type": "boolean"
  75. }
  76. }
  77. },
  78. "kubeletMetrics": {
  79. "type": "object",
  80. "additionalProperties": false,
  81. "properties": {
  82. "enabled": {
  83. "description": "Specifies whether the collector should collect kubelet metrics.",
  84. "type": "boolean"
  85. }
  86. }
  87. },
  88. "kubernetesAttributes": {
  89. "type": "object",
  90. "additionalProperties": false,
  91. "properties": {
  92. "enabled": {
  93. "description": "Specifies whether the collector should add Kubernetes metdata to resource attributes.",
  94. "type": "boolean"
  95. },
  96. "extractAllPodLabels": {
  97. "description": "Specifies whether the k8sattributes processor should extract all pod labels.",
  98. "type": "boolean"
  99. },
  100. "extractAllPodAnnotations": {
  101. "description": "Specifies whether the k8sattributes processor should extract all pod annotations.",
  102. "type": "boolean"
  103. }
  104. }
  105. },
  106. "kubernetesEvents": {
  107. "type": "object",
  108. "additionalProperties": false,
  109. "properties": {
  110. "enabled": {
  111. "description": "Specifies whether the collector should collect Kubernetes objects.",
  112. "type": "boolean"
  113. }
  114. }
  115. },
  116. "clusterMetrics": {
  117. "type": "object",
  118. "additionalProperties": false,
  119. "properties": {
  120. "enabled": {
  121. "description": "Specifies whether the collector should collect cluster metrics.",
  122. "type": "boolean"
  123. }
  124. }
  125. }
  126. }
  127. },
  128. "configMap": {
  129. "type": "object",
  130. "properties": {
  131. "create": {
  132. "description": "Specifies whether a configMap should be created (true by default).",
  133. "type": "boolean"
  134. }
  135. }
  136. },
  137. "config": {
  138. "description": "Configuration that applies to both standalone and agent collector. Overwritable by standalone and agent specific configs.",
  139. "type": "object"
  140. },
  141. "image": {
  142. "description": "Image use in both standalone and agent configs",
  143. "type": "object",
  144. "additionalProperties": false,
  145. "properties": {
  146. "repository": {
  147. "type": "string"
  148. },
  149. "tag": {
  150. "type": "string"
  151. },
  152. "digest": {
  153. "type": "string"
  154. },
  155. "pullPolicy": {
  156. "type": "string",
  157. "enum": ["IfNotPresent", "Always", "Never"]
  158. }
  159. }
  160. },
  161. "imagePullSecrets": {
  162. "type": "array",
  163. "items": {
  164. "type": "object"
  165. }
  166. },
  167. "command": {
  168. "description": "OpenTelemetry Collector executable",
  169. "type": "object",
  170. "additionalProperties": false,
  171. "properties": {
  172. "name": {
  173. "type": "string"
  174. },
  175. "extraArgs": {
  176. "type": "array",
  177. "items": {
  178. "type": "string"
  179. }
  180. }
  181. }
  182. },
  183. "serviceAccount": {
  184. "type": "object",
  185. "additionalProperties": false,
  186. "properties": {
  187. "create": {
  188. "type": "boolean"
  189. },
  190. "annotations": {
  191. "type": "object"
  192. },
  193. "name": {
  194. "type": "string"
  195. }
  196. },
  197. "required": ["create"]
  198. },
  199. "clusterRole": {
  200. "type": "object",
  201. "additionalProperties": false,
  202. "properties": {
  203. "create": {
  204. "type": "boolean"
  205. },
  206. "annotations": {
  207. "type": "object"
  208. },
  209. "name": {
  210. "type": "string"
  211. },
  212. "rules": {
  213. "type": "array",
  214. "items": {
  215. "type": "object"
  216. }
  217. },
  218. "clusterRoleBinding": {
  219. "type": "object",
  220. "additionalProperties": false,
  221. "properties": {
  222. "annotations": {
  223. "type": "object"
  224. },
  225. "name": {
  226. "type": "string"
  227. }
  228. }
  229. }
  230. },
  231. "required": ["create"]
  232. },
  233. "podSecurityContext": {
  234. "type": "object"
  235. },
  236. "securityContext": {
  237. "type": "object"
  238. },
  239. "nodeSelector": {
  240. "type": "object"
  241. },
  242. "tolerations": {
  243. "type": "array",
  244. "items": {
  245. "type": "object"
  246. }
  247. },
  248. "affinity": {
  249. "type": "object"
  250. },
  251. "topologySpreadConstraints": {
  252. "type": "array",
  253. "items": {
  254. "type": "object"
  255. }
  256. },
  257. "priorityClassName": {
  258. "type": "string"
  259. },
  260. "extraContainers": {
  261. "type": "array",
  262. "items": {
  263. "type": "object",
  264. "additionalProperties": true,
  265. "properties": {
  266. "name": {
  267. "type": "string"
  268. }
  269. },
  270. "required": ["name"]
  271. }
  272. },
  273. "initContainers": {
  274. "type": "array",
  275. "items": {
  276. "type": "object",
  277. "additionalProperties": true,
  278. "properties": {
  279. "name": {
  280. "type": "string"
  281. }
  282. },
  283. "required": ["name"]
  284. }
  285. },
  286. "extraEnvs": {
  287. "type": "array",
  288. "items": {
  289. "type": "object"
  290. }
  291. },
  292. "extraEnvsFrom": {
  293. "type": "array",
  294. "items": {
  295. "type": "object"
  296. }
  297. },
  298. "extraVolumes": {
  299. "type": "array",
  300. "items": {
  301. "type": "object"
  302. }
  303. },
  304. "extraVolumeMounts": {
  305. "type": "array",
  306. "items": {
  307. "type": "object"
  308. }
  309. },
  310. "ports": {
  311. "type": "object",
  312. "patternProperties": {
  313. ".*": {
  314. "type": "object",
  315. "additionalProperties": false,
  316. "properties": {
  317. "enabled": {
  318. "type": "boolean"
  319. },
  320. "containerPort": {
  321. "type": "integer"
  322. },
  323. "servicePort": {
  324. "type": "integer"
  325. },
  326. "hostPort": {
  327. "type": "integer"
  328. },
  329. "nodePort": {
  330. "type": "integer"
  331. },
  332. "protocol": {
  333. "type": "string"
  334. },
  335. "appProtocol": {
  336. "type": "string"
  337. }
  338. },
  339. "required": ["enabled"]
  340. }
  341. }
  342. },
  343. "resources": {
  344. "type": "object",
  345. "additionalProperties": false,
  346. "properties": {
  347. "limits": {
  348. "type": "object",
  349. "additionalProperties": false,
  350. "properties": {
  351. "cpu": {
  352. "type": ["string", "integer"]
  353. },
  354. "memory": {
  355. "type": "string"
  356. }
  357. }
  358. },
  359. "requests": {
  360. "type": "object",
  361. "additionalProperties": false,
  362. "properties": {
  363. "cpu": {
  364. "type": ["string", "integer"]
  365. },
  366. "memory": {
  367. "type": "string"
  368. }
  369. }
  370. }
  371. }
  372. },
  373. "lifecycleHooks": {
  374. "type": "object",
  375. "additionalProperties": false,
  376. "properties": {
  377. "postStart": {
  378. "type": "object",
  379. "additionalProperties": false,
  380. "properties": {
  381. "exec": {
  382. "type": "object",
  383. "additionalProperties": false,
  384. "properties": {
  385. "command": {
  386. "type": "array",
  387. "items": {
  388. "type": "string"
  389. }
  390. }
  391. }
  392. },
  393. "httpGet": {
  394. "type": "object",
  395. "additionalProperties": false,
  396. "properties": {
  397. "host": {
  398. "type": "string"
  399. },
  400. "httpHeaders": {
  401. "type": "array"
  402. },
  403. "path": {
  404. "type": "string"
  405. },
  406. "port": {
  407. "type": "integer"
  408. },
  409. "scheme": {
  410. "type": "string"
  411. }
  412. }
  413. }
  414. },
  415. "oneOf": [
  416. {
  417. "required": ["exec"]
  418. },
  419. {
  420. "required": ["httpGet"]
  421. }
  422. ]
  423. },
  424. "preStop": {
  425. "type": "object",
  426. "additionalProperties": false,
  427. "properties": {
  428. "exec": {
  429. "type": "object",
  430. "additionalProperties": false,
  431. "properties": {
  432. "command": {
  433. "type": "array",
  434. "items": {
  435. "type": "string"
  436. }
  437. }
  438. }
  439. },
  440. "httpGet": {
  441. "type": "object",
  442. "additionalProperties": false,
  443. "properties": {
  444. "host": {
  445. "type": "string"
  446. },
  447. "httpHeaders": {
  448. "type": "array"
  449. },
  450. "path": {
  451. "type": "string"
  452. },
  453. "port": {
  454. "type": "integer"
  455. },
  456. "scheme": {
  457. "type": "string"
  458. }
  459. }
  460. }
  461. },
  462. "oneOf": [
  463. {
  464. "required": ["exec"]
  465. },
  466. {
  467. "required": ["httpGet"]
  468. }
  469. ]
  470. }
  471. }
  472. },
  473. "livenessProbe": {
  474. "type": "object",
  475. "additionalProperties": false,
  476. "properties": {
  477. "initialDelaySeconds": {
  478. "type": "integer"
  479. },
  480. "periodSeconds": {
  481. "type": "integer"
  482. },
  483. "timeoutSeconds": {
  484. "type": "integer"
  485. },
  486. "failureThreshold": {
  487. "type": "integer"
  488. },
  489. "terminationGracePeriodSeconds": {
  490. "type": "integer"
  491. },
  492. "httpGet": {
  493. "type": "object",
  494. "additionalProperties": false,
  495. "properties": {
  496. "port": {
  497. "type": "integer"
  498. },
  499. "path": {
  500. "type": "string"
  501. }
  502. }
  503. }
  504. }
  505. },
  506. "readinessProbe": {
  507. "type": "object",
  508. "additionalProperties": false,
  509. "properties": {
  510. "initialDelaySeconds": {
  511. "type": "integer"
  512. },
  513. "periodSeconds": {
  514. "type": "integer"
  515. },
  516. "timeoutSeconds": {
  517. "type": "integer"
  518. },
  519. "successThreshold": {
  520. "type": "integer"
  521. },
  522. "failureThreshold": {
  523. "type": "integer"
  524. },
  525. "httpGet": {
  526. "type": "object",
  527. "additionalProperties": false,
  528. "properties": {
  529. "port": {
  530. "type": "integer"
  531. },
  532. "path": {
  533. "type": "string"
  534. }
  535. }
  536. }
  537. }
  538. },
  539. "podAnnotations": {
  540. "type": "object"
  541. },
  542. "podLabels": {
  543. "type": "object"
  544. },
  545. "hostNetwork": {
  546. "type": "boolean"
  547. },
  548. "dnsPolicy": {
  549. "type": "string",
  550. "enum": ["ClusterFirst", "ClusterFirstWithHostNet", "Default", "None", ""]
  551. },
  552. "dnsConfig": {
  553. "type": "object"
  554. },
  555. "replicaCount": {
  556. "type": "integer"
  557. },
  558. "revisionHistoryLimit": {
  559. "type": "integer"
  560. },
  561. "annotations": {
  562. "type": "object"
  563. },
  564. "service": {
  565. "type": "object",
  566. "additionalProperties": false,
  567. "properties": {
  568. "enabled": {
  569. "type": "boolean"
  570. },
  571. "type": {
  572. "type": "string",
  573. "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
  574. },
  575. "clusterIP": {
  576. "type": "string"
  577. },
  578. "loadBalancerIP": {
  579. "type": "string"
  580. },
  581. "loadBalancerSourceRanges": {
  582. "type": "array",
  583. "items": {
  584. "type": "string"
  585. }
  586. },
  587. "annotations": {
  588. "type": "object"
  589. },
  590. "internalTrafficPolicy": {
  591. "type": "string",
  592. "enum": ["Cluster", "Local", ""]
  593. },
  594. "externalTrafficPolicy": {
  595. "type": "string",
  596. "enum": ["Cluster", "Local", ""]
  597. }
  598. }
  599. },
  600. "ingress": {
  601. "type": "object",
  602. "additionalProperties": false,
  603. "properties": {
  604. "enabled": {
  605. "type": "boolean"
  606. },
  607. "ingressClassName": {
  608. "type": "string"
  609. },
  610. "annotations": {
  611. "type": "object"
  612. },
  613. "hosts": {
  614. "type": "array",
  615. "items": {
  616. "type": "object",
  617. "additionalProperties": false,
  618. "properties": {
  619. "host": {
  620. "type": "string"
  621. },
  622. "paths": {
  623. "type": "array",
  624. "items": {
  625. "type": "object",
  626. "additionalProperties": false,
  627. "properties": {
  628. "path": {
  629. "type": "string"
  630. },
  631. "pathType": {
  632. "type": "string",
  633. "enum": ["Exact", "Prefix", "ImplementationSpecific"]
  634. },
  635. "port": {
  636. "type": "integer"
  637. }
  638. },
  639. "required": ["path", "pathType", "port"]
  640. }
  641. }
  642. },
  643. "required": ["paths"]
  644. }
  645. },
  646. "tls": {
  647. "type": "array",
  648. "items": {
  649. "type": "object",
  650. "additionalProperties": false,
  651. "properties": {
  652. "secretName": {
  653. "type": "string"
  654. },
  655. "hosts": {
  656. "type": "array",
  657. "items": {
  658. "type": "string"
  659. }
  660. }
  661. }
  662. }
  663. },
  664. "additionalIngresses": {
  665. "type": "array",
  666. "items": {
  667. "type": "object",
  668. "additionalProperties": false,
  669. "properties": {
  670. "name": {
  671. "type": "string"
  672. },
  673. "ingressClassName": {
  674. "type": "string"
  675. },
  676. "annotations": {
  677. "type": "object"
  678. },
  679. "hosts": {
  680. "type": "array",
  681. "items": {
  682. "type": "object",
  683. "additionalProperties": false,
  684. "properties": {
  685. "host": {
  686. "type": "string"
  687. },
  688. "paths": {
  689. "type": "array",
  690. "items": {
  691. "type": "object",
  692. "additionalProperties": false,
  693. "properties": {
  694. "path": {
  695. "type": "string"
  696. },
  697. "pathType": {
  698. "type": "string",
  699. "enum": [
  700. "Exact",
  701. "Prefix",
  702. "ImplementationSpecific"
  703. ]
  704. },
  705. "port": {
  706. "type": "integer"
  707. }
  708. },
  709. "required": ["path", "pathType", "port"]
  710. }
  711. }
  712. },
  713. "required": ["paths"]
  714. }
  715. },
  716. "tls": {
  717. "type": "array",
  718. "items": {
  719. "type": "object",
  720. "additionalProperties": false,
  721. "properties": {
  722. "secretName": {
  723. "type": "string"
  724. },
  725. "hosts": {
  726. "type": "array",
  727. "items": {
  728. "type": "string"
  729. }
  730. }
  731. }
  732. }
  733. }
  734. },
  735. "required": ["name"]
  736. }
  737. }
  738. },
  739. "required": ["enabled"]
  740. },
  741. "podMonitor": {
  742. "type": "object",
  743. "properties": {
  744. "enabled": {
  745. "type": "boolean"
  746. },
  747. "metricsEndpoints": {
  748. "type": "array",
  749. "items": {
  750. "type": "object"
  751. }
  752. },
  753. "extraLabels": {
  754. "type": "object"
  755. }
  756. },
  757. "required": ["enabled"]
  758. },
  759. "serviceMonitor": {
  760. "type": "object",
  761. "properties": {
  762. "enabled": {
  763. "type": "boolean"
  764. },
  765. "metricsEndpoints": {
  766. "type": "array",
  767. "items": {
  768. "type": "object"
  769. }
  770. },
  771. "extraLabels": {
  772. "type": "object"
  773. }
  774. },
  775. "required": ["enabled"]
  776. },
  777. "podDisruptionBudget": {
  778. "type": "object",
  779. "properties": {
  780. "enabled": {
  781. "type": "boolean"
  782. }
  783. },
  784. "required": ["enabled"]
  785. },
  786. "autoscaling": {
  787. "type": "object",
  788. "properties": {
  789. "enabled": {
  790. "type": "boolean"
  791. },
  792. "minReplicas": {
  793. "type": "integer"
  794. },
  795. "maxReplicas": {
  796. "type": "integer"
  797. },
  798. "behavior": {
  799. "type": "object"
  800. },
  801. "targetCPUUtilizationPercentage": {
  802. "type": "integer"
  803. }
  804. },
  805. "required": ["enabled"]
  806. },
  807. "rollout": {
  808. "type": "object",
  809. "properties": {
  810. "rollingUpdate": {
  811. "type": "object",
  812. "properties": {
  813. "maxSurge": {
  814. "$ref": "#/$defs/intOrString"
  815. },
  816. "maxUnavailable": {
  817. "$ref": "#/$defs/intOrString"
  818. }
  819. }
  820. },
  821. "strategy": {
  822. "type": "string",
  823. "enum": ["OnDelete", "Recreate", "RollingUpdate"],
  824. "default": "RollingUpdate"
  825. }
  826. },
  827. "required": ["strategy"]
  828. },
  829. "prometheusRule": {
  830. "type": "object",
  831. "properties": {
  832. "enabled": {
  833. "type": "boolean"
  834. },
  835. "groups": {
  836. "type": "array",
  837. "items": {
  838. "type": "object"
  839. }
  840. },
  841. "defaultRules": {
  842. "type": "object",
  843. "properties": {
  844. "enabled": {
  845. "type": "boolean"
  846. }
  847. },
  848. "required": ["enabled"]
  849. },
  850. "extraLabels": {
  851. "type": "object"
  852. }
  853. },
  854. "required": ["enabled"]
  855. },
  856. "statefulset": {
  857. "type": "object",
  858. "properties": {
  859. "volumeClaimTemplates": {
  860. "type": "array",
  861. "items": {
  862. "type": "object"
  863. }
  864. },
  865. "podManagementPolicy": {
  866. "type": "string"
  867. }
  868. }
  869. },
  870. "networkPolicy": {
  871. "type": "object",
  872. "additionalProperties": false,
  873. "properties": {
  874. "enabled": {
  875. "type": "boolean"
  876. },
  877. "annotations": {
  878. "type": "object"
  879. },
  880. "allowIngressFrom": {
  881. "type": "array",
  882. "description": "List of sources which should be able to access the collector. See the standard NetworkPolicy 'spec.ingress.from' definition for more information: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/. If left empty, ingress traffic will be permitted on to all enabled ports from all sources.",
  883. "items": {
  884. "type": "object"
  885. }
  886. },
  887. "extraIngressRules": {
  888. "type": "array",
  889. "description": "Additional ingress rules to apply to the policy. See the standard NetworkPolicy 'spec.ingress' definition for more information: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/",
  890. "items": {
  891. "type": "object"
  892. }
  893. },
  894. "egressRules": {
  895. "description": "Optional egress configuration, see the standard NetworkPolicy 'spec.egress' definition for more information: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/network-policy-v1/",
  896. "type": "array",
  897. "items": {
  898. "type": "object"
  899. }
  900. }
  901. }
  902. },
  903. "useGOMEMLIMIT": {
  904. "type": "boolean"
  905. }
  906. },
  907. "required": ["mode"]
  908. }