ce7cb702218693d08ea6d83464d2457c9250027c

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

View file

@ -0,0 +1,66 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: project-delivery-controller
namespace: project-delivery
labels:
app.kubernetes.io/name: project-delivery-controller
app.kubernetes.io/instance: project-delivery-controller
spec:
replicas: 2
selector:
matchLabels:
app.kubernetes.io/name: project-delivery-controller
template:
metadata:
labels:
app.kubernetes.io/name: project-delivery-controller
app.kubernetes.io/instance: project-delivery-controller
delivery.quorate.dev/stage: controller
spec:
serviceAccountName: project-delivery-controller
automountServiceAccountToken: true
securityContext:
runAsNonRoot: true
runAsUser: 65532
runAsGroup: 65532
fsGroup: 65532
fsGroupChangePolicy: OnRootMismatch
seccompProfile:
type: RuntimeDefault
containers:
- name: controller
image: project-delivery-controller
args: [run]
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: FORGEJO_PUBLIC_AUTHORITY
value: git.quorate.dev
- name: FORGEJO_PUBLIC_URL
value: http://forge-git-http.forgejo-public.svc.cluster.local:3000
- name: FORGEJO_PUBLIC_TOKEN_PATH
value: /public-source-auth/token
- name: FORGEJO_PRIVATE_AUTHORITY
value: forge.quorate.internal
- name: FORGEJO_PRIVATE_URL
value: http://forgejo-http.forgejo.svc.cluster.local:3000
- name: FORGEJO_PRIVATE_TOKEN_PATH
value: /private-source-auth/token
resources:
requests: {cpu: 50m, memory: 64Mi}
limits: {cpu: 500m, memory: 256Mi}
securityContext:
allowPrivilegeEscalation: false
capabilities: {drop: [ALL]}
readOnlyRootFilesystem: true
volumeMounts:
- {name: public-source-auth, mountPath: /public-source-auth, readOnly: true}
- {name: private-source-auth, mountPath: /private-source-auth, readOnly: true}
imagePullSecrets:
- name: quay-reader
volumes:
- {name: public-source-auth, secret: {secretName: project-delivery-source, defaultMode: 0440}}
- {name: private-source-auth, secret: {secretName: quorate-pull, defaultMode: 0440}}

View file

@ -0,0 +1,159 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: projectdeliveries.delivery.quorate.dev
spec:
group: delivery.quorate.dev
names:
kind: ProjectDelivery
listKind: ProjectDeliveryList
plural: projectdeliveries
singular: projectdelivery
scope: Namespaced
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: {}
schema:
openAPIV3Schema:
type: object
required: [spec]
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
required: [source, targets, workflowTemplateRef]
properties:
source:
type: object
required: [repository]
properties:
repository:
type: string
pattern: '^https://[^/?#@[:space:]]+/[^/?#[:space:]]+/[^/?#[:space:]]+/?$'
continuous:
type: object
required: [ref]
properties:
ref:
type: string
pattern: '^refs/[^\x00-\x20\x7f~^:?*\[\\]+$'
debounce:
type: string
paths:
type: array
minItems: 1
x-kubernetes-list-type: set
items:
type: string
minLength: 1
pattern: '^[^/]+(/[^/]+)*$'
x-kubernetes-validations:
- rule: "!has(self.debounce) || duration(self.debounce) > duration('0s')"
message: debounce must be a positive duration
- rule: "!self.ref.contains('..') && !self.ref.contains('//') && !self.ref.contains('@{') && !self.ref.endsWith('/') && !self.ref.endsWith('.') && !self.ref.matches('(^|/)[.]') && !self.ref.matches('(^|/)[^/]*[.]lock(/|$)')"
message: ref must satisfy git-check-ref-format
point:
type: object
required: [revisions]
properties:
revisions:
type: array
minItems: 1
x-kubernetes-list-type: set
items:
type: string
pattern: ^([0-9a-f]{40}|[0-9a-f]{64})$
x-kubernetes-validations:
- rule: has(self.continuous) != has(self.point)
message: source must contain exactly one delivery mode
targets:
type: array
minItems: 1
x-kubernetes-list-type: atomic
items:
type: object
x-kubernetes-map-type: atomic
x-kubernetes-preserve-unknown-fields: true
workflowTemplateRef:
type: object
required: [name]
properties:
name:
type: string
maxLength: 253
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'
qualification:
type: object
required: [workflowTemplateRef]
properties:
workflowTemplateRef:
type: object
required: [name]
properties:
name:
type: string
maxLength: 253
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$'
mode:
type: string
enum: [OnBuild, ManualOnly]
default: ManualOnly
interval:
type: string
default: 0s
x-kubernetes-validations:
- rule: "duration(self.interval) >= duration('0s')"
message: interval must be a non-negative duration
status:
type: object
properties:
observedGeneration:
type: integer
format: int64
message:
type: string
lastHandledRetry:
type: string
maxLength: 253
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
continuous:
type: object
properties:
candidateRevision:
type: string
candidateIdentity:
type: string
candidateBuckets:
type: array
maxItems: 3
items:
type: string
candidateSince:
type: string
format: date-time
attempt:
x-kubernetes-preserve-unknown-fields: true
delivered:
type: object
required: [revision, identity]
properties:
revision:
type: string
identity:
type: string
qualification:
type: object
x-kubernetes-preserve-unknown-fields: true
points:
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true

