Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: disaster-recovery
spec:
generators:
- merge:
mergeKeys:
- nameNormalized
generators:
- clusters:
values:
sourceRoot: components/disaster-recovery
environment: ""
clusterDir: "empty-base"
- list:
elements: []
# - nameNormalized: stone-stg-rh01
# values.clusterDir: stone-stg-rh01
# - nameNormalized: stone-stage-p01
# values.clusterDir: stone-stage-p01
template:
metadata:
name: disaster-recovery-{{nameNormalized}}
spec:
project: default
source:
path: '{{values.sourceRoot}}/{{values.environment}}/{{values.clusterDir}}'
repoURL: https://github.com/redhat-appstudio/infra-deployments.git
targetRevision: main
destination:
namespace: konflux-disaster-recovery
server: '{{server}}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
retry:
limit: 50
backoff:
duration: 10s
factor: 2
maxDuration: 3m
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- disaster-recovery.yaml
components:
- ../../../../k-components/deploy-to-member-cluster-merge-generator
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ resources:
- build-templates
- etcd-defrag
- etcd-shield
- disaster-recovery
- internal-services
- image-controller
- image-rbac-proxy
Expand Down
5 changes: 5 additions & 0 deletions argo-cd-apps/overlays/development/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,8 @@ patches:
kind: ApplicationSet
version: v1alpha1
name: smee-client
- path: development-overlay-patch.yaml
target:
kind: ApplicationSet
version: v1alpha1
name: disaster-recovery
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ kind: ApplicationSet
metadata:
name: nvme-storage-configurator
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: disaster-recovery
$patch: delete
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,8 @@ patches:
kind: ApplicationSet
version: v1alpha1
name: konflux-kite
- path: production-overlay-patch.yaml
target:
kind: ApplicationSet
version: v1alpha1
name: disaster-recovery
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,9 @@ kind: ApplicationSet
metadata:
name: quality-dashboard
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: disaster-recovery
$patch: delete
Original file line number Diff line number Diff line change
Expand Up @@ -281,3 +281,8 @@ patches:
kind: ApplicationSet
version: v1alpha1
name: konflux-kite
- path: production-overlay-patch.yaml
target:
kind: ApplicationSet
version: v1alpha1
name: disaster-recovery
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@ metadata:
name: quality-dashboard
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: disaster-recovery
$patch: delete
28 changes: 28 additions & 0 deletions components/disaster-recovery/development/cronjob.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
# https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
# https://github.com/tektoncd/triggers/blob/main/examples/v1beta1/cron/cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: run-disaster-recovery-pipelinerun
namespace: konflux-disaster-recovery
spec:
schedule: "0 * * * *" # every hour
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
containers:
- name: cron-event-producer
image: quay.io/konflux-ci/appstudio-utils@sha256:e9a0e1c262b9d4202ff91e4882e4f7b27e44ad1e30c33695a68bd82d610dc0aa
command:
- "/bin/sh"
- "-c"
args: ["curl -X POST --data {} el-cron-listener.${NAMESPACE}.svc.cluster.local:8080"]
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
restartPolicy: Never
15 changes: 15 additions & 0 deletions components/disaster-recovery/development/event_listener.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
# https://github.com/tektoncd/triggers/blob/main/examples/v1beta1/cron/eventlistener.yaml
apiVersion: triggers.tekton.dev/v1beta1
kind: EventListener
metadata:
name: cron-listener
namespace: konflux-disaster-recovery
spec:
serviceAccountName: cron-trigger
triggers:
- name: cron-trig
bindings:
- ref: cron-binding
template:
ref: run-disaster-recovery-pipeline
14 changes: 14 additions & 0 deletions components/disaster-recovery/development/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: konflux-disaster-recovery

resources:
- cronjob.yaml
- event_listener.yaml
- pipeline.yaml
- rbac.yaml
- triggerbinding.yaml
- triggertemplate.yaml
- namespace.yaml
- networkpolicy_allow_el_from_ns.yaml
- network_policy_allow_to_apiserver.yaml
5 changes: 5 additions & 0 deletions components/disaster-recovery/development/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: konflux-disaster-recovery
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-to-apiserver
namespace: konflux-disaster-recovery
spec:
policyTypes:
- Egress
egress:
- to:
- podSelector:
matchLabels:
app: openshift-kube-apiserver
namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: openshift-kube-apiserver
ports:
- port: 6443
protocol: TCP
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-el-from-namespace
namespace: konflux-disaster-recovery
spec:
podSelector:
matchLabels:
eventlistener: cron-listener
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: konflux-disaster-recovery
ports:
- protocol: TCP
port: 8080
Empty file.
31 changes: 31 additions & 0 deletions components/disaster-recovery/development/rbac.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
# https://github.com/tektoncd/triggers/blob/main/examples/rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: cron-trigger
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: triggers-cron-eventlistener-binding-r
subjects:
- kind: ServiceAccount
name: cron-trigger
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tekton-triggers-eventlistener-roles
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: triggers-cron-eventlistener-binding-cr
subjects:
- kind: ServiceAccount
name: cron-trigger
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tekton-triggers-eventlistener-clusterroles
10 changes: 10 additions & 0 deletions components/disaster-recovery/development/triggerbinding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
# https://github.com/tektoncd/triggers/blob/main/examples/v1beta1/cron/triggerbinding.yaml
apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerBinding
metadata:
name: cron-binding
spec:
params:
- name: duration
value: 10s
22 changes: 22 additions & 0 deletions components/disaster-recovery/development/triggertemplate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
# https://github.com/tektoncd/triggers/blob/main/examples/v1beta1/triggertemplates/triggertemplate.yaml
apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: run-disaster-recovery-pipeline
spec:
params:
- name: duration
description: The amount of time to sleep
default: 10s
resourcetemplates:
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: sleep-pipeline-run-
spec:
pipelineRef:
name: sleep-pipeline
params:
- name: duration
value: $(tt.params.duration)
3 changes: 3 additions & 0 deletions components/disaster-recovery/empty-base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources: []
Loading