mirror of
				https://github.com/carlosedp/cluster-monitoring.git
				synced 2025-10-26 10:23:04 +01:00 
			
		
		
		
	Better file organization
This commit is contained in:
		
							parent
							
								
									a1752635cf
								
							
						
					
					
						commit
						80bedf1e20
					
				
							
								
								
									
										8
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								Makefile
									
									
									
									
									
								
							@ -30,13 +30,15 @@ fmt:       ## Formats all jsonnet and libsonnet files (except on vendor dir)
 | 
				
			|||||||
	@find . -name 'vendor' -prune -o -name '*.libsonnet' -o -name '*.jsonnet' -print | xargs -n 1 -- $(JSONNET_FMT) -i
 | 
						@find . -name 'vendor' -prune -o -name '*.libsonnet' -o -name '*.jsonnet' -print | xargs -n 1 -- $(JSONNET_FMT) -i
 | 
				
			||||||
 | 
					
 | 
				
			||||||
deploy: manifests       ## Rebuilds manifests and deploy to configured cluster
 | 
					deploy: manifests       ## Rebuilds manifests and deploy to configured cluster
 | 
				
			||||||
	kubectl apply -f ./manifests/
 | 
						echo "Deploying stack setup manifests..."
 | 
				
			||||||
	echo "Will wait 40 seconds to reapply manifests"
 | 
						kubectl apply -f ./manifests/setup/
 | 
				
			||||||
	sleep 40
 | 
						echo "Will wait 10 seconds to deploy the additional manifests.."
 | 
				
			||||||
 | 
						sleep 10
 | 
				
			||||||
	kubectl apply -f ./manifests/
 | 
						kubectl apply -f ./manifests/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
teardown:       ## Delete all monitoring stack resources from configured cluster
 | 
					teardown:       ## Delete all monitoring stack resources from configured cluster
 | 
				
			||||||
	kubectl delete -f ./manifests/
 | 
						kubectl delete -f ./manifests/
 | 
				
			||||||
 | 
						kubectl delete -f ./manifests/setup/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tar: manifests       ## Generates a .tar.gz from manifests dir
 | 
					tar: manifests       ## Generates a .tar.gz from manifests dir
 | 
				
			||||||
	rm -rf manifests.tar.gz
 | 
						rm -rf manifests.tar.gz
 | 
				
			||||||
 | 
				
			|||||||
@ -8,18 +8,17 @@ local kp = (import 'kube-prometheus/kube-prometheus.libsonnet')
 | 
				
			|||||||
           // Additional modules are loaded dynamically from vars.jsonnet
 | 
					           // Additional modules are loaded dynamically from vars.jsonnet
 | 
				
			||||||
           + utils.join_objects([module.file for module in vars.modules if module.enabled])
 | 
					           + utils.join_objects([module.file for module in vars.modules if module.enabled])
 | 
				
			||||||
           // Load K3s customized modules
 | 
					           // Load K3s customized modules
 | 
				
			||||||
           + utils.join_objects([m for m in [import 'k3s-overrides.jsonnet'] if vars.k3s.enabled])
 | 
					           + utils.join_objects([m for m in [import 'modules/k3s-overrides.jsonnet'] if vars.k3s.enabled])
 | 
				
			||||||
           // Base stack is loaded at the end to override previous definitions
 | 
					           // Base stack is loaded at the end to override previous definitions
 | 
				
			||||||
           + (import 'base_operator_stack.jsonnet')
 | 
					           + (import 'base_operator_stack.jsonnet')
 | 
				
			||||||
           // Load image versions last to override default from modules
 | 
					           // Load image versions last to override default from modules
 | 
				
			||||||
           + (import 'image_sources_versions.jsonnet');
 | 
					           + (import 'image_sources_versions.jsonnet');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