View file

@ -0,0 +1,19 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: agentgateway-catalog
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- services/agentgateway-model-catalog-sync
- services/project-delivery/actions/go-oci
- services/project-delivery/k8s/workflows/go-oci
targets:
- kind: QuayOCI
repository: quorate/agentgateway-catalog
workflowTemplateRef:
name: ag-catalog-build

View file

@ -0,0 +1,16 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: chultun
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/chultun
point:
revisions:
- b529740ee30baeae694f42c6a68137e4eb204355eaf47a2b228d2334cf23e114
targets:
- kind: ForgejoRelease
repository: https://git.quorate.dev/ms2k/chultun
workflowTemplateRef:
name: chultun-build

View file

@ -0,0 +1,28 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: clair
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- packages/clair
- services/project-delivery/actions/go-oci/cache.fsx
- services/project-delivery/actions/go-oci/contract.fsx
- services/project-delivery/actions/go-oci/go-oci.apko.yaml
- services/project-delivery/actions/go-oci/image.fsx
- services/project-delivery/actions/go-oci/initialize.fsx
- services/project-delivery/actions/go-oci/publish.fsx
- services/project-delivery/actions/go-oci/source.fsx
- services/project-delivery/actions/clair-oci
- services/project-delivery/kustomization.yaml
- services/project-delivery/k8s/workflows/go-oci/base
- services/project-delivery/k8s/workflows/clair
targets:
- kind: QuayOCI
repository: quorate/clair
workflowTemplateRef:
name: clair-build

View file

@ -0,0 +1,24 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: cluster-health-api
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- services/cluster-health-api
- services/project-delivery/actions/cluster-health
- services/project-delivery/actions/contract.fsx
- services/project-delivery/actions/cache-store.fsx
- services/project-delivery/actions/apk.fsx
- services/project-delivery/actions/go-oci
- services/project-delivery/k8s/workflows/go-oci/base
- services/project-delivery/k8s/workflows/cluster-health
targets:
- kind: QuayOCI
repository: quorate/cluster-health-api
workflowTemplateRef:
name: cluster-health-build

View file

@ -0,0 +1,19 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: codex-bridge
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- services/codex-bridge
- services/project-delivery/actions/go-oci
- services/project-delivery/k8s/workflows/go-oci
targets:
- kind: QuayOCI
repository: quorate/codex-bridge
workflowTemplateRef:
name: codex-bridge-build

View file

@ -0,0 +1,18 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: controller
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- services/project-delivery/controller
- services/project-delivery/k8s/workflows/controller
targets:
- kind: QuayOCI
repository: quorate/project-delivery-controller
workflowTemplateRef:
name: controller-delivery

View file

@ -0,0 +1,17 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: corago
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/corago
point:
revisions:
- 996f586bc1c3c2783d855da985aa312517bf7f7f3595eba273a2058e5a41d823
- 38465560353532ed3a6ba4311c2a39456fb4f66fb591fbaa7faa7bb373cdaf19
targets:
- kind: ForgejoRelease
repository: https://git.quorate.dev/ms2k/corago
workflowTemplateRef:
name: corago-build

View file

@ -0,0 +1,18 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: fsharp-runner
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- packages/fsharp-runner
- services/project-delivery/k8s/workflows/fsharp-runner
targets:
- kind: QuayOCI
repository: quorate/fsharp-runner
workflowTemplateRef:
name: fsharp-runner-delivery

