Skip to content

Commit bbcf42d

Browse files
authored
feat: expose secret values (#225)
1 parent 92d500b commit bbcf42d

5 files changed

Lines changed: 83 additions & 59 deletions

File tree

charts/aggkit/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 4.4.0
18+
version: 5.0.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

charts/aggkit/templates/configmap.yaml

Lines changed: 43 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{{- $opSecrets := (lookup "v1" "Secret" .Release.Namespace "op-secrets") }}
1+
{{- $opSecrets := (lookup "v1" "Secret" .Release.Namespace .Values.existingSecret) }}
22

33
apiVersion: v1
44
kind: ConfigMap
@@ -46,66 +46,66 @@ data:
4646
{{- if has "aggsender" .Values.config.components }}
4747
4848
[AggSender]
49-
{{ if .Values.config.aggSender.privateKey.keyName }}
50-
AggsenderPrivateKey = {Method ="GCP", KeyName={{ .Values.config.aggSender.privateKey.keyName | quote }}}
49+
{{ if .Values.config.aggsender.privateKey.keyName }}
50+
AggsenderPrivateKey = {Method ="GCP", KeyName={{ .Values.config.aggsender.privateKey.keyName | quote }}}
5151
{{ else }}
52-
AggsenderPrivateKey = {Path = "/etc/aggkit/sequencer.keystore", Password = {{ index $opSecrets.data "sequencerPrivateKeyPassword" | b64dec | quote }}}
52+
AggsenderPrivateKey = {Path = "/etc/aggkit/{{ .Values.config.aggsender.privateKey.keystoreFileName }}", Password = {{ index $opSecrets.data (.Values.config.aggsender.privateKey.keystoreFilePasswordSecretFieldName) | b64dec | quote }}}
5353
{{ end }}
5454
55-
CertificateSendInterval = {{ .Values.config.aggSender.certificateSendInterval | quote }}
56-
CheckSettledInterval = {{ .Values.config.aggSender.checkSettledInterval | quote }}
57-
MaxCertSize = {{ .Values.config.aggSender.maxCertSize | int }}
58-
SaveCertificatesToFilesPath = {{ .Values.config.aggSender.saveCertificatesToFilesPath | quote }}
59-
Mode={{ .Values.config.aggSender.mode | quote }}
55+
CertificateSendInterval = {{ .Values.config.aggsender.certificateSendInterval | quote }}
56+
CheckSettledInterval = {{ .Values.config.aggsender.checkSettledInterval | quote }}
57+
MaxCertSize = {{ .Values.config.aggsender.maxCertSize | int }}
58+
SaveCertificatesToFilesPath = {{ .Values.config.aggsender.saveCertificatesToFilesPath | quote }}
59+
Mode={{ .Values.config.aggsender.mode | quote }}
6060
RequireNoFEPBlockGap = true
61-
DryRun = {{ .Values.config.aggSender.dryRun }}
62-
MaxL2BlockNumber = {{ .Values.config.aggSender.maxL2BlockNumber | int }}
61+
DryRun = {{ .Values.config.aggsender.dryRun }}
62+
MaxL2BlockNumber = {{ .Values.config.aggsender.maxL2BlockNumber | int }}
6363
64-
{{ if .Values.config.aggSender.optimisticModeEnabled }}
64+
{{ if .Values.config.aggsender.optimisticModeEnabled }}
6565
[AggSender.OptimisticModeConfig]
6666
SovereignRollupAddr = {{ .Values.config.l1.rollupAddress | quote }}
6767
# By default use the same key that aggsender sign certs
68-
{{ if .Values.config.aggSender.privateKey.keyName }}
69-
TrustedSequencerKey = {Method ="GCP", KeyName={{ .Values.config.aggSender.privateKey.keyName | quote }}}
68+
{{ if .Values.config.aggsender.privateKey.keyName }}
69+
TrustedSequencerKey = {Method ="GCP", KeyName={{ .Values.config.aggsender.privateKey.keyName | quote }}}
7070
{{ else }}
71-
TrustedSequencerKey = {Path = "/etc/aggkit/sequencer.keystore", Password = {{ index $opSecrets.data "sequencerPrivateKeyPassword" | b64dec | quote }}}
71+
TrustedSequencerKey = {Path = "/etc/aggkit/{{ .Values.config.aggsender.privateKey.keystoreFileName }}", Password = {{ index $opSecrets.data (.Values.config.aggsender.privateKey.keystoreFilePasswordSecretFieldName) | b64dec | quote }}}
7272
{{ end }}
7373
OpNodeURL = "http://op-node:9545"
7474
RequireKeyMatchTrustedSequencer = true
7575
{{ end }}
7676
77-
{{ if .Values.config.aggSender.mode | eq "AggchainProof" }}
77+
{{ if .Values.config.aggsender.mode | eq "AggchainProof" }}
7878
[AggSender.AggkitProverClient]
79-
URL = {{ .Values.config.aggSender.aggkitProverClient.url | quote }}
80-
UseTLS = {{ .Values.config.aggSender.aggkitProverClient.useTLS | quote }}
79+
URL = {{ .Values.config.aggsender.aggkitProverClient.url | quote }}
80+
UseTLS = {{ .Values.config.aggsender.aggkitProverClient.useTLS | quote }}
8181
{{ end }}
8282
8383
[AggSender.AgglayerClient.GRPC]
84-
URL = {{ .Values.config.aggSender.agglayerClient.url | quote }}
85-
UseTLS = {{ .Values.config.aggSender.agglayerClient.useTLS | quote }}
84+
URL = {{ .Values.config.aggsender.agglayerClient.url | quote }}
85+
UseTLS = {{ .Values.config.aggsender.agglayerClient.useTLS | quote }}
8686
8787
[AggSender.ValidatorClient]
88-
URL = {{ .Values.config.aggSender.validatorClient.url | quote }}
88+
URL = {{ .Values.config.aggsender.validatorClient.url | quote }}
8989
9090
{{- end }}
9191
9292
{{- if has "aggoracle" .Values.config.components }}
9393
9494
[AggOracle]
95-
EnableAggOracleCommittee = {{ .Values.config.aggOracle.enableAggOracleCommittee }}
95+
EnableAggOracleCommittee = {{ .Values.config.aggoracle.enableAggOracleCommittee }}
9696
9797
[AggOracle.EVMSender]
9898
GlobalExitRootL2 = {{ .Values.config.l2.globalExitRootAddress | quote }}
9999
100-
{{ if .Values.config.aggOracle.enableAggOracleCommittee }}
101-
AggOracleCommitteeAddr = {{ .Values.config.aggOracle.aggOracleCommitteeAddr | quote }}
100+
{{ if .Values.config.aggoracle.enableAggOracleCommittee }}
101+
AggOracleCommitteeAddr = {{ .Values.config.aggoracle.aggoracleCommitteeAddr | quote }}
102102
{{ end }}
103103
104104
[AggOracle.EVMSender.EthTxManager]
105-
{{ if .Values.config.aggOracle.privateKey.keyName }}
106-
PrivateKeys = [{Method ="GCP", KeyName={{ .Values.config.aggOracle.privateKey.keyName | quote }}}]
105+
{{ if .Values.config.aggoracle.privateKey.keyName }}
106+
PrivateKeys = [{Method ="GCP", KeyName={{ .Values.config.aggoracle.privateKey.keyName | quote }}}]
107107
{{ else }}
108-
PrivateKeys = [{Path = "/etc/aggkit/aggoracle.keystore", Password = {{ index $opSecrets.data "aggoraclePrivateKeyPassword" | b64dec | quote }}}]
108+
PrivateKeys = [{Path = "/etc/aggkit/{{ .Values.config.aggoracle.privateKey.keystoreFileName }}", Password = {{ index $opSecrets.data (.Values.config.aggoracle.privateKey.keystoreFilePasswordSecretFieldName) | b64dec | quote }}}]
109109
{{ end }}
110110
111111
[AggOracle.EVMSender.EthTxManager.Etherman]
@@ -132,12 +132,16 @@ data:
132132
[L2GERSync]
133133
BlockFinality = "LatestBlock"
134134
135-
{{- if has "aggsender-validator" .Values.config.components }}
136-
137135
[Validator]
138-
EnableRPC = true
139-
Signer = {Method ="GCP", KeyName={{ .Values.config.validator.privateKey.keyName | quote }}}
140-
Mode={{ .Values.config.validator.mode | quote }}
136+
EnableRPC = {{ has "aggsender-validator" .Values.config.components }}
137+
{{- $pk := ternary .Values.config.aggsenderValidator.privateKey .Values.config.aggsender.privateKey (has "aggsender-validator" .Values.config.components) }}
138+
{{- $mode := ternary .Values.config.aggsenderValidator.mode .Values.config.aggsender.mode (has "aggsender-validator" .Values.config.components) }}
139+
{{ if $pk.keyName }}
140+
Signer = {Method ="GCP", KeyName={{ $pk.keyName | quote }}}
141+
{{ else }}
142+
Signer = {Path = "/etc/aggkit/{{ $pk.keystoreFileName }}", Password = {{ index $opSecrets.data ($pk.keystoreFilePasswordSecretFieldName) | b64dec | quote }}}
143+
{{ end }}
144+
Mode={{ $mode | quote }}
141145
142146
[Validator.ServerConfig]
143147
Host = "0.0.0.0"
@@ -156,9 +160,13 @@ data:
156160
Capacity = 100
157161
158162
[Validator.AgglayerClient.GRPC]
159-
URL = {{ .Values.config.validator.agglayerClient.url | quote }}
160-
UseTLS = {{ .Values.config.validator.agglayerClient.useTLS | quote }}
161-
{{ end }}
163+
{{- if has "aggsender-validator" .Values.config.components }}
164+
URL = {{ .Values.config.aggsenderValidator.agglayerClient.url | quote }}
165+
UseTLS = {{ .Values.config.aggsenderValidator.agglayerClient.useTLS | quote }}
166+
{{- else }}
167+
URL = {{ .Values.config.aggsender.agglayerClient.url | quote }}
168+
UseTLS = {{ .Values.config.aggsender.agglayerClient.useTLS | quote }}
169+
{{- end }}
162170
163171
[Prometheus]
164172
Enabled = {{ .Values.config.prometheus.enabled }}

charts/aggkit/templates/ingress.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ spec:
6464
name: bridge
6565
{{- end }}
6666
---
67-
{{- if .Values.ingresses.validator.create -}}
67+
{{- if .Values.ingresses.aggsenderValidator.create -}}
6868
apiVersion: networking.k8s.io/v1
6969
kind: Ingress
7070
metadata:
71-
name: {{ include "aggkit.fullname" . }}-validator
71+
name: {{ include "aggkit.fullname" . }}-aggsenderValidator
7272
annotations:
7373
cert-manager.io/issuer: gcp-cas-issuer
7474
cert-manager.io/issuer-kind: GoogleCASClusterIssuer
@@ -78,14 +78,14 @@ metadata:
7878
# protocol for the GCP-managed load balancer
7979
# See https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balance-ingress#https_between_client_and_load_balancer
8080
kubernetes.io/ingress.allow-http: "false"
81-
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.ingresses.validator.hostname }}"
81+
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.ingresses.aggsenderValidator.hostname }}"
8282
spec:
8383
tls:
8484
- hosts:
85-
- {{ .Values.ingresses.validator.hostname }}
86-
secretName: "{{ .Values.ingresses.validator.hostname }}-secret-tls"
85+
- {{ .Values.ingresses.aggsenderValidator.hostname }}
86+
secretName: "{{ .Values.ingresses.aggsenderValidator.hostname }}-secret-tls"
8787
rules:
88-
- host: {{ .Values.ingresses.validator.hostname }}
88+
- host: {{ .Values.ingresses.aggsenderValidator.hostname }}
8989
http:
9090
paths:
9191
- path: /

