Skip to content

feature:new helm-chart provding manifest handled by victoria-metrics-operator #2755

Description

@ccaillet1974

Chart name and version, where you feel a lack of requested feature
chart: new chart proposal name victoria-stack
version: new

Is your feature request related to a problem? Please describe.
Currently using ArgoCD to manage apps in my kubernetes clusters, but when using manifest I don't have applications that represents the platforms deployed and managed by the operator. I could deploy directly as an application the manifest for each component deployed because there are under our own git but using Helm could permit the deployment of mutiple components of the same type in the same application

Describe the solution you'd like
Creation of a new Helm chart that produces manifest(s) used by victoria-metrics-operator without having the complex task of learning the API for the multiples obejcts managed by the operator. Could be more user-friendly

Sample values file for the vmagent component could be :

global:
  ...

vmagent:
  name: sample-vmagent
  # Directives to permit an override for kubernetes objects produced by the operator
  nameOverride: name_override
  fulNameOverride: 
  # Version for the component
  componentVersion: v1.137.0
  # Namespace followed by vmagent
  selectAllByDefault: true
  externalLabelName: vmagent_ha
  # Extra args used by the component
  extraArgs:
    envflag.enable: "true"
    envflag.prefix: VM_
    loggerFormat: json
    httpListenAddr: :8429
    license.forceOffline: "true"
    promscrape.dropOriginalLabels: "false"
  Permit override for using a specific image for the component defined here vmagent
  image:
    # Permit the override of componentVersion
    tag: v1.136.1-enterprise
  # If license defined add automatically the -enterprise suffix to componentVersion value
  license:
    forceOffline: true
    keyRef:
      name: lyo0-sfr-license
      key: license
  remoteWrite:
    - url: "http://lyo0-int-vminsert.kube-vmetrics.svc:8480/insert/1/prometheus"
  scrapeInterval: 10s
  # Replication:
  replicaCount: 2
  # Resources for the component
  resources:
    limits:
      cpu: 4
      memory: 8Gi
    requests:
      cpu: 256m
      memory: 1Gi
  # Security definitions for component
  securityContext:
    capabilities:
      drop:
      - ALL
    readOnlyRootFilesystem: true
    runAsNonRoot: true
    runAsUser: 1000
    fsGroup: 2000
  # Service definition and extend if needed
  serviceSpec:
    # useAsDefault: true
    spec:
      type: ClusterIP
  # StatefulMode:
  statefulMode: true
  # Storage parameters maybe it could be better if statefulStorage is defined
  # to force the statefulMode to true
  # In the same way maybe statefulStorage could renamed to storage to be
  # the same as other victoria components managed by operator that have only
  # storage as section name instead of statefulStorage
  statefulStorage:
    volumeClaimTemplate:
      spec:
        accessModes:
          - ReadWriteOnce
        storageClassName: "oc6810-ssd-100g"
        resources:
          requests:
            storage: 20Gi
        volumeMode: Filesystem

Describe alternatives you've considered
Workaround is to create application with manifest directly, but no coherency and no quality control of the manifest produced by user

Additional context
N/A

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions