Skip to content

Commit

Permalink
feat: create and automate the overwhelm helmchart and add events (#12)
Browse files Browse the repository at this point in the history
* feat: create and automate the overwhelm helmchart and add events

* fix: reverting makefile command to use go get

Co-authored-by: Sangeetha Madamanchi <[email protected]>
  • Loading branch information
sangdammad and Sangeetha Madamanchi authored Aug 1, 2022
1 parent 9ba5cd8 commit de80791
Show file tree
Hide file tree
Showing 25 changed files with 1,071 additions and 12 deletions.
6 changes: 6 additions & 0 deletions .charts/overwhelm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
name: overwhelm
version: 0.0.3
maintainers:
- name: "Expedia Group"
url: "https://github.com/ExpediaGroup/overwhelm"

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
control-plane: controller-manager
name: overwhelm-controller-manager
namespace: overwhelm-system
spec:
replicas: {{ .Values.overwhelm.deployment.replicas }}
selector:
matchLabels:
control-plane: controller-manager
template:
metadata:
annotations:
{{ toYaml .Values.overwhelm.deployment.annotations | indent 8 }}
labels:
{{ toYaml .Values.overwhelm.deployment.labels | indent 8 }}
spec:
containers:
- args:
- --health-probe-bind-address=:8081
- --metrics-bind-address=127.0.0.1:8080
- --leader-elect
command:
- /manager
image: {{ .Values.overwhelm.deployment.image.manager.name }}:{{ .Values.overwhelm.deployment.image.manager.tag }}
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
name: manager
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
resources:
{{ toYaml .Values.overwhelm.deployment.resources | indent 10 }}
securityContext:
allowPrivilegeEscalation: false
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=0
image: {{ .Values.overwhelm.deployment.image.kubeRbacProxy.name }}:{{ .Values.overwhelm.deployment.image.kubeRbacProxy.tag }}
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
protocol: TCP
resources:
limits:
cpu: 500m
memory: 128Mi
requests:
cpu: 5m
memory: 64Mi
securityContext:
runAsNonRoot: true
serviceAccountName: overwhelm-controller-manager
terminationGracePeriodSeconds: 10
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: v1
kind: Service
metadata:
labels:
control-plane: controller-manager
name: overwhelm-controller-manager-metrics-service
namespace: overwhelm-system
spec:
ports:
- name: https
port: 8443
protocol: TCP
targetPort: https
selector:
control-plane: controller-manager
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: overwhelm-controller-manager
namespace: overwhelm-system
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: overwhelm-leader-election-role
namespace: overwhelm-system
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: overwhelm-leader-election-rolebinding
namespace: overwhelm-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: overwhelm-leader-election-role
subjects:
- kind: ServiceAccount
name: overwhelm-controller-manager
namespace: overwhelm-system
18 changes: 18 additions & 0 deletions .charts/overwhelm/templates/overwhelm-manager-config-cm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: v1
data:
controller_manager_config.yaml: |
apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
kind: ControllerManagerConfig
health:
healthProbeBindAddress: :8081
metrics:
bindAddress: 127.0.0.1:8080
webhook:
port: 9443
leaderElection:
leaderElect: true
resourceName: e04e01ad.expediagroup.com
kind: ConfigMap
metadata:
name: overwhelm-manager-config
namespace: overwhelm-system
64 changes: 64 additions & 0 deletions .charts/overwhelm/templates/overwhelm-manager-role-cr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: overwhelm-manager-role
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- core.expediagroup.com
resources:
- applications
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- core.expediagroup.com
resources:
- applications/finalizers
verbs:
- update
- apiGroups:
- core.expediagroup.com
resources:
- applications/status
verbs:
- get
- patch
- update
- apiGroups:
- helm.toolkit.fluxcd.io
resources:
- helmreleases
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- helm.toolkit.fluxcd.io
resources:
- helmreleases/status
verbs:
- get
- patch
- update
12 changes: 12 additions & 0 deletions .charts/overwhelm/templates/overwhelm-manager-rolebinding-crb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: overwhelm-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: overwhelm-manager-role
subjects:
- kind: ServiceAccount
name: overwhelm-controller-manager
namespace: overwhelm-system
9 changes: 9 additions & 0 deletions .charts/overwhelm/templates/overwhelm-metrics-reader-cr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: overwhelm-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get
17 changes: 17 additions & 0 deletions .charts/overwhelm/templates/overwhelm-proxy-role-cr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: overwhelm-proxy-role
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
12 changes: 12 additions & 0 deletions .charts/overwhelm/templates/overwhelm-proxy-rolebinding-crb.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: overwhelm-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: overwhelm-proxy-role
subjects:
- kind: ServiceAccount
name: overwhelm-controller-manager
namespace: overwhelm-system
6 changes: 6 additions & 0 deletions .charts/overwhelm/templates/overwhelm-system-namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
name: overwhelm-system
21 changes: 21 additions & 0 deletions .charts/overwhelm/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
overwhelm:
deployment:
image:
manager:
name: ghcr.io/expediagroup/overwhelm
tag: latest
kubeRbacProxy:
name: gcr.io/kubebuilder/kube-rbac-proxy
tag: v0.8.0
labels:
control-plane: controller-manager
replicas: 2
resources:
limits:
cpu: 1024m
memory: 1Gi
requests:
cpu: 128m
memory: 64Mi

32 changes: 32 additions & 0 deletions .github/workflows/helm-chart-releaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release Charts

on:
push:
branches:
- master

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.8.1

- name: Run chart-releaser
uses: helm/[email protected]
with:
charts_dir: .charts
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
Loading

0 comments on commit de80791

Please sign in to comment.