Created
December 29, 2022 10:11
-
-
Save Andor/ae3abb57c97af5d5d30edc5a48a61581 to your computer and use it in GitHub Desktop.
qbec victoriametrics via helm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local p = import '../../params.libsonnet'; | |
local params = p.components.victoriametrics; | |
local k = import '1.21/main.libsonnet'; | |
local vm = importstr 'data://victoriametrics/github.com/VictoriaMetrics/helm-charts/raw/e075725ccd48f81e7794efb8119372f178be132f/packages/victoria-metrics-cluster-0.9.23.tgz'; | |
local resources = { | |
local ns = k.core.v1.namespace, | |
namespace:: | |
ns.new(params.namespace) | |
+ ns.metadata.withAnnotationsMixin({ | |
'owner': 'ops', | |
}) | |
+ ns.metadata.withLabelsMixin({ | |
app: 'victoriametrics', | |
}), | |
local s = k.core.v1.secret, | |
ingressSecret: | |
s.new(params.ingress.auth['secret-name'], { | |
auth: std.base64(params.ingress.auth.auth), | |
}) + | |
s.metadata.withNamespace(params.namespace), | |
resources: [ | |
$.namespace, | |
std.native('parseYaml')(vm), | |
$.ingressSecret, | |
], | |
}.resources; | |
if std.objectHas(params, 'enabled') && params.enabled then resources |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// this file has the baseline default parameters | |
{ | |
components: { | |
victoriametrics: { | |
namespace: 'victoriametrics', | |
ingress: { | |
host: error 'host must be specified', | |
auth: { | |
'secret-name': error 'secret-name must be specified', | |
auth: error 'auth must be specified', | |
}, | |
}, | |
local vmIngress(path, annotations={}) = { | |
enabled: $.components.victoriametrics.ingress.enabled, | |
hosts: [{ | |
name: $.components.victoriametrics.ingress.host, | |
path: path, | |
port: 'http', | |
}], | |
tls: [{ | |
hosts: [$.components.victoriametrics.ingress.host], | |
secretName: '%s-tls' % (std.strReplace($.components.victoriametrics.ingress.host, '.', '-')), | |
}], | |
annotations: { | |
'cert-manager.io/cluster-issuer': $.components['cluster-issuer'].name, | |
'nginx.ingress.kubernetes.io/auth-type': 'basic', | |
'nginx.ingress.kubernetes.io/auth-secret': $.components.victoriametrics.ingress.auth['secret-name'], | |
'nginx.ingress.kubernetes.io/auth-realm': 'Authentication Required', | |
} + annotations, | |
}, | |
values: { | |
vminsert: { | |
fullnameOverride: 'vminsert', | |
serviceMonitor: { | |
enabled: true, | |
namespace: $.components.victoriametrics.namespace, | |
}, | |
ingress: vmIngress('/insert', { | |
'nginx.ingress.kubernetes.io/client-body-buffer-size': '256k', | |
}), | |
extraArgs: { | |
replicationFactor: 2, | |
}, | |
resources: { | |
limits: { | |
cpu: '1000m', | |
memory: '1Gi', | |
}, | |
requests: { | |
cpu: '1000m', | |
memory: '1Gi', | |
}, | |
}, | |
}, | |
vmselect: { | |
fullnameOverride: 'vmselect', | |
serviceMonitor: { | |
enabled: true, | |
namespace: $.components.victoriametrics.namespace, | |
}, | |
ingress: vmIngress('/select'), | |
extraArgs: { | |
'dedup.minScrapeInterval': '100ms', | |
replicationFactor: 2, | |
'memory.allowedPercent': 90, | |
'search.maxConcurrentRequests': 5, | |
}, | |
resources: { | |
limits: { | |
cpu: '2000m', | |
memory: '4Gi', | |
}, | |
requests: { | |
cpu: '2000m', | |
memory: '4Gi', | |
}, | |
}, | |
}, | |
vmstorage: { | |
fullnameOverride: 'vmstorage', | |
replicaCount: 3, | |
retentionPeriod: 4, // 4 months | |
persistentVolume: { | |
size: '300Gi', | |
}, | |
serviceMonitor: { | |
enabled: true, | |
namespace: $.components.victoriametrics.namespace, | |
}, | |
extraArgs: { | |
'dedup.minScrapeInterval': '10s', | |
}, | |
resources: { | |
limits: { | |
cpu: '1000m', | |
memory: '8Gi', | |
}, | |
requests: { | |
cpu: '1000m', | |
memory: '8Gi', | |
}, | |
}, | |
}, | |
rbac: { | |
namespaced: true, | |
pspEnabled: false, // deprecated api | |
}, | |
}, | |
}, | |
}, | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: qbec.io/v1alpha1 | |
kind: App | |
metadata: | |
name: myapp | |
spec: | |
vars: | |
computed: | |
- name: victoriametrics | |
code: | | |
{ | |
local p = (import './params.libsonnet').components.victoriametrics, | |
command: 'sh', | |
args: [ | |
'-c', | |
('helm --kube-version 1.21 template "${__DS_NAME__}" "https:/${__DS_PATH__}" -n ' + p.namespace + ' -f-') | |
], | |
inheritEnv: true, | |
stdin: std.manifestJson(p.values), | |
} | |
dataSources: | |
- exec://victoriametrics?configVar=victoriametrics |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment