Skip to content

Commit 1e801af

Browse files
authored
chore: enable metadata gzip compression (#651)
* chore: enable gzip compression for metadata * e2e: linodemachine: metadata gzip compression
1 parent 61f4fc0 commit 1e801af

File tree

7 files changed

+186
-0
lines changed

7 files changed

+186
-0
lines changed

config/manager/manager.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ spec:
7070
fieldPath: metadata.name
7171
- name: SSL_CERT_DIR
7272
value: /tls
73+
- name: GZIP_COMPRESSION_ENABLED
74+
value: "true"
7375
envFrom: # allows configuring additional stuff like LINODE_URL
7476
- secretRef:
7577
name: capl-manager-credentials
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: capi-controller-manager
5+
namespace: capi-system
6+
status:
7+
availableReplicas: 1
8+
---
9+
apiVersion: apps/v1
10+
kind: Deployment
11+
metadata:
12+
name: capl-controller-manager
13+
namespace: capl-system
14+
status:
15+
availableReplicas: 1
16+
---
17+
apiVersion: apps/v1
18+
kind: Deployment
19+
metadata:
20+
name: capi-kubeadm-bootstrap-controller-manager
21+
namespace: kubeadm-bootstrap-system
22+
status:
23+
availableReplicas: 1
24+
---
25+
apiVersion: apps/v1
26+
kind: Deployment
27+
metadata:
28+
name: capi-kubeadm-control-plane-controller-manager
29+
namespace: kubeadm-control-plane-system
30+
status:
31+
availableReplicas: 1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
3+
kind: LinodeMachine
4+
metadata:
5+
labels:
6+
cluster.x-k8s.io/cluster-name: ($cluster)
7+
spec:
8+
region: us-sea
9+
type: g6-nanode-1
10+
status:
11+
ready: true
12+
instanceState: running
13+
---
14+
apiVersion: cluster.x-k8s.io/v1beta1
15+
kind: Machine
16+
metadata:
17+
labels:
18+
cluster.x-k8s.io/cluster-name: ($cluster)
19+
spec:
20+
clusterName: ($cluster)
21+
status:
22+
bootstrapReady: true
23+
infrastructureReady: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/test-chainsaw-v1alpha1.json
2+
apiVersion: chainsaw.kyverno.io/v1alpha1
3+
kind: Test
4+
metadata:
5+
name: metadata-gzip-compression
6+
# Label to trigger the test on every PR
7+
labels:
8+
all:
9+
linodemachine:
10+
spec:
11+
bindings:
12+
# A short identifier for the E2E test run
13+
- name: run
14+
value: (join('-', ['e2e', 'metadata-gzip', env('GIT_REF')]))
15+
- name: cluster
16+
# Format the cluster name
17+
value: (trim((truncate(($run), `29`)), '-'))
18+
template: true
19+
steps:
20+
- name: Check if CAPI provider resources exist
21+
try:
22+
- assert:
23+
file: assert-capi-resources.yaml
24+
- name: Create Cluster resource
25+
try:
26+
- apply:
27+
file: create-cluster.yaml
28+
catch:
29+
- describe:
30+
apiVersion: cluster.x-k8s.io/v1beta1
31+
kind: Cluster
32+
- name: Generate dummy cloud-config data
33+
try:
34+
- script:
35+
env:
36+
- name: NAMESPACE
37+
value: ($namespace)
38+
content: |
39+
set -e
40+
41+
# Some very compressible data
42+
printf %102400s | tr ' ' '🫵🤓' > chonk.txt
43+
kubectl -n $NAMESPACE create secret generic chonk-secret --from-file=chonk.txt
44+
check:
45+
($error): ~
46+
- name: Create LinodeMachine resource
47+
try:
48+
- apply:
49+
file: create-linodemachine.yaml
50+
- assert:
51+
file: assert-linodemachine.yaml
52+
catch:
53+
- describe:
54+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
55+
kind: LinodeMachineTemplate
56+
- describe:
57+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
58+
kind: KubeadmControlPlane
59+
- name: Delete Cluster resource
60+
try:
61+
- delete:
62+
ref:
63+
apiVersion: cluster.x-k8s.io/v1beta1
64+
kind: Cluster
65+
name: ($cluster)
66+
- error:
67+
file: check-linodemachine-deletion.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
2+
kind: LinodeMachine
3+
metadata:
4+
labels:
5+
cluster.x-k8s.io/cluster-name: ($cluster)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
apiVersion: cluster.x-k8s.io/v1beta1
3+
kind: Cluster
4+
metadata:
5+
name: ($cluster)
6+
spec:
7+
controlPlaneRef:
8+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
9+
kind: KubeadmControlPlane
10+
name: ($cluster)
11+
infrastructureRef:
12+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
13+
kind: LinodeCluster
14+
name: ($cluster)
15+
---
16+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
17+
kind: LinodeCluster
18+
metadata:
19+
name: ($cluster)
20+
spec:
21+
region: us-sea
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
3+
kind: KubeadmControlPlane
4+
metadata:
5+
name: ($cluster)
6+
spec:
7+
kubeadmConfigSpec:
8+
files:
9+
- path: /chonk.txt
10+
contentFrom:
11+
secret:
12+
key: chonk.txt
13+
name: chonk-secret
14+
clusterConfiguration:
15+
apiServer:
16+
extraArgs:
17+
cloud-provider: external
18+
controllerManager:
19+
extraArgs:
20+
cloud-provider: external
21+
machineTemplate:
22+
infrastructureRef:
23+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
24+
kind: LinodeMachineTemplate
25+
name: ($cluster)
26+
replicas: 1
27+
version: 1.29.1
28+
---
29+
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
30+
kind: LinodeMachineTemplate
31+
metadata:
32+
name: ($cluster)
33+
spec:
34+
template:
35+
spec:
36+
region: us-sea
37+
type: g6-nanode-1

0 commit comments

Comments
 (0)