Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Feature: add HARP/ExApps support

Abierto
#776 7 comentarios 4 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
docker, helm, kubernetes

Línea de trabajo

No se nombran archivos ni pruebas. Empieza revisando las plantillas existentes de service e ingress de Helm y la configuración de Kubernetes del chart; después, compara el StatefulSet propuesto y la Docker rootless/socket exposure en las configuraciones compatibles. Se considera terminado cuando ExApps se puede desplegar con una configuración de service e ingress funcional, sin depender de un manifiesto específico de un clúster.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Description of the change

I tried to add a StatefulSet with HARP to run exapps on kubernetes.
My tests were successful.

StatefulSet code:

apiVersion: v1
kind: ConfigMap
metadata:
  name: docker-daemon-config
data:
  daemon.json: |
    {
      "memory": "512m"
    }
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: clouduvet
  name: clouduvet-harp
spec:
  serviceName: harp
  replicas: 1
  selector:
    matchLabels:
      app: clouduvet
  template:
    metadata:
      labels:
        app: clouduvet
    spec:
      volumes:
        - name: docker-config
          configMap:
            name: docker-daemon-config
      restartPolicy: Always
      securityContext:
        fsGroup: 1000
      containers:
        - name: appapi-harp
          image: ghcr.io/nextcloud/nextcloud-appapi-harp:release
          imagePullPolicy: Always
          env:
            - name: DOCKER_HOST
              value: unix:///run/user/1000/docker.sock
            - name: HP_SHARED_KEY
              valueFrom:
                secretKeyRef:
                  name: harp-shared-key
                  key: shared-key
            - name: NC_INSTANCE_URL
              value: "http://nextcloud.nextcloud.svc.cluster.local"
          resources:
            requests:
              cpu: "250m"
              memory: "512Mi"
            limits:
              cpu: "250m"
              memory: "512Mi"
          #securityContext:
          #  privileged: true
#---
#apiVersion: v1
#kind: Pod
#metadata:
#  name: appapi-harp
#  labels:
#    app: appapi-harp
#spec:
#  restartPolicy: Always
#  hostNetwork: false
#  containers:
#    - name: appapi-harp
#      image: ghcr.io/nextcloud/nextcloud-appapi-harp:release
#      imagePullPolicy: IfNotPresent
#      env:
#        - name: HP_SHARED_KEY
#          valueFrom:
#            secretKeyRef:
#              name: harp-shared-key
#              key: shared-key
#        - name: NC_INSTANCE_URL
#          value: "http://nextcloud.nextcloud.svc.cluster.local"
#      ports:
#        - containerPort: 8780
#        - containerPort: 8782
#      volumeMounts:
#        - name: docker-sock
#          mountPath: /var/run/docker.sock
#        - name: certs
#          mountPath: /certs
#  volumes:
#    - name: docker-sock
#      hostPath:
#        path: /var/run/docker.sock
#        type: Socket
#    - name: certs
#      hostPath:
#        path: /absolute/path/to/certs  # Change to absolute path on host
#        type: Directory

It allowed me to expose a docker rootless using harp. I put that here mostly so others may be able to reference it, feel free to use it :)
You also need to change the service and the ingress.

Benefits

ExApps support.

Possible drawbacks

The StatefulState approach is losely based on what I've done for gitlab runners on my cluster, it might not be the best approach.
I cannot guarantee that the manifest I provided can be used across every clusters.

Additional information

I am willing to create a pull request for this change. However, I'd appreciate some guidance on how to expose the docker socket of the host node in a manner that is compatible with a maximum of setups.

Lenguaje dominante
Go Template
Estrellas
536
Forks
316
Merge medio
4 d 16 h
PR fusionados (30 d)
2

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nextcloud/helm

Todos los issues de nextcloud/helm

Issues similares

Más issues de DevOps

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.