// Generate core modules
 | 
					// Generate core modules
 | 
				
			||||||
{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) }
 | 
					{ ['setup/0namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) }
 | 
				
			||||||
// First generate operator resources except the serviceMonitors
 | 
					// First generate operator resources except the serviceMonitors
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ['0prometheus-operator-' + name]: kp.prometheusOperator[name]
 | 
					  ['setup/prometheus-operator-' + name]: kp.prometheusOperator[name]
 | 
				
			||||||
  for name in std.filter((function(name) name != 'serviceMonitor'), std.objectFields(kp.prometheusOperator))
 | 
					  for name in std.filter((function(name) name != 'serviceMonitor'), std.objectFields(kp.prometheusOperator))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
// serviceMonitor is separated so that it can be created after the CRDs are ready
 | 
					// serviceMonitor is separated so that it can be created after the CRDs are ready
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,292 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					   "apiVersion": "apiextensions.k8s.io/v1beta1",
 | 
				
			||||||
 | 
					   "kind": "CustomResourceDefinition",
 | 
				
			||||||
 | 
					   "metadata": {
 | 
				
			||||||
 | 
					      "annotations": {
 | 
				
			||||||
 | 
					         "controller-gen.kubebuilder.io/version": "v0.2.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "creationTimestamp": null,
 | 
				
			||||||
 | 
					      "name": "podmonitors.monitoring.coreos.com"
 | 
				
			||||||
 | 
					   },
 | 
				
			||||||
 | 
					   "spec": {
 | 
				
			||||||
 | 
					      "group": "monitoring.coreos.com",
 | 
				
			||||||
 | 
					      "names": {
 | 
				
			||||||
 | 
					         "kind": "PodMonitor",
 | 
				
			||||||
 | 
					         "listKind": "PodMonitorList",
 | 
				
			||||||
 | 
					         "plural": "podmonitors",
 | 
				
			||||||
 | 
					         "singular": "podmonitor"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "scope": "Namespaced",
 | 
				
			||||||
 | 
					      "validation": {
 | 
				
			||||||
 | 
					         "openAPIV3Schema": {
 | 
				
			||||||
 | 
					            "description": "PodMonitor defines monitoring for a set of pods.",
 | 
				
			||||||
 | 
					            "properties": {
 | 
				
			||||||
 | 
					               "apiVersion": {
 | 
				
			||||||
 | 
					                  "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
 | 
				
			||||||
 | 
					                  "type": "string"
 | 
				
			||||||
 | 
					               },
 | 
				
			||||||
 | 
					               "kind": {
 | 
				
			||||||
 | 
					                  "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
 | 
				
			||||||
 | 
					                  "type": "string"
 | 
				
			||||||
 | 
					               },
 | 
				
			||||||
 | 
					               "metadata": {
 | 
				
			||||||
 | 
					                  "type": "object"
 | 
				
			||||||
 | 
					               },
 | 
				
			||||||
 | 
					               "spec": {
 | 
				
			||||||
 | 
					                  "description": "Specification of desired Pod selection for target discovery by Prometheus.",
 | 
				
			||||||
 | 
					                  "properties": {
 | 
				
			||||||
 | 
					                     "jobLabel": {
 | 
				
			||||||
 | 
					                        "description": "The label to use to retrieve the job name from.",
 | 
				
			||||||
 | 
					                        "type": "string"
 | 
				
			||||||
 | 
					                     },
 | 
				
			||||||
 | 
					                     "namespaceSelector": {
 | 
				
			||||||
 | 
					                        "description": "Selector to select which namespaces the Endpoints objects are discovered from.",
 | 
				
			||||||
 | 
					                        "properties": {
 | 
				
			||||||
 | 
					                           "any": {
 | 
				
			||||||
 | 
					                              "description": "Boolean describing whether all namespaces are selected in contrast to a list restricting them.",
 | 
				
			||||||
 | 
					                              "type": "boolean"
 | 
				
			||||||
 | 
					                           },
 | 
				
			||||||
 | 
					                           "matchNames": {
 | 
				
			||||||
 | 
					                              "description": "List of namespace names.",
 | 
				
			||||||
 | 
					                              "items": {
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "type": "array"
 | 
				
			||||||
 | 
					                           }
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        "type": "object"
 | 
				
			||||||
 | 
					                     },
 | 
				
			||||||
 | 
					                     "podMetricsEndpoints": {
 | 
				
			||||||
 | 
					                        "description": "A list of endpoints allowed as part of this PodMonitor.",
 | 
				
			||||||
 | 
					                        "items": {
 | 
				
			||||||
 | 
					                           "description": "PodMetricsEndpoint defines a scrapeable endpoint of a Kubernetes Pod serving Prometheus metrics.",
 | 
				
			||||||
 | 
					                           "properties": {
 | 
				
			||||||
 | 
					                              "honorLabels": {
 | 
				
			||||||
 | 
					                                 "description": "HonorLabels chooses the metric's labels on collisions with target labels.",
 | 
				
			||||||
 | 
					                                 "type": "boolean"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "honorTimestamps": {
 | 
				
			||||||
 | 
					                                 "description": "HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data.",
 | 
				
			||||||
 | 
					                                 "type": "boolean"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "interval": {
 | 
				
			||||||
 | 
					                                 "description": "Interval at which metrics should be scraped",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "metricRelabelings": {
 | 
				
			||||||
 | 
					                                 "description": "MetricRelabelConfigs to apply to samples before ingestion.",
 | 
				
			||||||
 | 
					                                 "items": {
 | 
				
			||||||
 | 
					                                    "description": "RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs",
 | 
				
			||||||
 | 
					                                    "properties": {
 | 
				
			||||||
 | 
					                                       "action": {
 | 
				
			||||||
 | 
					                                          "description": "Action to perform based on regex matching. Default is 'replace'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "modulus": {
 | 
				
			||||||
 | 
					                                          "description": "Modulus to take of the hash of the source label values.",
 | 
				
			||||||
 | 
					                                          "format": "int64",
 | 
				
			||||||
 | 
					                                          "type": "integer"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "regex": {
 | 
				
			||||||
 | 
					                                          "description": "Regular expression against which the extracted value is matched. Default is '(.*)'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "replacement": {
 | 
				
			||||||
 | 
					                                          "description": "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "separator": {
 | 
				
			||||||
 | 
					                                          "description": "Separator placed between concatenated source label values. default is ';'.",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "sourceLabels": {
 | 
				
			||||||
 | 
					                                          "description": "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.",
 | 
				
			||||||
 | 
					                                          "items": {
 | 
				
			||||||
 | 
					                                             "type": "string"
 | 
				
			||||||
 | 
					                                          },
 | 
				
			||||||
 | 
					                                          "type": "array"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "targetLabel": {
 | 
				
			||||||
 | 
					                                          "description": "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       }
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    "type": "object"
 | 
				
			||||||
 | 
					                                 },
 | 
				
			||||||
 | 
					                                 "type": "array"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "params": {
 | 
				
			||||||
 | 
					                                 "additionalProperties": {
 | 
				
			||||||
 | 
					                                    "items": {
 | 
				
			||||||
 | 
					                                       "type": "string"
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    "type": "array"
 | 
				
			||||||
 | 
					                                 },
 | 
				
			||||||
 | 
					                                 "description": "Optional HTTP URL parameters",
 | 
				
			||||||
 | 
					                                 "type": "object"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "path": {
 | 
				
			||||||
 | 
					                                 "description": "HTTP path to scrape for metrics.",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "port": {
 | 
				
			||||||
 | 
					                                 "description": "Name of the port this endpoint refers to. Mutually exclusive with targetPort.",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "proxyUrl": {
 | 
				
			||||||
 | 
					                                 "description": "ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint.",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "relabelings": {
 | 
				
			||||||
 | 
					                                 "description": "RelabelConfigs to apply to samples before ingestion. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config",
 | 
				
			||||||
 | 
					                                 "items": {
 | 
				
			||||||
 | 
					                                    "description": "RelabelConfig allows dynamic rewriting of the label set, being applied to samples before ingestion. It defines `<metric_relabel_configs>`-section of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs",
 | 
				
			||||||
 | 
					                                    "properties": {
 | 
				
			||||||
 | 
					                                       "action": {
 | 
				
			||||||
 | 
					                                          "description": "Action to perform based on regex matching. Default is 'replace'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "modulus": {
 | 
				
			||||||
 | 
					                                          "description": "Modulus to take of the hash of the source label values.",
 | 
				
			||||||
 | 
					                                          "format": "int64",
 | 
				
			||||||
 | 
					                                          "type": "integer"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "regex": {
 | 
				
			||||||
 | 
					                                          "description": "Regular expression against which the extracted value is matched. Default is '(.*)'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "replacement": {
 | 
				
			||||||
 | 
					                                          "description": "Replacement value against which a regex replace is performed if the regular expression matches. Regex capture groups are available. Default is '$1'",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "separator": {
 | 
				
			||||||
 | 
					                                          "description": "Separator placed between concatenated source label values. default is ';'.",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "sourceLabels": {
 | 
				
			||||||
 | 
					                                          "description": "The source labels select values from existing labels. Their content is concatenated using the configured separator and matched against the configured regular expression for the replace, keep, and drop actions.",
 | 
				
			||||||
 | 
					                                          "items": {
 | 
				
			||||||
 | 
					                                             "type": "string"
 | 
				
			||||||
 | 
					                                          },
 | 
				
			||||||
 | 
					                                          "type": "array"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "targetLabel": {
 | 
				
			||||||
 | 
					                                          "description": "Label to which the resulting value is written in a replace action. It is mandatory for replace actions. Regex capture groups are available.",
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       }
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    "type": "object"
 | 
				
			||||||
 | 
					                                 },
 | 
				
			||||||
 | 
					                                 "type": "array"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "scheme": {
 | 
				
			||||||
 | 
					                                 "description": "HTTP scheme to use for scraping.",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "scrapeTimeout": {
 | 
				
			||||||
 | 
					                                 "description": "Timeout after which the scrape is ended",
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "targetPort": {
 | 
				
			||||||
 | 
					                                 "anyOf": [
 | 
				
			||||||
 | 
					                                    {
 | 
				
			||||||
 | 
					                                       "type": "integer"
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    {
 | 
				
			||||||
 | 
					                                       "type": "string"
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                 ],
 | 
				
			||||||
 | 
					                                 "description": "Name or number of the target port of the endpoint. Mutually exclusive with port.",
 | 
				
			||||||
 | 
					                                 "x-kubernetes-int-or-string": true
 | 
				
			||||||
 | 
					                              }
 | 
				
			||||||
 | 
					                           },
 | 
				
			||||||
 | 
					                           "type": "object"
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        "type": "array"
 | 
				
			||||||
 | 
					                     },
 | 
				
			||||||
 | 
					                     "podTargetLabels": {
 | 
				
			||||||
 | 
					                        "description": "PodTargetLabels transfers labels on the Kubernetes Pod onto the target.",
 | 
				
			||||||
 | 
					                        "items": {
 | 
				
			||||||
 | 
					                           "type": "string"
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        "type": "array"
 | 
				
			||||||
 | 
					                     },
 | 
				
			||||||
 | 
					                     "sampleLimit": {
 | 
				
			||||||
 | 
					                        "description": "SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.",
 | 
				
			||||||
 | 
					                        "format": "int64",
 | 
				
			||||||
 | 
					                        "type": "integer"
 | 
				
			||||||
 | 
					                     },
 | 
				
			||||||
 | 
					                     "selector": {
 | 
				
			||||||
 | 
					                        "description": "Selector to select Pod objects.",
 | 
				
			||||||
 | 
					                        "properties": {
 | 
				
			||||||
 | 
					                           "matchExpressions": {
 | 
				
			||||||
 | 
					                              "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
 | 
				
			||||||
 | 
					                              "items": {
 | 
				
			||||||
 | 
					                                 "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
 | 
				
			||||||
 | 
					                                 "properties": {
 | 
				
			||||||
 | 
					                                    "key": {
 | 
				
			||||||
 | 
					                                       "description": "key is the label key that the selector applies to.",
 | 
				
			||||||
 | 
					                                       "type": "string"
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    "operator": {
 | 
				
			||||||
 | 
					                                       "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",
 | 
				
			||||||
 | 
					                                       "type": "string"
 | 
				
			||||||
 | 
					                                    },
 | 
				
			||||||
 | 
					                                    "values": {
 | 
				
			||||||
 | 
					                                       "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
 | 
				
			||||||
 | 
					                                       "items": {
 | 
				
			||||||
 | 
					                                          "type": "string"
 | 
				
			||||||
 | 
					                                       },
 | 
				
			||||||
 | 
					                                       "type": "array"
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                 },
 | 
				
			||||||
 | 
					                                 "required": [
 | 
				
			||||||
 | 
					                                    "key",
 | 
				
			||||||
 | 
					                                    "operator"
 | 
				
			||||||
 | 
					                                 ],
 | 
				
			||||||
 | 
					                                 "type": "object"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "type": "array"
 | 
				
			||||||
 | 
					                           },
 | 
				
			||||||
 | 
					                           "matchLabels": {
 | 
				
			||||||
 | 
					                              "additionalProperties": {
 | 
				
			||||||
 | 
					                                 "type": "string"
 | 
				
			||||||
 | 
					                              },
 | 
				
			||||||
 | 
					                              "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
 | 
				
			||||||
 | 
					                              "type": "object"
 | 
				
			||||||
 | 
					                           }
 | 
				
			||||||
 | 
					                        },
 | 
				
			||||||
 | 
					                        "type": "object"
 | 
				
			||||||
 | 
					                     }
 | 
				
			||||||
 | 
					                  },
 | 
				
			||||||
 | 
					                  "required": [
 | 
				
			||||||
 | 
					                     "podMetricsEndpoints",
 | 
				
			||||||
 | 
					                     "selector"
 | 
				
			||||||
 | 
					                  ],
 | 
				
			||||||
 | 
					                  "type": "object"
 | 
				
			||||||
 | 
					               }
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "required": [
 | 
				
			||||||
 | 
					               "spec"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "type": "object"
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "version": "v1",
 | 
				
			||||||
 | 
					      "versions": [
 | 
				
			||||||
 | 
					         {
 | 
				
			||||||
 | 
					            "name": "v1",
 | 
				
			||||||
 | 
					            "served": true,
 | 
				
			||||||
 | 
					            "storage": true
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
 | 
					   },
 | 
				
			||||||
 | 
					   "status": {
 | 
				
			||||||
 | 
					      "acceptedNames": {
 | 
				
			||||||
 | 
					         "kind": "",
 | 
				
			||||||
 | 
					         "plural": ""
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "conditions": [ ],
 | 
				
			||||||
 | 
					      "storedVersions": [ ]
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _config+:: {
 | 
					  _config+:: {
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _config+:: {
 | 
					  _config+:: {
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
 | 
					local vars = import '../vars.jsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
local vars = import 'vars.jsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  prometheus+:: {
 | 
					  prometheus+:: {
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _config+:: {
 | 
					  _config+:: {
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _config+:: {
 | 
					  _config+:: {
 | 
				
			||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					local utils = import '../utils.libsonnet';
 | 
				
			||||||
local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
					local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
 | 
				
			||||||
local utils = import 'utils.libsonnet';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  _config+:: {
 | 
					  _config+:: {
 | 
				
			||||||
@ -17,7 +17,7 @@ set -o pipefail
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Make sure to start with a clean 'manifests' dir
 | 
					# Make sure to start with a clean 'manifests' dir
 | 
				
			||||||
rm -rf manifests
 | 
					rm -rf manifests
 | 
				
			||||||
mkdir manifests
 | 
					mkdir -p manifests/setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# optional, but we would like to generate yaml, not json
 | 
					# optional, but we would like to generate yaml, not json
 | 
				
			||||||
$JSONNET_BIN -J vendor -m manifests "${1-example.jsonnet}" | xargs -I{} sh -c 'cat {} | $(go env GOPATH)/bin/gojsontoyaml > {}.yaml; rm -f {}' -- {}
 | 
					$JSONNET_BIN -J vendor -m manifests "${1-example.jsonnet}" | xargs -I{} sh -c 'cat {} | $(go env GOPATH)/bin/gojsontoyaml > {}.yaml; rm -f {}' -- {}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								vars.jsonnet
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								vars.jsonnet
									
									
									
									
									
								
							@ -8,32 +8,32 @@
 | 
				
			|||||||
      // After deployment, run the create_gmail_auth.sh script from scripts dir.
 | 
					      // After deployment, run the create_gmail_auth.sh script from scripts dir.
 | 
				
			||||||
      name: 'smtpRelay',
 | 
					      name: 'smtpRelay',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'smtp_relay.jsonnet',
 | 
					      file: import 'modules/smtp_relay.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'armExporter',
 | 
					      name: 'armExporter',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'arm_exporter.jsonnet',
 | 
					      file: import 'modules/arm_exporter.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'upsExporter',
 | 
					      name: 'upsExporter',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'ups_exporter.jsonnet',
 | 
					      file: import 'modules/ups_exporter.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'metallbExporter',
 | 
					      name: 'metallbExporter',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'metallb.jsonnet',
 | 
					      file: import 'modules/metallb.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'traefikExporter',
 | 
					      name: 'traefikExporter',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'traefik.jsonnet',
 | 
					      file: import 'modules/traefik.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      name: 'elasticExporter',
 | 
					      name: 'elasticExporter',
 | 
				
			||||||
      enabled: false,
 | 
					      enabled: false,
 | 
				
			||||||
      file: import 'elasticsearch_exporter.jsonnet',
 | 
					      file: import 'modules/elasticsearch_exporter.jsonnet',
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user