ce7cb702218693d08ea6d83464d2457c9250027c

This commit is contained in:
ms2k 2026-11-12 20:46:28 +09:00
commit 34c5f8963c
9 changed files with 145336 additions and 0 deletions

View file

@ -0,0 +1,39 @@
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
name: forgejo
namespace: dragonfly
spec:
replicas: 2
image: docker.dragonflydb.io/dragonflydb/dragonfly:v2.0.2@sha256:061f00b201b58e12f974e4e96c761a881ee1c05e9d8ee967466a604b7299753b
imagePullPolicy: IfNotPresent
args:
- --proactor_threads=1
- --maxmemory=256MiB
- --cache_mode=true
- --uring_disable_iowait=true
aclFromSecret:
name: forgejo-acl
key: acl
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
add:
- SETUID
- SETGID
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
memory: 384Mi
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: forgejo
app.kubernetes.io/name: dragonfly

View file

@ -0,0 +1,39 @@
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
name: forgejo-public
namespace: dragonfly
spec:
replicas: 2
image: docker.dragonflydb.io/dragonflydb/dragonfly:v2.0.2@sha256:061f00b201b58e12f974e4e96c761a881ee1c05e9d8ee967466a604b7299753b
imagePullPolicy: IfNotPresent
args:
- --proactor_threads=1
- --maxmemory=256MiB
- --cache_mode=true
- --uring_disable_iowait=true
aclFromSecret:
name: forgejo-public-acl
key: acl
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
add:
- SETUID
- SETGID
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
memory: 384Mi
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: forgejo-public
app.kubernetes.io/name: dragonfly

View file

@ -0,0 +1,39 @@
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
name: quay
namespace: dragonfly
spec:
replicas: 2
image: docker.dragonflydb.io/dragonflydb/dragonfly:v2.0.2@sha256:061f00b201b58e12f974e4e96c761a881ee1c05e9d8ee967466a604b7299753b
imagePullPolicy: IfNotPresent
args:
- --proactor_threads=1
- --maxmemory=256MiB
- --cache_mode=true
- --uring_disable_iowait=true
aclFromSecret:
name: quay-acl
key: acl
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
add:
- SETUID
- SETGID
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 384Mi
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: quay
app.kubernetes.io/name: dragonfly

View file

@ -0,0 +1,39 @@
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
name: stalwart
namespace: dragonfly
spec:
replicas: 2
image: docker.dragonflydb.io/dragonflydb/dragonfly:v2.0.2@sha256:061f00b201b58e12f974e4e96c761a881ee1c05e9d8ee967466a604b7299753b
imagePullPolicy: IfNotPresent
args:
- --proactor_threads=1
- --maxmemory=256MiB
- --cache_mode=true
- --uring_disable_iowait=true
aclFromSecret:
name: stalwart-acl
key: acl
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
add:
- SETUID
- SETGID
resources:
requests:
cpu: 25m
memory: 128Mi
limits:
memory: 384Mi
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: DoNotSchedule
labelSelector:
matchLabels:
app: stalwart
app.kubernetes.io/name: dragonfly

View file

@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- serviceaccount.yaml
- vso.yaml
- instances/quay.yaml
- instances/forgejo-private.yaml
- instances/forgejo-public.yaml
- instances/stalwart.yaml
- metrics.yaml
- network-policies.yaml

36
vendor/platform/dragonfly/metrics.yaml vendored Normal file
View file

@ -0,0 +1,36 @@
apiVersion: v1
kind: Service
metadata:
name: dragonfly-metrics
namespace: dragonfly
labels:
app.kubernetes.io/name: dragonfly
app.kubernetes.io/component: metrics
spec:
selector:
app.kubernetes.io/name: dragonfly
ports:
- name: metrics
port: 9999
targetPort: admin
protocol: TCP
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: dragonfly-metrics
namespace: dragonfly
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: dragonfly
ingress:
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: victoriametrics
app.kubernetes.io/name: vmagent
app.kubernetes.io/instance: main
toPorts:
- ports:
- port: "9999"
protocol: TCP

View file

@ -0,0 +1,276 @@
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: quay
namespace: dragonfly
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: dragonfly
app: quay
ingress:
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: quay
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly-operator
app.kubernetes.io/instance: dragonfly-operator
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: quay
toPorts:
- ports:
- port: "6379"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: quay
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
- port: "53"
protocol: TCP
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: stalwart
namespace: dragonfly
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: dragonfly
app: stalwart
ingress:
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: stalwart
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly-operator
app.kubernetes.io/instance: dragonfly-operator
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchExpressions:
- key: k8s:io.kubernetes.pod.namespace
operator: In
values:
- stalwart
- key: app.kubernetes.io/name
operator: In
values:
- stalwart
- stalwart-bootstrap
- key: app.kubernetes.io/instance
operator: In
values:
- stalwart
toPorts:
- ports:
- port: "6379"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: stalwart
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
- port: "53"
protocol: TCP
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: forgejo-public
namespace: dragonfly
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: dragonfly
app: forgejo-public
ingress:
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: forgejo-public
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly-operator
app.kubernetes.io/instance: dragonfly-operator
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchExpressions:
- key: k8s:io.kubernetes.pod.namespace
operator: In
values:
- forgejo-public
- key: app.kubernetes.io/name
operator: In
values:
- forgejo
- key: app.kubernetes.io/instance
operator: In
values:
- forge-code
- forge-git
toPorts:
- ports:
- port: "6379"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: forgejo-public
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
- port: "53"
protocol: TCP
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: forgejo
namespace: dragonfly
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: dragonfly
app: forgejo
ingress:
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: forgejo
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly-operator
app.kubernetes.io/instance: dragonfly-operator
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- fromEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: forgejo
toPorts:
- ports:
- port: "6379"
protocol: TCP
egress:
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: dragonfly
app.kubernetes.io/name: dragonfly
app: forgejo
toPorts:
- ports:
- port: "6379"
protocol: TCP
- port: "9999"
protocol: TCP
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: kube-system
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
- port: "53"
protocol: TCP

View file

@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: dragonfly-vso
namespace: dragonfly

71
vendor/platform/dragonfly/vso.yaml vendored Normal file
View file

@ -0,0 +1,71 @@
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: default
namespace: dragonfly
spec:
method: kubernetes
mount: kubernetes
kubernetes:
role: dragonfly
serviceAccount: dragonfly-vso
vaultConnectionRef: vault/vault
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: quay-acl
namespace: dragonfly
spec:
type: kv-v2
mount: secret
path: dragonfly/quay/acl
destination:
name: quay-acl
create: true
refreshAfter: 1h
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: forgejo-acl
namespace: dragonfly
spec:
type: kv-v2
mount: secret
path: dragonfly/forgejo/acl
destination:
name: forgejo-acl
create: true
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: forgejo-public-acl
namespace: dragonfly
spec:
type: kv-v2
mount: secret
path: dragonfly/forgejo-public/acl
destination:
name: forgejo-public-acl
create: true
vaultAuthRef: default
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: stalwart-acl
namespace: dragonfly
spec:
type: kv-v2
mount: secret
path: dragonfly/stalwart/acl
destination:
name: stalwart-acl
create: true
refreshAfter: 1h
vaultAuthRef: default