buggregator / server

Buggregator is a lightweight, standalone server that offers a range of debugging features for PHP applications.
https://buggregator.dev/
Other
670 stars 24 forks source link

Need Help Creating Helm Chart for Buggregator Server Deployment #140

Open butschster opened 5 months ago

butschster commented 5 months ago

Hello everyone,

We are looking to enhance the deployment process of the Buggregator Server in Kubernetes environments, aiming to make it more streamlined and accessible. To achieve this, we want to develop a Helm chart that encapsulates all the necessary configurations and simplifies the setup process.

Project Goals:

We Need Your Help! We are reaching out to the community for help with creating this Helm chart. Whether you're experienced with Helm or Kubernetes, or are looking to get involved in open source development, we welcome your contributions!

How You Can Help:

Here is a guide on how to create: https://helm.sh/docs/chart_template_guide/getting_started/

shanginn commented 1 week ago

I will start with providing an example just to get the ball rolling. not very production ready, but works for me. This is probably will work with default newly created helm chart with name chartname.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "chartname.fullname" . }}-buggregator
  labels:
    {{- include "chartname.labels" . | nindent 4 }}
spec:
  replicas: 1
  selector:
    matchLabels:
      {{- include "chartname.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      {{- with .Values.podAnnotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      labels:
        {{- include "chartname.selectorLabels" . | nindent 8 }}
    spec:
      {{- with .Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      serviceAccountName: {{ include "chartname.serviceAccountName" . }}
      securityContext:
        {{- toYaml .Values.podSecurityContext | nindent 8 }}
      containers:
        - name: "{{ .Release.Name }}"
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "ghcr.io/buggregator/server:{{ .Values.imageBuggregator.tag }}"
          imagePullPolicy: {{ .Values.imageBuggregator.pullPolicy }}
          ports:
            - containerPort: 8000
              name: buggregator-dashboard
            - containerPort: 1025
              name: smtp
            - containerPort: 9912
              name: var-dumper
            - containerPort: 9913
              name: monolog
          resources:
            {{- toYaml .Values.resources | nindent 12 }}
      {{- with .Values.nodeSelector }}
      nodeSelector:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.affinity }}
      affinity:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.tolerations }}
      tolerations:
        {{- toYaml . | nindent 8 }}
      {{- end }}

---
apiVersion: v1
kind: Service
metadata:
  name: {{ include "chartname.fullname" . }}-buggregator
  labels:
    {{- include "chartname.labels" . | nindent 4 }}
spec:
    type: ClusterIP
    ports:
        - port: 8000
          targetPort: 8000
          protocol: TCP
          name: buggregator-dashboard
        - port: 1025
          targetPort: 1025
          protocol: TCP
          name: smtp
        - port: 9912
          targetPort: 9912
          protocol: TCP
          name: var-dumper
        - port: 9913
          targetPort: 9913
          protocol: TCP
          name: monolog
    selector:
        {{- include "chartname.selectorLabels" . | nindent 4 }}
    {{- end }}
    {{- if .Values.imageBuggregator.enabled }}
    {{- $fullName := include "chartname.fullname" . -}}

and values.yaml with:

imageBuggregator:
  pullPolicy: Always
  tag: "1.10.4"