Skip to content

Commit

Permalink
KFLUXINFRA-1269: Adding Configuration to etcd defrag periodically
Browse files Browse the repository at this point in the history
This Pull Request will create following resources -
- Namespace
- ClusterRole
- ClusterRoleBinding
- ServiceAccount
- CronJob that will run every 5 minutes

Signed-off-by: Manish Kumar <30774250+manish-jangra@users.noreply.github.com>
  • Loading branch information
manish-jangra committed Feb 27, 2025
1 parent c502da0 commit c0d839e
Show file tree
Hide file tree
Showing 14 changed files with 158 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: etcd-defrag
spec:
generators:
- merge:
mergeKeys:
- nameNormalized
generators:
- clusters:
values:
sourceRoot: configs/etcd-defrag
environment: staging
- list:
elements: []
template:
metadata:
name: etcd-defrag-{{nameNormalized}}
spec:
project: default
source:
path: '{{values.sourceRoot}}/{{values.environment}}'
repoURL: https://github.com/redhat-appstudio/infra-deployments.git
targetRevision: main
destination:
namespace: default
server: '{{server}}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
retry:
limit: -1
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:
- etcd-defrag.yaml
components:
- ../../../../k-components/deploy-to-member-cluster-merge-generator
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ resources:
- build-service
- pipeline-service
- build-templates
- etcd-defrag
- internal-services
- image-controller
- multi-platform-controller
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,9 @@ kind: ApplicationSet
metadata:
name: kyverno
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: etcd-defrag
$patch: delete
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,9 @@ kind: ApplicationSet
metadata:
name: kyverno
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: etcd-defrag
$patch: delete
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,9 @@ kind: ApplicationSet
metadata:
name: nvme-storage-configurator
$patch: delete
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: etcd-defrag
$patch: delete
28 changes: 28 additions & 0 deletions configs/etcd-defrag/base/cluster-role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: etcd-maintenance-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- get
- create
- delete
- watch
- apiGroups:
- ""
resources:
- pods/attach
verbs:
- create
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
24 changes: 24 additions & 0 deletions configs/etcd-defrag/base/cronjob.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: etcd-maintenance
namespace: etcd-maintenance
spec:
schedule: "*/15 * * * *"
jobTemplate:
spec:
template:
spec:
serviceAccountName: etcd-maintenance
restartPolicy: OnFailure
containers:
- name: etcd-maintenance
image: registry.redhat.io/openshift4/ose-cli
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- |
etcd_pod=$(oc get pod -l app=etcd -oname -n openshift-etcd | awk -F"/" 'NR==1{ print $2 }')
oc -n openshift-etcd debug pod/${etcd_pod} --image=quay.io/konflux-ci/etcd-defrag:dc8f64b3e0268d3d85132be0c66495d718362157 --one-container=true -- /bin/sh -c "chmod +x /opt/defrag.sh && /opt/defrag.sh"
9 changes: 9 additions & 0 deletions configs/etcd-defrag/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: etcd-maintenance
resources:
- namespace.yaml
- cluster-role.yaml
- role-binding.yaml
- serviceaccount.yaml
- cronjob.yaml
4 changes: 4 additions & 0 deletions configs/etcd-defrag/base/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: etcd-maintenance
14 changes: 14 additions & 0 deletions configs/etcd-defrag/base/role-binding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: etcd-maintenance-binding
namespace: etcd-maintenance
subjects:
- kind: ServiceAccount
name: etcd-maintenance
namespace: etcd-maintenance
roleRef:
kind: ClusterRole
name: etcd-maintenance-role
apiGroup: rbac.authorization.k8s.io
6 changes: 6 additions & 0 deletions configs/etcd-defrag/base/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: etcd-maintenance
namespace: etcd-maintenance
4 changes: 4 additions & 0 deletions configs/etcd-defrag/production/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
4 changes: 4 additions & 0 deletions configs/etcd-defrag/staging/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base

0 comments on commit c0d839e

Please sign in to comment.