@underpostnet/underpost
Version:
Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc
150 lines (145 loc) • 4.15 kB
YAML
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: ipfs-cluster
spec:
serviceName: ipfs-cluster
replicas: 1
selector:
matchLabels:
app: ipfs-cluster
template:
metadata:
labels:
app: ipfs-cluster
spec:
initContainers:
- name: configure-ipfs
image: ipfs/kubo:latest
imagePullPolicy: IfNotPresent
securityContext:
runAsUser: 0
command: ['sh', '/custom/configure-ipfs.sh']
volumeMounts:
- name: ipfs-storage
mountPath: /data/ipfs
- name: configure-script
mountPath: /custom
containers:
- name: ipfs
image: ipfs/kubo:latest
imagePullPolicy: IfNotPresent
env:
- name: IPFS_FD_MAX
value: '4096'
ports:
- name: swarm
protocol: TCP
containerPort: 4001
- name: swarm-udp
protocol: UDP
containerPort: 4001
- name: api
protocol: TCP
containerPort: 5001
- name: ws
protocol: TCP
containerPort: 8081
- name: http
protocol: TCP
containerPort: 8080
livenessProbe:
tcpSocket:
port: swarm
initialDelaySeconds: 30
timeoutSeconds: 5
periodSeconds: 15
volumeMounts:
- name: ipfs-storage
mountPath: /data/ipfs
- name: configure-script
mountPath: /custom
resources:
requests:
cpu: '100m'
memory: '256Mi'
limits:
cpu: '500m'
memory: '512Mi'
- name: ipfs-cluster
image: ipfs/ipfs-cluster:latest
imagePullPolicy: IfNotPresent
command: ['sh', '/custom/entrypoint.sh']
env:
- name: BOOTSTRAP_PEER_ID
valueFrom:
configMapKeyRef:
name: env-config
key: bootstrap-peer-id
- name: BOOTSTRAP_PEER_PRIV_KEY
valueFrom:
secretKeyRef:
name: ipfs-cluster-secret
key: bootstrap-peer-priv-key
- name: CLUSTER_SECRET
valueFrom:
secretKeyRef:
name: ipfs-cluster-secret
key: cluster-secret
- name: CLUSTER_MONITOR_PING_INTERVAL
value: '3m'
- name: SVC_NAME
valueFrom:
configMapKeyRef:
name: env-config
key: CLUSTER_SVC_NAME
ports:
- name: api-http
containerPort: 9094
protocol: TCP
- name: proxy-http
containerPort: 9095
protocol: TCP
- name: cluster-swarm
containerPort: 9096
protocol: TCP
livenessProbe:
tcpSocket:
port: cluster-swarm
initialDelaySeconds: 5
timeoutSeconds: 5
periodSeconds: 10
volumeMounts:
- name: cluster-storage
mountPath: /data/ipfs-cluster
- name: configure-script
mountPath: /custom
resources:
requests:
cpu: '100m'
memory: '128Mi'
limits:
cpu: '500m'
memory: '512Mi'
volumes:
- name: configure-script
configMap:
name: ipfs-cluster-set-bootstrap-conf
defaultMode: 0755
volumeClaimTemplates:
- metadata:
name: cluster-storage
spec:
storageClassName: ipfs-storage-class
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 1Gi
- metadata:
name: ipfs-storage
spec:
storageClassName: ipfs-storage-class
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 5Gi