config.yaml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. web:
  2. kind: "helm_release"
  3. match:
  4. chart_name: "web"
  5. policies:
  6. - path: "./policies/web/web_version.rego"
  7. name: "web.version"
  8. nginx:
  9. kind: "helm_release"
  10. match:
  11. name: nginx-ingress
  12. namespace: ingress-nginx
  13. mustExist: true
  14. policies:
  15. - path: "./policies/nginx/nginx_version.rego"
  16. name: "nginx.version"
  17. - path: "./policies/nginx/nginx_topology_spread_constraints.rego"
  18. name: "nginx.topology_spread_constraints"
  19. - path: "./policies/nginx/memory_limits.rego"
  20. name: "nginx.memory_limits"
  21. - path: "./policies/nginx/wait_shutdown.rego"
  22. name: "nginx.wait_shutdown"
  23. cert-manager:
  24. kind: "helm_release"
  25. match:
  26. name: cert-manager
  27. namespace: cert-manager
  28. mustExist: true
  29. policies:
  30. - path: "./policies/cert-manager/cert_manager_version.rego"
  31. name: "cert_manager.version"
  32. - path: "./policies/cert-manager/cainjector_memory_limits.rego"
  33. name: "cert_manager.cainjector_memory_limits"
  34. - path: "./policies/cert-manager/controller_memory_limits.rego"
  35. name: "cert_manager.controller_memory_limits"
  36. - path: "./policies/cert-manager/webhook_memory_limits.rego"
  37. name: "cert_manager.webhook_memory_limits"
  38. prometheus:
  39. kind: "helm_release"
  40. match:
  41. name: prometheus
  42. namespace: monitoring
  43. mustExist: true
  44. policies:
  45. - path: "./policies/prometheus/server_memory_limits.rego"
  46. name: "prometheus.server_memory_limits"
  47. - path: "./policies/prometheus/alertmanager_memory_limits.rego"
  48. name: "prometheus.alertmanager_memory_limits"
  49. - path: "./policies/prometheus/kubestatemetrics_memory_limits.rego"
  50. name: "prometheus.kubestatemetrics_memory_limits"
  51. - path: "./policies/prometheus/pushgateway_memory_limits.rego"
  52. name: "prometheus.pushgateway_memory_limits"
  53. - path: "./policies/prometheus/nodeexporter_memory_limits.rego"
  54. name: "prometheus.nodeexporter_memory_limits"
  55. - path: "./policies/prometheus/prometheus_version.rego"
  56. name: "prometheus.version"
  57. nginx_pod:
  58. kind: "pod"
  59. overrideSeverity: "critical"
  60. match:
  61. namespace: ingress-nginx
  62. labels:
  63. app.kubernetes.io/component: "controller"
  64. app.kubernetes.io/instance: "nginx-ingress"
  65. app.kubernetes.io/name: "ingress-nginx"
  66. policies:
  67. - path: "./policies/pod/running.rego"
  68. name: "pod.running"
  69. prometheus_server_pod:
  70. kind: "pod"
  71. match:
  72. namespace: monitoring
  73. labels:
  74. app: "prometheus"
  75. component: "server"
  76. release: "prometheus"
  77. policies:
  78. - path: "./policies/pod/running.rego"
  79. name: "pod.running"
  80. prometheus_alertmanager_pod:
  81. kind: "pod"
  82. match:
  83. namespace: monitoring
  84. labels:
  85. app: "prometheus"
  86. component: "alertmanager"
  87. release: "prometheus"
  88. policies:
  89. - path: "./policies/pod/running.rego"
  90. name: "pod.running"
  91. porter_agent_pod:
  92. kind: "pod"
  93. match:
  94. namespace: porter-agent-system
  95. labels:
  96. control-plane: "controller-manager"
  97. policies:
  98. - path: "./policies/pod/running.rego"
  99. name: "pod.running"
  100. porter_agent_loki_pod:
  101. kind: "pod"
  102. match:
  103. namespace: porter-agent-system
  104. labels:
  105. app: "loki"
  106. name: "porter-agent-loki"
  107. policies:
  108. - path: "./policies/pod/running.rego"
  109. name: "pod.running"
  110. porter_agent_promtail_daemonset:
  111. kind: "daemonset"
  112. match:
  113. namespace: porter-agent-system
  114. labels:
  115. app.kubernetes.io/instance: "porter-agent"
  116. app.kubernetes.io/name: "promtail"
  117. policies:
  118. - path: "./policies/daemonset/running.rego"
  119. name: "daemonset.running"
  120. certificates:
  121. kind: "crd_list"
  122. match:
  123. group: cert-manager.io
  124. version: v1
  125. resource: certificates
  126. policies:
  127. - path: "./policies/certificates/expiry_two_weeks.rego"
  128. name: "certificates.expiry_two_weeks"
  129. - path: "./policies/certificates/expired.rego"
  130. name: "certificates.expired"
  131. node:
  132. kind: "crd_list"
  133. match:
  134. group: core
  135. version: v1
  136. resource: nodes
  137. policies:
  138. - path: "./policies/node/k8s_version.rego"
  139. name: "node.k8s_version"
  140. - path: "./policies/node/porter_run_taints.rego"
  141. name: "node.porter_run_taints"
  142. - path: "./policies/node/porter_run_labels.rego"
  143. name: "node.porter_run_labels"
  144. - path: "./policies/node/healthy.rego"
  145. name: "node.healthy"
  146. descheduler:
  147. kind: "helm_release"
  148. match:
  149. name: descheduler
  150. namespace: kube-system
  151. mustExist: true
  152. policies: []
  153. vpa:
  154. kind: "helm_release"
  155. match:
  156. name: vpa
  157. namespace: kube-system
  158. mustExist: true
  159. policies: []