diff --git a/apps/woodpecker/app.yaml b/apps/woodpecker/app.yaml new file mode 100644 index 0000000..83b2408 --- /dev/null +++ b/apps/woodpecker/app.yaml @@ -0,0 +1,9 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: kube-system +metadata: + name: woodpecker +resources: + - app/namespace.yaml + - app/release.yaml + - app/route.yaml diff --git a/apps/woodpecker/app/namespace.yaml b/apps/woodpecker/app/namespace.yaml new file mode 100644 index 0000000..c84a958 --- /dev/null +++ b/apps/woodpecker/app/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: woodpecker + labels: + name: woodpecker diff --git a/apps/woodpecker/app/release.yaml b/apps/woodpecker/app/release.yaml new file mode 100644 index 0000000..07064e8 --- /dev/null +++ b/apps/woodpecker/app/release.yaml @@ -0,0 +1,30 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: woodpecker + namespace: woodpecker +spec: + releaseName: woodpecker + chart: + spec: + chart: woodpecker + sourceRef: + kind: HelmRepository + name: woodpeckerci + namespace: repos + interval: 60m + install: + remediation: + retries: 3 + values: + volume: + storageClassName: ebs-ssd + resources: + requests: + memory: 256Mi + limits: + memory: 512Mi + agent: + env: + WOODPECKER_BACKEND_K8S_STORAGE-CLASS: "ebs-ssd" + diff --git a/apps/woodpecker/app/route.yaml b/apps/woodpecker/app/route.yaml new file mode 100644 index 0000000..9ec4daa --- /dev/null +++ b/apps/woodpecker/app/route.yaml @@ -0,0 +1,17 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: woodpecker-route + namespace: woodpecker +spec: + entryPoints: + - web + routes: + - match: Host(`ci.cluster.trivernis.dev`) + kind: Rule + middlewares: + - name: strict-security-headers + namespace: default + services: + - name: woodpecker + port: http diff --git a/cluster/apps.yaml b/cluster/apps.yaml index 9b48ef8..2421c4c 100644 --- a/cluster/apps.yaml +++ b/cluster/apps.yaml @@ -235,3 +235,20 @@ spec: prune: true wait: true timeout: 5m0s +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: apps-woodpecker + namespace: flux-system +spec: + dependsOn: + - name: repos + interval: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./apps/woodpecker + prune: true + wait: true + timeout: 5m0s diff --git a/repos/woodpecker.yaml b/repos/woodpecker.yaml new file mode 100644 index 0000000..159b340 --- /dev/null +++ b/repos/woodpecker.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: woodpeckerci + namespace: repos +spec: + interval: 60m + url: https://woodpecker-ci.org/