charts/aggkit/templates/statefulset.yaml

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,19 @@ spec:
121121
- key: "config.toml"
122122
path: "config.toml"
123123
- secret:
124-
name: op-secrets
124+
name: {{ .Values.existingSecret }}
125125
items:
126-
{{- if has "aggsender" .Values.config.components }}
127-
- key: sequencer.keystore
128-
path: sequencer.keystore
126+
{{- if and (has "aggsender" .Values.config.components) (eq .Values.config.aggsender.privateKey.keyName "") }}
127+
- key: {{ .Values.config.aggsender.privateKey.keystoreFileName }}
128+
path: {{ .Values.config.aggsender.privateKey.keystoreFileName }}
129129
{{- end }}
130-
{{- if has "aggoracle" .Values.config.components }}
131-
- key: aggoracle.keystore
132-
path: aggoracle.keystore
130+
{{- if and (has "aggsender-validator" .Values.config.components) (eq .Values.config.aggsenderValidator.privateKey.keyName "") }}
131+
- key: {{ .Values.config.aggsenderValidator.privateKey.keystoreFileName }}
132+
path: {{ .Values.config.aggsenderValidator.privateKey.keystoreFileName }}
133+
{{- end }}
134+
{{- if and (has "aggoracle" .Values.config.components) (eq .Values.config.aggoracle.privateKey.keyName "") }}
135+
- key: {{ .Values.config.aggoracle.privateKey.keystoreFileName }}
136+
path: {{ .Values.config.aggoracle.privateKey.keystoreFileName }}
133137
{{- end }}
134138
{{- end }}
135139
volumeClaimTemplates:

