Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(apps/prod/jenkins-beta): add a jenkins-beta for debug test #653

Merged
merged 11 commits into from
Aug 1, 2023
6 changes: 6 additions & 0 deletions apps/prod/jenkins-beta/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- pre.yaml
- release.yaml
- post.yaml
17 changes: 17 additions & 0 deletions apps/prod/jenkins-beta/post.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: jenkins-beta-post
namespace: flux-system
spec:
dependsOn:
- name: jenkins-beta-release
interval: 5m0s
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
path: ./apps/prod/jenkins-beta/post
prune: true
force: true
5 changes: 5 additions & 0 deletions apps/prod/jenkins-beta/post/_base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- rbac.yaml

42 changes: 42 additions & 0 deletions apps/prod/jenkins-beta/post/_base/rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: jenkins-beta-schedule-agents
rules:
- apiGroups:
- ""
resources:
- pods
- pods/exec
- pods/log
- persistentvolumeclaims
- events
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
- persistentvolumeclaims
verbs:
- create
- delete
- deletecollection
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: jenkins-beta-schedule-agents
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins-beta-schedule-agents
subjects:
- kind: ServiceAccount
name: jenkins-beta
namespace: apps
14 changes: 14 additions & 0 deletions apps/prod/jenkins-beta/pre.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: jenkins-beta-pre
namespace: flux-system
spec:
interval: 5m0s
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
path: ./apps/prod/jenkins-beta/pre
prune: true
6 changes: 6 additions & 0 deletions apps/prod/jenkins-beta/pre/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- obc.yaml
- secret.yaml

14 changes: 14 additions & 0 deletions apps/prod/jenkins-beta/pre/obc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: jenkins-beta-pre-obc
namespace: flux-system
spec:
interval: 5m0s
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
path: ./apps/prod/jenkins-beta/pre/obc
prune: true
10 changes: 10 additions & 0 deletions apps/prod/jenkins-beta/pre/obc/obc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: beta-ci-pipeline-cache
namespace: apps
spec:
additionalConfig:
maxSize: 50G
bucketName: beta-ci-pipeline-cache
storageClassName: ceph-bucket
23 changes: 23 additions & 0 deletions apps/prod/jenkins-beta/pre/secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: jenkins-beta-pre-secret
namespace: apps
spec:
dependsOn:
- name: jenkins-beta-pre-obc
namespace: flux-system
interval: 5m0s
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
path: ./apps/prod/jenkins-beta/pre/secret
prune: true
postBuild:
substituteFrom:
- kind: Secret
name: beta-ci-pipeline-cache
- kind: ConfigMap
name: beta-ci-pipeline-cache
12 changes: 12 additions & 0 deletions apps/prod/jenkins-beta/pre/secret/cache-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Secret
metadata:
name: jenkins-beta-cache
namespace: apps
type: Opaque
stringData:
region: "${BUCKET_REGION}"
bucket: "${BUCKET_NAME}"
endpoint: "http://${BUCKET_HOST}:${BUCKET_PORT}"
access-key: ${AWS_ACCESS_KEY_ID}
access-secret: ${AWS_SECRET_ACCESS_KEY}
14 changes: 14 additions & 0 deletions apps/prod/jenkins-beta/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: jenkins-beta-release
namespace: flux-system
spec:
interval: 5m0s
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
path: ./apps/prod/jenkins-beta/release
prune: true
17 changes: 17 additions & 0 deletions apps/prod/jenkins-beta/release/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Guide for jenkins helm chart value configuration
===

## Pre requests

- Setup PVC `jenkins-beta` in namespace `apps`
- size should bigger than 8Gi.
- if replicas > 1, the PVC access mode should be `ReadWriteMany` to support jenkins server HA mode.

## values guide and schema

- [jenkins chart values summary doc](https:/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md)
- [jenkins chart values default template](https:/jenkinsci/helm-charts/blob/main/charts/jenkins/values.yaml)

## Checklist

1. values between all `values-*.yaml` should not be conflict.
17 changes: 17 additions & 0 deletions apps/prod/jenkins-beta/release/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace-agent.yaml
- release.yaml
configMapGenerator:
- name: jenkins-beta-values
namespace: flux-system
files:
- values1.yaml=values-controller.yaml
- values2.yaml=values-persistence.yaml
- values3.yaml=values-agent.yaml
- values4.yaml=values-controller-plugins.yaml
- values5.yaml=values-JCasC.yaml
- values6.yaml=values-service-account.yaml
configurations:
- kustomize-config.yaml
8 changes: 8 additions & 0 deletions apps/prod/jenkins-beta/release/kustomize-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Kustomize config for enabling HelmRelease values from
# ConfigMaps and Secrets generated by Kustomize
nameReference:
- kind: ConfigMap
version: v1
fieldSpecs:
- path: spec/valuesFrom/name
kind: HelmRelease
9 changes: 9 additions & 0 deletions apps/prod/jenkins-beta/release/namespace-agent.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
name: jenkins-beta
annotations:
scheduler.alpha.kubernetes.io/defaultTolerations:
'[{"operator": "Equal", "effect": "NoSchedule", "key": "dedicated",
"value": "test-infra"}]'
scheduler.alpha.kubernetes.io/node-selector: enable-ci=true, kubernetes.io/arch=amd64
33 changes: 33 additions & 0 deletions apps/prod/jenkins-beta/release/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: jenkins-beta
namespace: flux-system
spec:
releaseName: jenkins-beta
targetNamespace: apps
chart:
spec:
chart: ./charts/jenkins
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
interval: 1h0m0s
timeout: 15m
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
crds: CreateReplace
test:
enable: true
ignoreFailures: false
valuesFrom:
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values1.yaml }
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values2.yaml }
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values3.yaml }
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values4.yaml }
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values5.yaml }
- { kind: ConfigMap, name: jenkins-beta-values, valuesKey: values6.yaml }
Loading