Skip to content

Commit

Permalink
Merge pull request #1 from tegridy-io/feat/support-grafana-operator
Browse files Browse the repository at this point in the history
Add grafana-operator deployment
  • Loading branch information
DebakelOrakel authored Mar 3, 2024
2 parents 9b7f07d + eb0cec0 commit dab7226
Show file tree
Hide file tree
Showing 16 changed files with 4,985 additions and 8 deletions.
45 changes: 44 additions & 1 deletion class/defaults.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,47 @@
parameters:
sentry_operators:
=_metadata: {}
namespace: syn-sentry-operators

# --- Component configuration ----------------------------------------------

namespace:
annotations: {}
labels: {}
name: syn-sentry-operators

charts:
grafana:
source: https://github.com/grafana/grafana-operator.git
version: v5.6.3
agent:
source: https://grafana.github.io/helm-charts
version: 0.3.17

# ------ Operator ----------------------------------------------------------

operator:
grafana:
enabled: false
resources: {}
nodeSelector: {}
tolerations: []

# agent:
# enabled: false
# resources: {}
# nodeSelector: {}
# tolerations: []

# --- Helm configuration ---------------------------------------------------

helmValues:
grafana:
resources: ${sentry_operators:operator:grafana:resources}
nodeSelector: ${sentry_operators:operator:grafana:nodeSelector}
tolerations: ${sentry_operators:operator:grafana:tolerations}

# agent:
# fullnameOverride: agent-operator
# resources: ${sentry_operators:operator:agent:resources}
# nodeSelector: ${sentry_operators:operator:agent:nodeSelector}
# tolerations: ${sentry_operators:operator:agent:tolerations}
79 changes: 79 additions & 0 deletions class/sentry-operators.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,68 @@
parameters:
=_config:
compile:
grafana:
'True':
input_type: helm
output_type: yaml
input_paths:
- ${_base_directory}/helmcharts/grafana/${sentry_operators:charts:grafana:version}
output_path: sentry-operators/10_helmchart
helm_values: ${sentry_operators:helmValues:grafana}
helm_params:
name: grafana-operator
namespace: ${sentry_operators:namespace:name}
'False':
input_paths: []
input_type: jsonnet
output_path: ''
# agent:
# 'True':
# input_type: helm
# output_type: yaml
# input_paths:
# - ${_base_directory}/helmcharts/agent/${sentry_operators:charts:agent:version}
# output_path: sentry-operators/10_helmchart
# helm_values: ${sentry_operators:helmValues:agent}
# helm_params:
# name: agent-operator
# namespace: ${sentry_operators:namespace:name}
# 'False':
# input_paths: []
# input_type: jsonnet
# output_path: ''
filter:
grafana:
'True':
type: jsonnet
filter: postprocess/fix_null.jsonnet
path: sentry-operators/10_helmchart/grafana-operator/crds
'False':
type: jsonnet
filter: ''
path: ''
# agent:
# 'True':
# type: jsonnet
# filter: postprocess/fix_null.jsonnet
# path: sentry-operators/10_helmchart/grafana-agent-operator/crds
# 'False':
# type: jsonnet
# filter: ''
# path: ''

kapitan:
dependencies:
- type: git
source: ${sentry_operators:charts:grafana:source}
output_path: ${_base_directory}/helmcharts/grafana/${sentry_operators:charts:grafana:version}/
subdir: deploy/helm/grafana-operator
ref: ${sentry_operators:charts:grafana:version}
- type: helm
source: ${sentry_operators:charts:agent:source}
chart_name: grafana-agent-operator
version: ${sentry_operators:charts:agent:version}
output_path: ${_base_directory}/helmcharts/agent/${sentry_operators:charts:agent:version}/
compile:
- input_paths:
- ${_base_directory}/component/app.jsonnet
Expand All @@ -9,3 +72,19 @@ parameters:
- ${_base_directory}/component/main.jsonnet
input_type: jsonnet
output_path: sentry-operators/
# --- Remove
- input_paths:
- ${_base_directory}/helmcharts/agent/${sentry_operators:charts:agent:version}/crds/monitoring.coreos.com_podmonitors.yaml
- ${_base_directory}/helmcharts/agent/${sentry_operators:charts:agent:version}/crds/monitoring.coreos.com_probes.yaml
- ${_base_directory}/helmcharts/agent/${sentry_operators:charts:agent:version}/crds/monitoring.coreos.com_servicemonitors.yaml
input_type: remove
output_path: .
# --- Helm
- ${_config:compile:grafana:${sentry_operators:operator:grafana:enabled}}
# - ${_config:compile:agent:${sentry_operators:operator:agent:enabled}}

commodore:
postprocess:
filters:
- ${_config:filter:grafana:${sentry_operators:operator:grafana:enabled}}
# - ${_config:filter:agent:${sentry_operators:operator:agent:enabled}}
14 changes: 11 additions & 3 deletions component/app.jsonnet
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
local kap = import 'lib/kapitan.libjsonnet';
local inv = kap.inventory();
local params = inv.parameters.sentry_operators;
local params = inv.parameters.insights_grafana;
local argocd = import 'lib/argocd.libjsonnet';

local app = argocd.App('sentry-operators', params.namespace);
local app = argocd.App('sentry-operators', params.namespace.name);

{
'sentry-operators': app,
'sentry-operators': app {
spec+: {
syncPolicy+: {
syncOptions+: [
'ServerSideApply=true',
],
},
},
},
}
21 changes: 20 additions & 1 deletion component/main.jsonnet
Original file line number Diff line number Diff line change
@@ -1,10 +1,29 @@
// main template for sentry-operators
// main template for insights-grafana
local com = import 'lib/commodore.libjsonnet';
local kap = import 'lib/kapitan.libjsonnet';
local kube = import 'lib/kube.libjsonnet';
local inv = kap.inventory();

// The hiera parameters for the component
local params = inv.parameters.sentry_operators;

// Namespace
local namespace = kube.Namespace(params.namespace.name) {
metadata: {
[if std.length(params.namespace.annotations) > 0 then 'annotations']: params.namespace.annotations,
labels: {
'app.kubernetes.io/name': params.namespace.name,
'app.kubernetes.io/part-of': 'insights',
'app.kubernetes.io/managed-by': 'commodore',
'pod-security.kubernetes.io/enforce': 'baseline',
'pod-security.kubernetes.io/warn': 'restricted',
'pod-security.kubernetes.io/audit': 'restricted',
} + com.makeMergeable(params.namespace.labels),
name: params.namespace.name,
},
};

// Define outputs below
{
'00_namespace': namespace,
}
7 changes: 7 additions & 0 deletions postprocess/fix_null.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
local com = import 'lib/commodore.libjsonnet';

local dir = std.extVar('output_path');

// fixupDir already drops `null` objects, so we can just give the identity
// function as the 2nd argument.
com.fixupDir(dir, function(o) o)
10 changes: 7 additions & 3 deletions tests/defaults.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Overwrite parameters here

# parameters: {...}
parameters:
sentry_operators:
operator:
grafana:
enabled: true
# agent:
# enabled: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
spec:
syncPolicy:
syncOptions:
- ServerSideApply=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Namespace
metadata:
labels:
app.kubernetes.io/managed-by: commodore
app.kubernetes.io/name: syn-sentry-operators
app.kubernetes.io/part-of: insights
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/enforce: baseline
pod-security.kubernetes.io/warn: restricted
name: syn-sentry-operators
Loading

0 comments on commit dab7226

Please sign in to comment.