charts/aggkit/values.yaml

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ podLabels:
1616
partner: Polygon
1717
network: mynetwork
1818

19+
existingSecret: op-secrets
20+
1921
nodeSelector: {}
2022

2123
tolerations: []
@@ -39,7 +41,7 @@ container:
3941
ports:
4042
aggsender: 5576
4143
bridge: 5577
42-
validator: 5578
44+
validator: 5578 # named validator as is common to aggsender and aggsender-validator
4345
prometheus: 9091
4446

4547
service:
@@ -53,7 +55,7 @@ ingresses:
5355
bridge:
5456
create: false
5557
hostname: "something-else.dev.polygon"
56-
validator:
58+
aggsenderValidator:
5759
create: false
5860
hostname: "something-else-else.dev.polygon"
5961

@@ -75,7 +77,7 @@ config:
7577
- aggsender
7678
- aggoracle
7779

78-
aggSender:
80+
aggsender:
7981
certificateSendInterval: 1m
8082
checkSettledInterval: 5s
8183
maxCertSize: 8388608
@@ -84,7 +86,7 @@ config:
8486
maxL2BlockNumber: 0
8587
dryRun: false
8688

87-
# Set this if aggSender.mode is AggchainProof
89+
# Set this if aggsender.mode is AggchainProof
8890
# aggkitProverClient:
8991
# url: "http://aggkit-prover:4446"
9092
# useTLS: true
@@ -97,22 +99,32 @@ config:
9799
url: "http://localhost:5578"
98100

