Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Feature: add HARP/ExApps support

Đang mở
#776 7 bình luận 4 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Ít trao đổi
Công nghệ
docker, helm, kubernetes
Lĩnh vực
devops, infrastructure

Hướng nghiên cứu

Không có tệp hoặc bài kiểm thử nào được nêu tên. Hãy bắt đầu bằng cách xem xét các template service và ingress hiện có của Helm cùng cấu hình Kubernetes của chart, sau đó so sánh StatefulSet được đề xuất và Docker rootless/socket exposure trên các thiết lập được hỗ trợ. Hoàn tất khi ExApps có thể được triển khai với cấu hình service và ingress hoạt động mà không phụ thuộc vào manifest dành riêng cho một cluster.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
Go Template
Star
537
Fork
317
Merge trung bình
2 ngày 3 giờ
Pull request đã merge (30 ngày)
1

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của nextcloud/helm

Tất cả issue của nextcloud/helm

Issue tương tự

Thêm issue về DevOps

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.