Feature: add HARP/ExApps support
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
- Área
- devops, infrastructure
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
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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/helm
-
No native support for REDIS_USER enviroment varPosiblemente ocupada @jholmes802 la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Failed to inspect imageAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
nextcloud.openmetrics.allowedClients is silently ignored unless nextcloud.configs is setPosiblemente ocupada @JanWelker la tomó hace 18 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
-
External Redis not working: redis-session.ini: Permission deniedPosiblemente ocupada @antoinetran la tomó hace 22 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Todos los issues de nextcloud/helm
Issues similares
-
[Bug] create-before-destroy replacements are omitted from driftPosiblemente ocupada @Lostmanu la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
InditexTech/kumoss#318 ·
Los mantenedores suelen responder en 1 día
-
Deploy & Patch-issues opprettes ikke: create-pnd-issues.yml har feilet hver uke siden 2025-09-08Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Altinn/altinn-auth#4359 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
WingedGuardian/GENesis-AGI#3126 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
aws-samples/appmod-blueprints#972 ·
Los mantenedores suelen responder en 1 día
-
The CSS is not lintedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
WordPress/presence-api#807 ·
Los mantenedores suelen responder en 1 día