Skip to content

Commit 77b653a

Browse files
authored
feat(cardano-node): Support for running as a block producer (#246)
* feat(keys): reword published with keys for troubleshooting Signed-off-by: wcatz <[email protected]> * feat(block-producer): add support for running as block producer Signed-off-by: wcatz <[email protected]> * fix(chart): remove unused cardano_config_base Signed-off-by: wcatz <[email protected]> --------- Signed-off-by: wcatz <[email protected]>
1 parent fae7989 commit 77b653a

File tree

4 files changed

+77
-18
lines changed

4 files changed

+77
-18
lines changed

charts/cardano-node/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: v2
22
name: cardano-node
33
description: Creates a Cardano node deployment with SOCAT sidecar
4-
version: 0.2.0
4+
version: 0.3.0
55
appVersion: 10.3.1
66
maintainers:
77
- name: aurora
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{{- if .Values.blockProducer.enabled }}
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: {{ .Release.Name }}-secret
6+
namespace: {{ .Release.Namespace | default "default" }}
7+
labels:
8+
{{- include "cardano-node.labels" . | nindent 4 }}
9+
cardano_network: {{ .Values.cardano_network }}
10+
type: Opaque
11+
data:
12+
{{- range .Values.blockProducer.keys }}
13+
{{ .name }}: {{ dict "type" .type "description" .description "cborHex" .cborHex | toJson | b64enc }}
14+
{{- end }}
15+
{{- end }}

charts/cardano-node/templates/statefulset.yaml

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,37 @@ spec:
2525
affinity: {{ .Values.affinity | toYaml | nindent 8 }}
2626
{{- end }}
2727
containers:
28-
- env:
29-
- name: CARDANO_NODE_SOCKET_PATH
30-
value: /ipc/node.socket
28+
- args:
29+
- run
30+
env:
3131
- name: CARDANO_DATABASE_PATH
3232
value: /data/db
33-
- name: CARDANO_SOCKET_PATH
34-
value: /ipc/node.socket
35-
- name: NETWORK
36-
value: {{ .Values.cardano_network }}
33+
- name: CARDANO_NETWORK
34+
value: "{{ .Values.cardano_network }}"
3735
- name: CARDANO_PORT
3836
value: "{{ .Values.service.ports.ntn.targetPort }}"
37+
- name: CARDANO_SOCKET_PATH
38+
value: /ipc/node.socket
3939
- name: CARDANO_TOPOLOGY
4040
value: "/opt/cardano/config/{{ .Values.cardano_network }}/topology.json"
41+
{{- if .Values.blockProducer.enabled }}
42+
- name: CARDANO_BLOCK_PRODUCER
43+
value: "true"
44+
- name: CARDANO_SHELLEY_KES_KEY
45+
value: "/opt/cardano/config/keys/kes.skey"
46+
- name: CARDANO_SHELLEY_OPERATIONAL_CERTIFICATE
47+
value: "/opt/cardano/config/keys/node.cert"
48+
- name: CARDANO_SHELLEY_VRF_KEY
49+
value: "/opt/cardano/config/keys/vrf.skey"
50+
{{- end }}
4151
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
4252
imagePullPolicy: {{ .Values.image.pullPolicy }}
4353
name: cardano-node
4454
ports:
45-
- name: ntn
46-
containerPort: {{ .Values.service.ports.ntn.targetPort }}
47-
- name: metrics
48-
containerPort: {{ .Values.service.ports.metrics.targetPort }}
55+
- containerPort: {{ .Values.service.ports.ntn.targetPort }}
56+
name: ntn
57+
- containerPort: {{ .Values.service.ports.metrics.targetPort }}
58+
name: metrics
4959
resources: {{ .Values.resources | toYaml | nindent 10 }}
5060
volumeMounts:
5161
- mountPath: /data
@@ -57,16 +67,20 @@ spec:
5767
mountPath: /opt/cardano/config/{{ .Values.cardano_network }}/topology.json
5868
subPath: topology.json
5969
{{- end }}
60-
- command:
70+
{{- if .Values.blockProducer.enabled }}
71+
- mountPath: /opt/cardano/config/keys
72+
name: block-producer-keys
73+
{{- end }}
74+
- name: socat-ntc
75+
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
76+
imagePullPolicy: IfNotPresent
77+
command:
6178
- sh
6279
- -c
6380
- socat TCP-LISTEN:${PORT},fork UNIX-CLIENT:/ipc/node.socket,ignoreeof
6481
env:
6582
- name: PORT
6683
value: "{{ .Values.service.ports.socatNtc.targetPort }}"
67-
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
68-
imagePullPolicy: IfNotPresent
69-
name: socat-ntc
7084
ports:
7185
- containerPort: {{ .Values.service.ports.socatNtc.targetPort }}
7286
resources: {{ .Values.socat.resources | toYaml | nindent 10 }}
@@ -85,8 +99,20 @@ spec:
8599
- name: node-db
86100
persistentVolumeClaim:
87101
claimName: node-db
88-
- emptyDir: {}
89-
name: node-ipc
102+
- name: node-ipc
103+
emptyDir: {}
104+
{{- if .Values.topology.enabled }}
105+
- name: topology
106+
configMap:
107+
name: {{ include "cardano-node.fullname" . }}-topology
108+
defaultMode: 0644
109+
{{- end }}
110+
{{- if .Values.blockProducer.enabled }}
111+
- name: block-producer-keys
112+
secret:
113+
defaultMode: 0600
114+
secretName: {{ .Release.Name }}-secret
115+
{{- end }}
90116
updateStrategy:
91117
type: OnDelete
92118
volumeClaimTemplates:

charts/cardano-node/values.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,23 @@ service:
1919
metrics:
2020
port: 12798
2121
targetPort: 12798
22+
blockProducer:
23+
enabled: false
24+
# These are placeholder keys used as an example. You will need to generate your own.
25+
# keys:
26+
# - name: kes.skey
27+
# type: KesSigningKey_ed25519_kes_2^6
28+
# description: KES Signing Key
29+
# cborHex: 590260ba480db1c8b51c48ab3e2fb26b34429431464e3e3b8c0bf86ab6f605a977627c31988677b46cdc192ef06fd2904e0fb648322c86d13815238f870a025caa33064ca7bcfd61b0e4743c449768780c29027cad1769ae1ecba361e47c52c327558736dfacb13a4f5538d5232901ce88fbbfd6cae9e0550218bae11112cb9951126109664e353d69d44a7769ae8a0d4e76baf66f6e228e718ea4e3e22cf680ae54470c39bdaf573e14a9ac0db7e8c91c44b49847b5bf601442bcfd8694de3990e6903eaeb1bf6230689002164637bf0ba7dcd97728c67768123c14f8fc41f321eaf6bd463615f9e502f0841d0661ff14427e6af7922542d62234ed70083e0cb17a72685566f8b4547ea00034ac252cf929a643ae14a7d532b706283bc768cbe58c438f65db66d5f66d28935942fcb77eeeb7508224c32f7edec35e0cc6e970e18bcfe3992a380bd52a758d9f20d1eac3606e6c3031c71b55ca3315fa5d7cf7c502c735cd58da3674ea2db88e1232f99a3cf330cff14f1744b0633d0cec98754fc9106e9b38f61433c8f75dbf718b55d7935f981d09acdaa84e4dca65cc38b2ee8ab2047771eeed256a1154cb70587e1cf815699b8ff6ed274c793616f89a13b2402b9d94d30ed670f5ef15fb7cfaf7e67ef5af570b12884618ae687309e35bbc6796b866032cd03a9af9e2dd706b98a484c502d86c48d97cf5638fa1d8b0aa190f70f4ec1b5b8c06f68a01e967e8aa0b88ae1ca84f6a9632df235fc4e3c9125678c13f813dc6d07b3a18b284eedb7661307273db653260c1be0f6a842aed45ed2c2a7478963934d5777243d22319597fa89a9db59624d229050c10bfacbeb65027cd
30+
# - name: node.cert
31+
# type: NodeOperationalCertificate
32+
# description: ""
33+
# cborHex: 82845820a0a32c47052755271d3ba14f4e44d8d5ec7fe6d55743a7982db5e67d70e0979e001902bf58403a2f841ae8ebdd751e6d52583963d8df37e05f3ec9225cc8ab160e38ad97296fe306e03a1240e7e704f260bed5a193ff69a6e6fa0526d6f0d4988b6b37ffc3075820da34b28ddcda277d264a7e5e5238996501cf76be0eacb555ab7a02d146b86b46
34+
# - name: vrf.skey
35+
# type: VrfSigningKey_PraosVRF
36+
# description: VRF Signing Key
37+
# cborHex: 5840823318989cf48897044629a22a27c8bf975215fe28161fc90cc42e9446a331be96a37ee0c4060a46ee0bf99fcba3460be133e7e343dd7d4144f67f2a6402e886
38+
2239
topology:
2340
enabled: false
2441
# config:
@@ -37,6 +54,7 @@ topology:
3754
# - accessPoints: []
3855
# advertise: false
3956
# useLedgerAfterSlot: 83116868
57+
4058
storage:
4159
# Suitable for preview and preprod, 250+ for mainnet
4260
size: "24Gi"

0 commit comments

Comments
 (0)