This commit is contained in:
2024-02-04 11:40:02 +01:00
parent 61514824a1
commit d173f98b7c
3 changed files with 121 additions and 87 deletions

View File

@@ -15,3 +15,19 @@ resource "kubectl_manifest" "server_config" {
WOODPECKER_MAX_PIPELINE_TIMEOUT: "${var.timeouts.max}" WOODPECKER_MAX_PIPELINE_TIMEOUT: "${var.timeouts.max}"
EOF EOF
} }
resource "kubectl_manifest" "server_start" {
yaml_body = <<-EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: "${var.instance}-${var.component}-server-start"
namespace: "${var.namespace}"
labels: ${jsonencode(local.common-labels)}
data:
"start.sh": |-
#!/bin/ash
cp /etc/local-ca/ca.crt /usr/local/share/ca-certificates/
update-ca-certificates
/bin/woodpecker-server "$@"
EOF
}

View File

@@ -157,6 +157,7 @@ data "kustomization_overlay" "data" {
- name: server - name: server
image: "${var.images.server.registry}/${var.images.server.repository}:${var.images.server.tag}" image: "${var.images.server.registry}/${var.images.server.repository}:${var.images.server.tag}"
imagePullPolicy: "${var.images.server.pull_policy}" imagePullPolicy: "${var.images.server.pull_policy}"
command: "/usr/local/bin/start.sh"
env: env:
- name: WOODPECKER_ADMIN - name: WOODPECKER_ADMIN
value: "${var.admin-users}" value: "${var.admin-users}"
@@ -171,6 +172,22 @@ data "kustomization_overlay" "data" {
name: "${var.component}-${var.instance}-gitea" name: "${var.component}-${var.instance}-gitea"
- configMapRef: - configMapRef:
name: "${var.instance}-${var.component}-server" name: "${var.instance}-${var.component}-server"
volumeMounts:
- name: certs
mountPath: /etc/local-ca
readOnly: true
- name: config
mountPath: "/usr/local/bin/start.sh"
subPath: "start.sh"
volumes:
- name: config
configMap:
name: "${var.instance}-${var.component}-server-start"
defaultMode: 0777
- name: certs
secret:
secretName: "${var.instance}-cert"
defaultMode: 0444
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - metadata:
name: data name: data

View File

@@ -6,31 +6,101 @@ metadata:
name: woodpecker name: woodpecker
description: null description: null
options: options:
domain_name: ingress_class:
default: your_company.com default: traefik
examples: examples:
- your_company.com - traefik
type: string type: string
sub_domain: storage:
default: ci default:
agent:
size: 10Gi
volume:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
description: Configure this app storage
examples: examples:
- ci - agent:
size: 10Gi
volume:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
properties:
agent:
default:
size: 10Gi
properties:
size:
default: 10Gi
type: string
type: object
volume:
default:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
properties:
accessMode:
default: ReadWriteOnce
enum:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
type: string
class:
default: ''
type: string
size:
default: 10Gi
type: string
type:
default: Filesystem
enum:
- Filesystem
- Block
type: string
type: object
type: object
timeouts:
default:
default: '60'
max: '120'
examples:
- default: '60'
max: '120'
properties:
default:
default: '60'
type: string
max:
default: '120'
type: string
type: object
admin-users:
default: woodpecker,admin
examples:
- woodpecker,admin
type: string type: string
issuer: issuer:
default: letsencrypt-prod default: letsencrypt-prod
examples: examples:
- letsencrypt-prod - letsencrypt-prod
type: string type: string
domain_name:
default: your_company.com
examples:
- your_company.com
type: string
domain: domain:
default: your-company default: your-company
examples: examples:
- your-company - your-company
type: string type: string
app_group:
default: dev
examples:
- dev
type: string
images: images:
default: default:
agent: agent:
@@ -128,85 +198,15 @@ options:
type: string type: string
type: object type: object
type: object type: object
storage: sub_domain:
default: default: ci
agent:
size: 10Gi
volume:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
description: Configure this app storage
examples: examples:
- agent: - ci
size: 10Gi
volume:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
properties:
agent:
default:
size: 10Gi
properties:
size:
default: 10Gi
type: string
type: object
volume:
default:
accessMode: ReadWriteOnce
class: ''
size: 10Gi
type: Filesystem
properties:
accessMode:
default: ReadWriteOnce
enum:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
type: string
class:
default: ''
type: string
size:
default: 10Gi
type: string
type:
default: Filesystem
enum:
- Filesystem
- Block
type: string
type: object
type: object
timeouts:
default:
default: '60'
max: '120'
examples:
- default: '60'
max: '120'
properties:
default:
default: '60'
type: string
max:
default: '120'
type: string
type: object
ingress_class:
default: traefik
examples:
- traefik
type: string type: string
admin-users: app_group:
default: woodpecker,admin default: dev
examples: examples:
- woodpecker,admin - dev
type: string type: string
dependencies: dependencies:
- dist: null - dist: null
@@ -220,6 +220,7 @@ providers:
authentik: true authentik: true
kubectl: true kubectl: true
postgresql: null postgresql: null
mysql: null
restapi: null restapi: null
http: null http: null
gitea: true gitea: true