Skip to content
Open
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
28 changes: 28 additions & 0 deletions apps/vertical-pod-autoscaler/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
SHELL = /usr/bin/env bash

# Find HelmRelease and Source files
release := $(shell yq '. | select(.kind=="HelmRelease") | filename' *.yaml)
source := $(shell yq '. | select(.kind=="HelmRepository") | filename' *.yaml)

# Fetch data from HelmRepository and HelmRelease
name := $(shell yq '.metadata.name' $(release))
namespace := $(shell yq '.metadata.namespace' $(release))
version := $(shell yq '.spec.chart.spec.version' $(release))
chart := $(shell yq '.spec.chart.spec.chart' $(release))
values := yq '.spec.values' $(release)
url := $(shell yq '.spec.url' $(source))

# Run all tasks
all: crds.yaml manifests

# Generate CRDs with helm
crds.yaml: $(release) $(source)
helm show crds $(chart) --repo $(url) --version $(version) > $@

# Render template with helm (filtering away noisy annotations when diffing)
manifests: $(release) $(source)
mkdir -p manifests
rm -rf manifests/*
helm template $(name) $(chart) --repo $(url) --version $(version) --namespace $(namespace) --skip-crds -f <(echo "$$($(values))") | grep -vE "helm.sh/chart|app.kubernetes.io/version" | yq -s '"manifests/" + .kind + "-" + .metadata.name'

.PHONY: all manifests
1,007 changes: 1,007 additions & 0 deletions apps/vertical-pod-autoscaler/crds.yaml

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions apps/vertical-pod-autoscaler/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- crds.yaml
- namespace.yaml
- sources.yaml
- release.yaml
- vpa.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
# Source: vertical-pod-autoscaler/templates/admission-controller-certmanager.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: vpa-webhook-ca
namespace: vpa
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: admission-controller
app.kubernetes.io/component-instance: vpa-admission-controller
spec:
isCA: true
secretName: vpa-webhook-ca
commonName: vpa-webhook-ca
privateKey:
algorithm: RSA
size: 2048
issuerRef:
name: vpa-selfsigned
kind: Issuer
group: cert-manager.io
duration: 8760h
renewBefore: 720h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
# Source: vertical-pod-autoscaler/templates/admission-controller-certmanager.yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: vpa-webhook-cert
namespace: vpa
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: admission-controller
app.kubernetes.io/component-instance: vpa-admission-controller
spec:
secretName: vpa-tls-certs
dnsNames:
- vpa-webhook
- vpa-webhook.vpa
- vpa-webhook.vpa.svc
- vpa-webhook.vpa.svc.cluster.local
privateKey:
algorithm: RSA
size: 2048
usages:
- digital signature
- key encipherment
- server auth
issuerRef:
name: vpa-ca
kind: Issuer
group: cert-manager.io
duration: 168h
renewBefore: 24h
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
# Source: vertical-pod-autoscaler/templates/admission-controller-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-admission-controller
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: admission-controller
app.kubernetes.io/component-instance: vpa-admission-controller
rules:
- apiGroups:
- ""
resources:
- pods
- configmaps
- nodes
- limitranges
- replicationcontrollers
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- replicasets
- daemonsets
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- jobs
- cronjobs
verbs:
- get
- list
- watch
- apiGroups:
- autoscaling.k8s.io
resources:
- verticalpodautoscalers
verbs:
- get
- list
- watch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- create
- update
- get
- list
- watch
# Allow access to scale subresources for resolving target selectors
- apiGroups:
- "*"
resources:
- "*/scale"
verbs:
- get
- watch
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-recommender-actor
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: vpa-recommender
rules:
- apiGroups:
- ""
resources:
- pods
- nodes
- limitranges
verbs:
- get
- list
- watch
- apiGroups:
- ""
- events.k8s.io
resources:
- events
verbs:
- create
- get
- list
- watch
- patch
- update
- apiGroups:
- "poc.autoscaling.k8s.io"
resources:
- verticalpodautoscalers
verbs:
- get
- list
- watch
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalers
verbs:
- get
- list
- watch
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-recommender-checkpoint-actor
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: vpa-recommender
rules:
- apiGroups:
- "poc.autoscaling.k8s.io"
resources:
- verticalpodautoscalercheckpoints
verbs:
- get
- list
- watch
- create
- patch
- delete
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalercheckpoints
verbs:
- get
- list
- watch
- create
- patch
- delete
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-recommender-metrics-reader
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: vpa-recommender
rules:
- apiGroups:
- "metrics.k8s.io"
resources:
- pods
verbs:
- get
- list
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-recommender-status-actor
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: vpa-recommender
rules:
- apiGroups:
- "autoscaling.k8s.io"
resources:
- verticalpodautoscalers/status
verbs:
- get
- patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
# Source: vertical-pod-autoscaler/templates/recommender-clusterroles.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vpa-recommender-target-reader
labels:
app.kubernetes.io/name: vertical-pod-autoscaler
app.kubernetes.io/instance: vpa
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: recommender
app.kubernetes.io/component-instance: vpa-recommender
rules:
- apiGroups:
- '*'
resources:
- '*/scale'
verbs:
- get
- watch
- apiGroups:
- ""
resources:
- replicationcontrollers
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- get
- list
- watch
- apiGroups:
- batch
resources:
- jobs
- cronjobs
verbs:
- get
- list
- watch
Loading
Loading