github.com/kotalco/kotal@v0.3.0/config/crd/bases/ethereum.kotal.io_nodes.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1 3 kind: CustomResourceDefinition 4 metadata: 5 annotations: 6 controller-gen.kubebuilder.io/version: v0.8.0 7 creationTimestamp: null 8 name: nodes.ethereum.kotal.io 9 spec: 10 group: ethereum.kotal.io 11 names: 12 kind: Node 13 listKind: NodeList 14 plural: nodes 15 singular: node 16 scope: Namespaced 17 versions: 18 - additionalPrinterColumns: 19 - jsonPath: .spec.client 20 name: Client 21 type: string 22 - jsonPath: .status.consensus 23 name: Consensus 24 type: string 25 - jsonPath: .status.network 26 name: Network 27 type: string 28 - jsonPath: .status.enodeURL 29 name: enodeURL 30 priority: 10 31 type: string 32 name: v1alpha1 33 schema: 34 openAPIV3Schema: 35 description: Node is the Schema for the nodes API 36 properties: 37 apiVersion: 38 description: 'APIVersion defines the versioned schema of this representation 39 of an object. Servers should convert recognized schemas to the latest 40 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 41 type: string 42 kind: 43 description: 'Kind is a string value representing the REST resource this 44 object represents. Servers may infer this from the endpoint the client 45 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 46 type: string 47 metadata: 48 type: object 49 spec: 50 description: NodeSpec is the specification of the node 51 properties: 52 bootnodes: 53 description: Bootnodes is set of ethereum node URLS for p2p discovery 54 bootstrap 55 items: 56 description: Enode is ethereum node url 57 type: string 58 type: array 59 x-kubernetes-list-type: set 60 client: 61 description: Client is ethereum client running on the node 62 enum: 63 - besu 64 - geth 65 - nethermind 66 type: string 67 coinbase: 68 description: Coinbase is the account to which mining rewards are paid 69 pattern: ^0[xX][0-9a-fA-F]{40}$ 70 type: string 71 corsDomains: 72 description: CORSDomains is the domains from which to accept cross 73 origin requests 74 items: 75 type: string 76 type: array 77 x-kubernetes-list-type: set 78 engine: 79 description: Engine enables authenticated Engine RPC APIs 80 type: boolean 81 enginePort: 82 description: EnginePort is engine authenticated RPC APIs port 83 type: integer 84 extraArgs: 85 additionalProperties: 86 type: string 87 description: ExtraArgs is extra arguments to pass down to the cli 88 type: object 89 genesis: 90 description: Genesis is genesis block configuration 91 properties: 92 accounts: 93 description: Accounts is array of accounts to fund or associate 94 with code and storage 95 items: 96 description: Account is Ethereum account 97 properties: 98 address: 99 description: Address is account address 100 pattern: ^0[xX][0-9a-fA-F]{40}$ 101 type: string 102 balance: 103 description: Balance is account balance in wei 104 pattern: ^0[xX][0-9a-fA-F]+$ 105 type: string 106 code: 107 description: Code is account contract byte code 108 pattern: ^0[xX][0-9a-fA-F]+$ 109 type: string 110 storage: 111 additionalProperties: 112 description: HexString is String in hexadecial format 113 pattern: ^0[xX][0-9a-fA-F]+$ 114 type: string 115 description: Storage is account contract storage as key 116 value pair 117 type: object 118 required: 119 - address 120 type: object 121 type: array 122 chainId: 123 description: ChainID is the the chain ID used in transaction signature 124 to prevent reply attack more details https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md 125 type: integer 126 clique: 127 description: Clique PoA engine cinfiguration 128 properties: 129 blockPeriod: 130 description: BlockPeriod is block time in seconds 131 type: integer 132 epochLength: 133 description: EpochLength is the Number of blocks after which 134 to reset all votes 135 type: integer 136 signers: 137 description: Signers are PoA initial signers, at least one 138 signer is required 139 items: 140 description: EthereumAddress is ethereum address 141 pattern: ^0[xX][0-9a-fA-F]{40}$ 142 type: string 143 minItems: 1 144 type: array 145 type: object 146 coinbase: 147 description: Address to pay mining rewards to 148 pattern: ^0[xX][0-9a-fA-F]{40}$ 149 type: string 150 difficulty: 151 description: Difficulty is the diffculty of the genesis block 152 pattern: ^0[xX][0-9a-fA-F]+$ 153 type: string 154 ethash: 155 description: Ethash PoW engine configuration 156 properties: 157 fixedDifficulty: 158 description: FixedDifficulty is fixed difficulty to be used 159 in private PoW networks 160 type: integer 161 type: object 162 forks: 163 description: Forks is supported forks (network upgrade) and corresponding 164 block number 165 properties: 166 arrowGlacier: 167 description: ArrowGlacier fork 168 type: integer 169 berlin: 170 description: Berlin fork 171 type: integer 172 byzantium: 173 description: Byzantium fork 174 type: integer 175 constantinople: 176 description: Constantinople fork 177 type: integer 178 dao: 179 description: DAO fork 180 type: integer 181 eip150: 182 description: EIP150 (Tangerine Whistle) fork 183 type: integer 184 eip155: 185 description: EIP155 (Spurious Dragon) fork 186 type: integer 187 eip158: 188 description: EIP158 (state trie clearing) fork 189 type: integer 190 homestead: 191 description: Homestead fork 192 type: integer 193 istanbul: 194 description: Istanbul fork 195 type: integer 196 london: 197 description: London fork 198 type: integer 199 muirglacier: 200 description: MuirGlacier fork 201 type: integer 202 petersburg: 203 description: Petersburg fork 204 type: integer 205 type: object 206 gasLimit: 207 description: GastLimit is the total gas limit for all transactions 208 in a block 209 pattern: ^0[xX][0-9a-fA-F]+$ 210 type: string 211 ibft2: 212 description: IBFT2 PoA engine configuration 213 properties: 214 blockPeriod: 215 description: BlockPeriod is block time in seconds 216 type: integer 217 duplicateMessageLimit: 218 description: DuplicateMessageLimit is duplicate messages limit 219 type: integer 220 epochLength: 221 description: EpochLength is the Number of blocks after which 222 to reset all votes 223 type: integer 224 futureMessagesLimit: 225 description: futureMessagesLimit is future messages buffer 226 limit 227 type: integer 228 futureMessagesMaxDistance: 229 description: FutureMessagesMaxDistance is maximum height from 230 current chain height for buffering future messages 231 type: integer 232 messageQueueLimit: 233 description: MessageQueueLimit is the message queue limit 234 type: integer 235 requestTimeout: 236 description: RequestTimeout is the timeout for each consensus 237 round in seconds 238 type: integer 239 validators: 240 description: Validators are initial ibft2 validators 241 items: 242 description: EthereumAddress is ethereum address 243 pattern: ^0[xX][0-9a-fA-F]{40}$ 244 type: string 245 minItems: 1 246 type: array 247 type: object 248 mixHash: 249 description: MixHash is hash combined with nonce to prove effort 250 spent to create block 251 pattern: ^0[xX][0-9a-fA-F]{64}$ 252 type: string 253 networkId: 254 description: NetworkID is network id 255 type: integer 256 nonce: 257 description: Nonce is random number used in block computation 258 pattern: ^0[xX][0-9a-fA-F]+$ 259 type: string 260 timestamp: 261 description: Timestamp is block creation date 262 pattern: ^0[xX][0-9a-fA-F]+$ 263 type: string 264 required: 265 - chainId 266 - networkId 267 type: object 268 graphql: 269 description: GraphQL is whether GraphQL server is enabled or not 270 type: boolean 271 graphqlPort: 272 description: GraphQLPort is the GraphQL server listening port 273 type: integer 274 hosts: 275 description: Hosts is a list of hostnames to to whitelist for RPC 276 access 277 items: 278 type: string 279 type: array 280 x-kubernetes-list-type: set 281 image: 282 description: Image is Ethereum node client image 283 type: string 284 import: 285 description: import is account to import 286 properties: 287 passwordSecretName: 288 description: PasswordSecretName is the secret holding password 289 used to encrypt account private key 290 type: string 291 privateKeySecretName: 292 description: PrivateKeySecretName is the secret name holding account 293 private key 294 type: string 295 required: 296 - passwordSecretName 297 - privateKeySecretName 298 type: object 299 jwtSecretName: 300 description: JWTSecretName is kubernetes secret name holding JWT secret 301 type: string 302 logging: 303 description: Logging is logging verboisty level 304 enum: 305 - "off" 306 - fatal 307 - error 308 - warn 309 - info 310 - debug 311 - trace 312 - all 313 type: string 314 miner: 315 description: Miner is whether node is mining/validating blocks or 316 no 317 type: boolean 318 network: 319 description: Network specifies the network to join 320 type: string 321 nodePrivateKeySecretName: 322 description: NodePrivateKeySecretName is the secret name holding node 323 private key 324 type: string 325 p2pPort: 326 description: P2PPort is port used for peer to peer communication 327 type: integer 328 replicas: 329 description: Replicas is number of replicas 330 enum: 331 - 0 332 - 1 333 type: integer 334 resources: 335 description: Resources is node compute and storage resources 336 properties: 337 cpu: 338 description: CPU is cpu cores the node requires 339 pattern: ^[1-9][0-9]*m?$ 340 type: string 341 cpuLimit: 342 description: CPULimit is cpu cores the node is limited to 343 pattern: ^[1-9][0-9]*m?$ 344 type: string 345 memory: 346 description: Memory is memmory requirements 347 pattern: ^[1-9][0-9]*[KMGTPE]i$ 348 type: string 349 memoryLimit: 350 description: MemoryLimit is cpu cores the node is limited to 351 pattern: ^[1-9][0-9]*[KMGTPE]i$ 352 type: string 353 storage: 354 description: Storage is disk space storage requirements 355 pattern: ^[1-9][0-9]*[KMGTPE]i$ 356 type: string 357 storageClass: 358 description: StorageClass is the volume storage class 359 type: string 360 type: object 361 rpc: 362 description: RPC is whether HTTP-RPC server is enabled or not 363 type: boolean 364 rpcAPI: 365 description: RPCAPI is a list of rpc services to enable 366 items: 367 description: API is RPC API to be exposed by RPC or web socket server 368 enum: 369 - admin 370 - clique 371 - debug 372 - eea 373 - eth 374 - ibft 375 - miner 376 - net 377 - perm 378 - plugins 379 - priv 380 - txpool 381 - web3 382 type: string 383 type: array 384 x-kubernetes-list-type: set 385 rpcPort: 386 description: RPCPort is HTTP-RPC server listening port 387 type: integer 388 staticNodes: 389 description: StaticNodes is a set of ethereum nodes to maintain connection 390 to 391 items: 392 description: Enode is ethereum node url 393 type: string 394 type: array 395 x-kubernetes-list-type: set 396 syncMode: 397 description: SyncMode is the node synchronization mode 398 enum: 399 - fast 400 - full 401 - light 402 - snap 403 type: string 404 ws: 405 description: WS is whether web socket server is enabled or not 406 type: boolean 407 wsAPI: 408 description: WSAPI is a list of WS services to enable 409 items: 410 description: API is RPC API to be exposed by RPC or web socket server 411 enum: 412 - admin 413 - clique 414 - debug 415 - eea 416 - eth 417 - ibft 418 - miner 419 - net 420 - perm 421 - plugins 422 - priv 423 - txpool 424 - web3 425 type: string 426 type: array 427 x-kubernetes-list-type: set 428 wsPort: 429 description: WSPort is the web socket server listening port 430 type: integer 431 required: 432 - client 433 type: object 434 status: 435 description: NodeStatus defines the observed state of Node 436 properties: 437 consensus: 438 description: Consensus is network consensus algorithm 439 type: string 440 enodeURL: 441 description: EnodeURL is the node URL 442 type: string 443 network: 444 description: Network is the network this node is joining 445 type: string 446 type: object 447 type: object 448 served: true 449 storage: true 450 subresources: 451 status: {} 452 status: 453 acceptedNames: 454 kind: "" 455 plural: "" 456 conditions: [] 457 storedVersions: []