values.schema.json 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781
  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. "presets": {
  39. "type": "object",
  40. "additionalProperties": false,
  41. "properties": {
  42. "logsCollection": {
  43. "type": "object",
  44. "additionalProperties": false,
  45. "properties": {
  46. "enabled": {
  47. "description": "Specifies whether the collector should collect logs.",
  48. "type": "boolean"
  49. },
  50. "includeCollectorLogs": {
  51. "description": "Specifies whether the collector should collect its own logs.",
  52. "type": "boolean"
  53. },
  54. "storeCheckpoints": {
  55. "description": "Specifies whether logs checkpoints should be stored in /var/lib/otelcol/ host directory.",
  56. "type": "boolean"
  57. }
  58. }
  59. },
  60. "hostMetrics": {
  61. "type": "object",
  62. "additionalProperties": false,
  63. "properties": {
  64. "enabled": {
  65. "description": "Specifies whether the collector should collect host metrics.",
  66. "type": "boolean"
  67. }
  68. }
  69. },
  70. "kubeletMetrics": {
  71. "type": "object",
  72. "additionalProperties": false,
  73. "properties": {
  74. "enabled": {
  75. "description": "Specifies whether the collector should collect kubelet metrics.",
  76. "type": "boolean"
  77. }
  78. }
  79. },
  80. "kubernetesAttributes": {
  81. "type": "object",
  82. "additionalProperties": false,
  83. "properties": {
  84. "enabled": {
  85. "description": "Specifies whether the collector should add Kubernetes metdata to resource attributes.",
  86. "type": "boolean"
  87. }
  88. }
  89. },
  90. "clusterMetrics": {
  91. "type": "object",
  92. "additionalProperties": false,
  93. "properties": {
  94. "enabled": {
  95. "description": "Specifies whether the collector should collect cluster metrics.",
  96. "type": "boolean"
  97. }
  98. }
  99. }
  100. }
  101. },
  102. "configMap": {
  103. "type": "object",
  104. "properties": {
  105. "create": {
  106. "description": "Specifies whether a configMap should be created (true by default).",
  107. "type": "boolean"
  108. }
  109. }
  110. },
  111. "config": {
  112. "description": "Configuration that applies to both standalone and agent collector. Overwritable by standalone and agent specific configs.",
  113. "type": "object"
  114. },
  115. "image": {
  116. "description": "Image use in both standalone and agent configs",
  117. "type": "object",
  118. "additionalProperties": false,
  119. "properties": {
  120. "repository": {
  121. "type": "string"
  122. },
  123. "tag": {
  124. "type": "string"
  125. },
  126. "digest": {
  127. "type": "string"
  128. },
  129. "pullPolicy": {
  130. "type": "string",
  131. "enum": ["IfNotPresent", "Always", "Never"]
  132. }
  133. }
  134. },
  135. "imagePullSecrets": {
  136. "type": "array",
  137. "items": {
  138. "type": "object"
  139. }
  140. },
  141. "command": {
  142. "description": "OpenTelemetry Collector executable",
  143. "type": "object",
  144. "additionalProperties": false,
  145. "properties": {
  146. "name": {
  147. "type": "string"
  148. },
  149. "extraArgs": {
  150. "type": "array",
  151. "items": {
  152. "type": "string"
  153. }
  154. }
  155. }
  156. },
  157. "serviceAccount": {
  158. "type": "object",
  159. "additionalProperties": false,
  160. "properties": {
  161. "create": {
  162. "type": "boolean"
  163. },
  164. "annotations": {
  165. "type": "object"
  166. },
  167. "name": {
  168. "type": "string"
  169. }
  170. },
  171. "required": ["create"]
  172. },
  173. "clusterRole": {
  174. "type": "object",
  175. "additionalProperties": false,
  176. "properties": {
  177. "create": {
  178. "type": "boolean"
  179. },
  180. "annotations": {
  181. "type": "object"
  182. },
  183. "name": {
  184. "type": "string"
  185. },
  186. "rules": {
  187. "type": "array",
  188. "items": {
  189. "type": "object"
  190. }
  191. },
  192. "clusterRoleBinding": {
  193. "type": "object",
  194. "additionalProperties": false,
  195. "properties": {
  196. "annotations": {
  197. "type": "object"
  198. },
  199. "name": {
  200. "type": "string"
  201. }
  202. }
  203. }
  204. },
  205. "required": ["create"]
  206. },
  207. "podSecurityContext": {
  208. "type": "object"
  209. },
  210. "securityContext": {
  211. "type": "object"
  212. },
  213. "nodeSelector": {
  214. "type": "object"
  215. },
  216. "tolerations": {
  217. "type": "array",
  218. "items": {
  219. "type": "object"
  220. }
  221. },
  222. "affinity": {
  223. "type": "object"
  224. },
  225. "topologySpreadConstraints": {
  226. "type": "object"
  227. },
  228. "priorityClassName": {
  229. "type": "string"
  230. },
  231. "extraContainers": {
  232. "type": "array",
  233. "items": {
  234. "type": "object",
  235. "additionalProperties": true,
  236. "properties": {
  237. "name": {
  238. "type": "string"
  239. }
  240. },
  241. "required": ["name"]
  242. }
  243. },
  244. "initContainers": {
  245. "type": "array",
  246. "items": {
  247. "type": "object",
  248. "additionalProperties": true,
  249. "properties": {
  250. "name": {
  251. "type": "string"
  252. }
  253. },
  254. "required": ["name"]
  255. }
  256. },
  257. "extraEnvs": {
  258. "type": "array",
  259. "items": {
  260. "type": "object"
  261. }
  262. },
  263. "extraConfigMapMounts": {
  264. "type": "array",
  265. "items": {
  266. "type": "object"
  267. }
  268. },
  269. "extraHostPathMounts": {
  270. "type": "array",
  271. "items": {
  272. "type": "object"
  273. }
  274. },
  275. "secretMounts": {
  276. "type": "array",
  277. "items": {
  278. "type": "object"
  279. }
  280. },
  281. "extraVolumes": {
  282. "type": "array",
  283. "items": {
  284. "type": "object"
  285. }
  286. },
  287. "extraVolumeMounts": {
  288. "type": "array",
  289. "items": {
  290. "type": "object"
  291. }
  292. },
  293. "ports": {
  294. "type": "object",
  295. "patternProperties": {
  296. ".*": {
  297. "type": "object",
  298. "additionalProperties": false,
  299. "properties": {
  300. "enabled": {
  301. "type": "boolean"
  302. },
  303. "containerPort": {
  304. "type": "integer"
  305. },
  306. "servicePort": {
  307. "type": "integer"
  308. },
  309. "hostPort": {
  310. "type": "integer"
  311. },
  312. "nodePort": {
  313. "type": "integer"
  314. },
  315. "protocol": {
  316. "type": "string"
  317. },
  318. "appProtocol": {
  319. "type": "string"
  320. }
  321. },
  322. "required": ["enabled"]
  323. }
  324. }
  325. },
  326. "containerLogs": {
  327. "type": "object",
  328. "properties": {
  329. "enabled": {
  330. "type": "boolean"
  331. }
  332. },
  333. "required": ["enabled"]
  334. },
  335. "resources": {
  336. "type": "object",
  337. "additionalProperties": false,
  338. "properties": {
  339. "limits": {
  340. "type": "object",
  341. "additionalProperties": false,
  342. "properties": {
  343. "cpu": {
  344. "type": ["string", "integer"]
  345. },
  346. "memory": {
  347. "type": "string"
  348. }
  349. }
  350. },
  351. "requests": {
  352. "type": "object",
  353. "additionalProperties": false,
  354. "properties": {
  355. "cpu": {
  356. "type": ["string", "integer"]
  357. },
  358. "memory": {
  359. "type": "string"
  360. }
  361. }
  362. }
  363. }
  364. },
  365. "lifecycleHooks": {
  366. "type": "object",
  367. "additionalProperties": false,
  368. "properties": {
  369. "postStart": {
  370. "type": "object",
  371. "additionalProperties": false,
  372. "properties": {
  373. "exec": {
  374. "type": "object",
  375. "additionalProperties": false,
  376. "properties": {
  377. "command": {
  378. "type": "array",
  379. "items": {
  380. "type": "string"
  381. }
  382. }
  383. }
  384. },
  385. "httpGet": {
  386. "type": "object",
  387. "additionalProperties": false,
  388. "properties": {
  389. "host": {
  390. "type": "string"
  391. },
  392. "httpHeaders": {
  393. "type": "array"
  394. },
  395. "path": {
  396. "type": "string"
  397. },
  398. "port": {
  399. "type": "integer"
  400. },
  401. "scheme": {
  402. "type": "string"
  403. }
  404. }
  405. }
  406. },
  407. "oneOf": [
  408. {
  409. "required": ["exec"]
  410. },
  411. {
  412. "required": ["httpGet"]
  413. }
  414. ]
  415. },
  416. "preStop": {
  417. "type": "object",
  418. "additionalProperties": false,
  419. "properties": {
  420. "exec": {
  421. "type": "object",
  422. "additionalProperties": false,
  423. "properties": {
  424. "command": {
  425. "type": "array",
  426. "items": {
  427. "type": "string"
  428. }
  429. }
  430. }
  431. },
  432. "httpGet": {
  433. "type": "object",
  434. "additionalProperties": false,
  435. "properties": {
  436. "host": {
  437. "type": "string"
  438. },
  439. "httpHeaders": {
  440. "type": "array"
  441. },
  442. "path": {
  443. "type": "string"
  444. },
  445. "port": {
  446. "type": "integer"
  447. },
  448. "scheme": {
  449. "type": "string"
  450. }
  451. }
  452. }
  453. },
  454. "oneOf": [
  455. {
  456. "required": ["exec"]
  457. },
  458. {
  459. "required": ["httpGet"]
  460. }
  461. ]
  462. }
  463. }
  464. },
  465. "podAnnotations": {
  466. "type": "object"
  467. },
  468. "podLabels": {
  469. "type": "object"
  470. },
  471. "hostNetwork": {
  472. "type": "boolean"
  473. },
  474. "dnsPolicy": {
  475. "type": "string",
  476. "enum": ["ClusterFirst", "ClusterFirstWithHostNet", "Default", "None", ""]
  477. },
  478. "replicaCount": {
  479. "type": "integer"
  480. },
  481. "revisionHistoryLimit": {
  482. "type": "integer"
  483. },
  484. "annotations": {
  485. "type": "object"
  486. },
  487. "service": {
  488. "type": "object",
  489. "additionalProperties": false,
  490. "properties": {
  491. "type": {
  492. "type": "string",
  493. "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"]
  494. },
  495. "clusterIP": {
  496. "type": "string"
  497. },
  498. "loadBalancerIP": {
  499. "type": "string"
  500. },
  501. "loadBalancerSourceRanges": {
  502. "type": "array",
  503. "items": {
  504. "type": "string"
  505. }
  506. },
  507. "annotations": {
  508. "type": "object"
  509. }
  510. }
  511. },
  512. "ingress": {
  513. "type": "object",
  514. "additionalProperties": false,
  515. "properties": {
  516. "enabled": {
  517. "type": "boolean"
  518. },
  519. "ingressClassName": {
  520. "type": "string"
  521. },
  522. "annotations": {
  523. "type": "object"
  524. },
  525. "hosts": {
  526. "type": "array",
  527. "items": {
  528. "type": "object",
  529. "additionalProperties": false,
  530. "properties": {
  531. "host": {
  532. "type": "string"
  533. },
  534. "paths": {
  535. "type": "array",
  536. "items": {
  537. "type": "object",
  538. "additionalProperties": false,
  539. "properties": {
  540. "path": {
  541. "type": "string"
  542. },
  543. "pathType": {
  544. "type": "string",
  545. "enum": ["Exact", "Prefix", "ImplementationSpecific"]
  546. },
  547. "port": {
  548. "type": "integer"
  549. }
  550. },
  551. "required": ["path", "pathType", "port"]
  552. }
  553. }
  554. },
  555. "required": ["paths"]
  556. }
  557. },
  558. "tls": {
  559. "type": "array",
  560. "items": {
  561. "type": "object",
  562. "additionalProperties": false,
  563. "properties": {
  564. "secretName": {
  565. "type": "string"
  566. },
  567. "hosts": {
  568. "type": "array",
  569. "items": {
  570. "type": "string"
  571. }
  572. }
  573. }
  574. }
  575. },
  576. "additionalIngresses": {
  577. "type": "array",
  578. "items": {
  579. "type": "object",
  580. "additionalProperties": false,
  581. "properties": {
  582. "name": {
  583. "type": "string"
  584. },
  585. "ingressClassName": {
  586. "type": "string"
  587. },
  588. "annotations": {
  589. "type": "object"
  590. },
  591. "hosts": {
  592. "type": "array",
  593. "items": {
  594. "type": "object",
  595. "additionalProperties": false,
  596. "properties": {
  597. "host": {
  598. "type": "string"
  599. },
  600. "paths": {
  601. "type": "array",
  602. "items": {
  603. "type": "object",
  604. "additionalProperties": false,
  605. "properties": {
  606. "path": {
  607. "type": "string"
  608. },
  609. "pathType": {
  610. "type": "string",
  611. "enum": [
  612. "Exact",
  613. "Prefix",
  614. "ImplementationSpecific"
  615. ]
  616. },
  617. "port": {
  618. "type": "integer"
  619. }
  620. },
  621. "required": ["path", "pathType", "port"]
  622. }
  623. }
  624. },
  625. "required": ["paths"]
  626. }
  627. },
  628. "tls": {
  629. "type": "array",
  630. "items": {
  631. "type": "object",
  632. "additionalProperties": false,
  633. "properties": {
  634. "secretName": {
  635. "type": "string"
  636. },
  637. "hosts": {
  638. "type": "array",
  639. "items": {
  640. "type": "string"
  641. }
  642. }
  643. }
  644. }
  645. }
  646. },
  647. "required": ["name"]
  648. }
  649. }
  650. },
  651. "required": ["enabled"]
  652. },
  653. "podMonitor": {
  654. "type": "object",
  655. "properties": {
  656. "enabled": {
  657. "type": "boolean"
  658. },
  659. "metricsEndpoints": {
  660. "type": "array",
  661. "items": {
  662. "type": "object"
  663. }
  664. },
  665. "extraLabels": {
  666. "type": "object"
  667. }
  668. },
  669. "required": ["enabled"]
  670. },
  671. "serviceMonitor": {
  672. "type": "object",
  673. "properties": {
  674. "enabled": {
  675. "type": "boolean"
  676. },
  677. "metricsEndpoints": {
  678. "type": "array",
  679. "items": {
  680. "type": "object"
  681. }
  682. },
  683. "extraLabels": {
  684. "type": "object"
  685. }
  686. },
  687. "required": ["enabled"]
  688. },
  689. "podDisruptionBudget": {
  690. "type": "object",
  691. "properties": {
  692. "enabled": {
  693. "type": "boolean"
  694. }
  695. },
  696. "required": ["enabled"]
  697. },
  698. "autoscaling": {
  699. "type": "object",
  700. "properties": {
  701. "enabled": {
  702. "type": "boolean"
  703. },
  704. "minReplicas": {
  705. "type": "integer"
  706. },
  707. "maxReplicas": {
  708. "type": "integer"
  709. },
  710. "targetCPUUtilizationPercentage": {
  711. "type": "integer"
  712. }
  713. },
  714. "required": ["enabled"]
  715. },
  716. "rollout": {
  717. "type": "object",
  718. "properties": {
  719. "rollingUpdate": {
  720. "type": "object",
  721. "properties": {
  722. "maxSurge": {
  723. "$ref": "#/$defs/intOrString"
  724. },
  725. "maxUnavailable": {
  726. "$ref": "#/$defs/intOrString"
  727. }
  728. }
  729. },
  730. "strategy": {
  731. "type": "string",
  732. "enum": ["OnDelete", "Recreate", "RollingUpdate"],
  733. "default": "RollingUpdate"
  734. }
  735. },
  736. "required": ["strategy"]
  737. },
  738. "prometheusRule": {
  739. "type": "object",
  740. "properties": {
  741. "enabled": {
  742. "type": "boolean"
  743. },
  744. "groups": {
  745. "type": "array",
  746. "items": {
  747. "type": "object"
  748. }
  749. },
  750. "defaultRules": {
  751. "type": "object",
  752. "properties": {
  753. "enabled": {
  754. "type": "boolean"
  755. }
  756. },
  757. "required": ["enabled"]
  758. },
  759. "extraLabels": {
  760. "type": "object"
  761. }
  762. },
  763. "required": ["enabled"]
  764. },
  765. "statefulset": {
  766. "type": "object",
  767. "properties": {
  768. "volumeClaimTemplates": {
  769. "type": "array",
  770. "items": {
  771. "type": "object"
  772. }
  773. },
  774. "podManagementPolicy": {
  775. "type": "string"
  776. }
  777. }
  778. }
  779. },
  780. "required": ["mode"]
  781. }