99101
privateKey:
100-
keyName: "" # if this string is not empty, aggSender will try to use KMS
102+
keyName: "" # if this string is not empty, aggsender will try to use KMS
103+
keystoreFileName: "aggsender.keystore"
104+
keystoreFilePasswordSecretFieldName: "aggsenderKeystorePassword"
105+
101106
optimisticModeEnabled: false
102107

103-
validator:
108+
aggsenderValidator:
109+
mode: "PessimisticProof" # PessimisticProof (PP) or AggchainProof (FEP)
110+
104111
agglayerClient:
105112
url: "http://agglayer:4444"
106113
useTLS: true
107114

108115
privateKey:
109-
keyName: "" # KMS key name
116+
keyName: "" # if this string is not empty, aggsender-validator will try to use KMS
117+
keystoreFileName: "aggsenderValidator.keystore"
118+
keystoreFilePasswordSecretFieldName: "aggsenderValidatorKeystorePassword"
110119

111-
aggOracle:
120+
aggoracle:
112121
enableAggOracleCommittee: false
113-
aggOracleCommitteeAddr: "0x"
122+
aggoracleCommitteeAddr: "0x"
123+
114124
privateKey:
115-
keyName: "" # if this string is not empty, aggOracle will try to use KMS
125+
keyName: "" # if this string is not empty, aggoracle will try to use KMS
126+
keystoreFileName: "aggoracle.keystore"
127+
keystoreFilePasswordSecretFieldName: "aggoracleKeystorePassword"
116128

117129
reorgDetectorL1:
118130
blockFinality: "FinalizedBlock"

0 commit comments

Comments
 (0)