View file

@ -0,0 +1,26 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: grafana-rcon
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- packages/grafana-rcon
- services/project-delivery/actions/grafana-rcon
- services/project-delivery/k8s/workflows/grafana-rcon
- services/project-delivery/actions/go-oci/initialize.fsx
- services/project-delivery/actions/go-oci/source.fsx
- services/project-delivery/actions/contract.fsx
- services/project-delivery/actions/apk.fsx
- services/project-delivery/actions/cache-store.fsx
targets:
- kind: S3
endpoint: https://s3.quorate.internal
bucket: artifacts
prefix: grafana-rcon/
workflowTemplateRef:
name: rcon-delivery

View file

@ -0,0 +1,15 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: hf-chat-ui
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/hf-chat-ui
continuous:
ref: refs/heads/main
targets:
- kind: QuayOCI
repository: quorate/hf-chat-ui
workflowTemplateRef:
name: hf-build

View file

@ -0,0 +1,30 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- short.yaml
- clair.yaml
- agentgateway.yaml
- controller.yaml
- cluster-health.yaml
- fsharp-runner.yaml
- grafana-rcon.yaml
- saltatory.yaml
- saltatory-client.yaml
- hf-chat-ui.yaml
- locutory.yaml
- lazaret.yaml
- layshaft.yaml
- nuthatch.yaml
- opnsense-cert.yaml
- ostension-plugin.yaml
- relay-agent.yaml
- relay-publisher.yaml
- relay-wan.yaml
- remora.yaml
- stalwart.yaml
- vertex-batch.yaml
- codex-bridge.yaml
- mesh-init.yaml
- chultun.yaml
- corago.yaml
- zygostates.yaml

View file

@ -0,0 +1,17 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: layshaft
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/layshaft
continuous:
ref: refs/heads/master
targets:
- kind: ForgejoRelease
repository: https://git.quorate.dev/ms2k/layshaft
- kind: QuayOCI
repository: quorate/layshaft
workflowTemplateRef:
name: layshaft-build

View file

@ -0,0 +1,16 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: lazaret
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/lazaret
point:
revisions:
- 968ff09eaece14c7633aa770b9427ecbf67a84effa6b26cd4a72fdfc0bf8de91
targets:
- kind: ForgejoRelease
repository: https://git.quorate.dev/ms2k/lazaret
workflowTemplateRef:
name: lazaret-delivery

View file

@ -0,0 +1,18 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: locutory
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/locutory
continuous:
ref: refs/heads/master
debounce: 60s
targets:
- kind: CloudflarePages
accountId: ********
project: quorate-home
branch: master
workflowTemplateRef:
name: locutory-build

View file

@ -0,0 +1,19 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: mesh-init
namespace: project-delivery
spec:
source:
repository: https://forge.quorate.internal/quorate/cluster
continuous:
ref: refs/heads/master
paths:
- packages/mesh-init
- services/project-delivery/actions/go-oci
- services/project-delivery/k8s/workflows/go-oci
targets:
- kind: QuayOCI
repository: quorate/mesh-init
workflowTemplateRef:
name: mesh-init-build

View file

@ -0,0 +1,16 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: nuthatch
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/nuthatch
continuous:
ref: refs/heads/master
debounce: 20m
targets:
- kind: QuayOCI
repository: quorate/nuthatch
workflowTemplateRef:
name: nuthatch-delivery

View file

@ -0,0 +1,21 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: opnsense-cert
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/ostension
continuous:
ref: refs/heads/master
paths:
- go.mod
- cmd/ostension
- internal/rotator
- LICENSE
- NOTICE
targets:
- kind: QuayOCI
repository: quorate/opnsense-certificate-rotator
workflowTemplateRef:
name: opnsense-cert-build

View file

@ -0,0 +1,19 @@
apiVersion: delivery.quorate.dev/v1alpha1
kind: ProjectDelivery
metadata:
name: ostension-plugin
namespace: project-delivery
spec:
source:
repository: https://git.quorate.dev/ms2k/ostension
continuous:
ref: refs/heads/master
paths:
- plugin
- LICENSE
- NOTICE
targets:
- kind: ForgejoRelease
repository: https://git.quorate.dev/ms2k/ostension
workflowTemplateRef:
name: ostension-pkg-build

Some files were not shown because too many files have changed in this diff Show more