node.yaml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. ---
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: guardian
  6. labels:
  7. app: guardian
  8. spec:
  9. ports:
  10. - port: 8996
  11. name: ccq-p2p
  12. protocol: UDP
  13. - port: 8999
  14. name: p2p
  15. protocol: UDP
  16. - port: 7070
  17. name: public-grpc
  18. protocol: TCP
  19. - port: 7071
  20. name: public-rest
  21. protocol: TCP
  22. clusterIP: None
  23. selector:
  24. app: guardian
  25. ---
  26. apiVersion: apps/v1
  27. kind: StatefulSet
  28. metadata:
  29. name: guardian
  30. spec:
  31. selector:
  32. matchLabels:
  33. app: guardian
  34. serviceName: guardian
  35. replicas: 5
  36. updateStrategy:
  37. # The StatefulSet rolling update strategy is rather dumb, and updates one pod after another.
  38. # If we want blue-green deployments, we should use a Deployment instead.
  39. type: RollingUpdate
  40. template:
  41. metadata:
  42. labels:
  43. app: guardian
  44. spec:
  45. terminationGracePeriodSeconds: 0
  46. volumes:
  47. # mount shared between containers for runtime state
  48. - name: node-rundir
  49. emptyDir: {}
  50. - name: node-wormchain-key
  51. secret:
  52. secretName: node-wormchain-key
  53. optional: false
  54. items:
  55. - key: accountantKey0
  56. path: accountantKey0
  57. - key: accountantKey1
  58. path: accountantKey1
  59. - key: gwrelayerKey0
  60. path: gwrelayerKey0
  61. - key: gwrelayerKey1
  62. path: gwrelayerKey1
  63. - key: accountantNttKey0
  64. path: accountantNttKey0
  65. - key: accountantNttKey1
  66. path: accountantNttKey1
  67. - name: node-config
  68. configMap:
  69. name: node-config
  70. containers:
  71. - name: guardiand
  72. image: guardiand-image
  73. volumeMounts:
  74. - mountPath: /run/node
  75. name: node-rundir
  76. - mountPath: /tmp/mounted-keys/wormchain
  77. name: node-wormchain-key
  78. - mountPath: /app/node/config
  79. name: node-config
  80. command:
  81. - /guardiand
  82. - node
  83. - --config
  84. - node/config/guardiand.yaml
  85. # - --ethRPC
  86. # - ws://eth-devnet:8545
  87. # - --wormchainURL
  88. # - wormchain:9090
  89. # - --accountantKeyPath
  90. # - /tmp/mounted-keys/wormchain/accountantKey
  91. # - --accountantKeyPassPhrase
  92. # - test0000
  93. # - --accountantWS
  94. # - http://wormchain:26657
  95. # - --accountantContract
  96. # - wormhole14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9srrg465
  97. # - --accountantCheckEnabled=true
  98. # - --terraWS
  99. # - ws://terra-terrad:26657/websocket
  100. # - --terraLCD
  101. # - http://terra-terrad:1317
  102. # - --terraContract
  103. # - terra14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9ssrc8au
  104. # - --terra2WS
  105. # - ws://terra2-terrad:26657/websocket
  106. # - --terra2LCD
  107. # - http://terra2-terrad:1317
  108. # - --terra2Contract
  109. # - terra14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9ssrc8au
  110. # - --algorandAppID
  111. # - "1004"
  112. # - --algorandIndexerRPC
  113. # - http://algorand:8980
  114. # - --algorandIndexerToken
  115. # - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  116. # - --algorandAlgodRPC
  117. # - http://algorand:4001
  118. # - --algorandAlgodToken
  119. # - "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  120. # - --nearRPC
  121. # - http://near:3030
  122. # - --nearContract
  123. # - wormhole.test.near
  124. # - --solanaContract
  125. # - Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o
  126. # - --solanaRPC
  127. # - http://solana-devnet:8899
  128. # - --pythnetContract
  129. # - Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o
  130. # - --pythnetRPC
  131. # - http://solana-devnet:8899
  132. - --unsafeDevMode
  133. - --guardianKey
  134. - /tmp/bridge.key
  135. - --publicRPC
  136. - "[::]:7070"
  137. - --publicWeb
  138. - "[::]:7071"
  139. - --adminSocket
  140. - /tmp/admin.sock
  141. - --publicGRPCSocket
  142. - /tmp/publicrpc.sock
  143. - --dataDir
  144. - /tmp/data
  145. - --publicRpcLogDetail
  146. - "full"
  147. # - --chainGovernorEnabled=true
  148. - --ccqEnabled=true
  149. - --ccqAllowedRequesters=beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe,25021A4FCAf61F2EADC8202D3833Df48B2Fa0D54
  150. - --ccqAllowedPeers=12D3KooWSnju8zhywCYVi2JwTqky1sySPnmtYLsHHzc4WerMnDQH,12D3KooWM6WqedfR6ehtTd1y6rJu3ZUrEkTjcJJnJZYesjd89zj8
  151. - --transferVerifierEnabledChainIDs=2
  152. - --notaryEnabled=true
  153. - --logLevel=warn
  154. securityContext:
  155. capabilities:
  156. add:
  157. # required for syscall.Mlockall
  158. - IPC_LOCK
  159. readinessProbe:
  160. httpGet:
  161. port: 6060
  162. path: /readyz
  163. ports:
  164. - containerPort: 8996
  165. name: ccq-p2p
  166. protocol: UDP
  167. - containerPort: 8999
  168. name: p2p
  169. protocol: UDP
  170. - containerPort: 6060
  171. name: pprof
  172. protocol: TCP
  173. - containerPort: 7070
  174. name: public-grpc
  175. protocol: TCP
  176. - containerPort: 7071
  177. name: public-grpcweb
  178. protocol: TCP
  179. - containerPort: 2345
  180. name: debugger
  181. protocol: TCP
  182. ---
  183. apiVersion: v1
  184. kind: Secret
  185. metadata:
  186. name: node-wormchain-key
  187. type: Opaque
  188. data:
  189. accountantKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogRjlGRUFBRDQ4NzJCNjQzN0JFRTI2MEU3QTUwOTFBOTEKdHlwZTogc2VjcDI1NmsxCgpxMEFsUHBqMFhxL1cvcStHUEUwRjVzOUZreVcwOHVZUFJKVFc5OENpbFNUZGhiQ3Z3T2kwWlVXb0pta2xoMm5ICnRmZEViTDF1NHEycnJjcDF5b0dLVHRNRmVOQm9aMW5IeWxlQ3lxMD0KPXk3cjAKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  190. accountantKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNzIyNDgyNzNBRjMzMDM4NTFDNjc0MURENzQ2MjMyNDAKdHlwZTogc2VjcDI1NmsxCgpaMmZwdHRRN0lCK1Y0NjBRZ0RqMGdqZmJIYlN5a0VCTGl6ZS9NQ1g4N2dBSkdyZzBIMTZPamtybUNQNkZVeERZClpadG1GOUx5ZEE5eVg3Z2pQbzd3ZlBGOW44cTFGMXV1RUVqQ3cvcz0KPU9nOXYKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  191. gwrelayerKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0KdHlwZTogc2VjcDI1NmsxCmtkZjogYmNyeXB0CnNhbHQ6IDc4OUYzRTBCMkVGNDcyNjAyQzNFMUE0OUI2OENFQzlBCgpGWHAvSllPS3E4WmZtOWxHZ3ZFNEM3NXFyUXFNZFp2RHNWRjhObTdMQU1oR2dHbXBnZnpoZjUrZ3IwZ1hjYjVWCmtSTXA2c0p0NkxCVzRPYWF2ckk3ay84Vml2NWhMVU1la1dPMHg5bz0KPUxrb1MKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  192. gwrelayerKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNDc5RDk3RDE2OTE0QkQ4QjlFNUUwQzkzMDA0RDA4RUEKdHlwZTogc2VjcDI1NmsxCgpvTEJ0aUkwT2pudXo5bHlzeVlZOFhQeEVkTnpwYUJOVWFkL0UySlJld2pFWFZNVVNTWll2QVZKbERiN3hEQjlSCmEvdm45SFNPM2hKOFc1QTBKOVFqUVZXRzVoZXBNZVpQUEI4M1FCUT0KPVJuTGEKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  193. accountantNttKey0: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNzI4NTBEREJFNDQ4NzZBN0Q1Q0YxNDlBQjBGQjNBQzEKdHlwZTogc2VjcDI1NmsxCgpYN1BGMUJaZFBZMmlvRHdVRm9KcXdVdVg4YlFmcFNGckk4UklPS2g1ZUg5cCtDUzZYMm5lM2hVWGFPTDB3YXhUCnM3QVduTzErU241L1g1V0NicklqNHdDVUcwUWdNb0IyN2VFQnB2ND0KPWJiSEkKLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  194. accountantNttKey1: LS0tLS1CRUdJTiBURU5ERVJNSU5UIFBSSVZBVEUgS0VZLS0tLS0Ka2RmOiBiY3J5cHQKc2FsdDogNEI2NDI1NDY0MDY0RTIzQjJENUUyNkQyNUI1QUIzQTcKdHlwZTogc2VjcDI1NmsxCgp2NDFNNGdqelc2MHVwcUhyb2l3aURYakVJMEE5WjN1R2lZcmdyNVpjUit2c3V5RFdDZWNXZUFqV2NXb2tINmRhCldKQ1cvdjNua1pqa0xhajByeEpxYTNrSThodDBtdjZ4eDB0WHhSUT0KPUpSZS8KLS0tLS1FTkQgVEVOREVSTUlOVCBQUklWQVRFIEtFWS0tLS0t
  195. ---
  196. apiVersion: v1
  197. kind: ConfigMap
  198. metadata:
  199. name: node-config
  200. data:
  201. guardiand.yaml: |
  202. ethRPC: "ws://eth-devnet:8545"