Updated for new version
This commit is contained in:
@@ -19,6 +19,10 @@
|
||||
wikideck_network_policy_peer_egress: "{{ invalid_case.peer_egress | default([]) }}"
|
||||
wikideck_image_pull_secrets: "{{ invalid_case.pull_secrets | default([]) }}"
|
||||
wikideck_network_policy_ingress_from: "{{ invalid_case.ingress_from | default([{'podSelector': {}}]) }}"
|
||||
wikideck_trusted_proxies: "{{ invalid_case.trusted_proxies | default([]) }}"
|
||||
wikideck_ops_port: "{{ invalid_case.ops_port | default('') }}"
|
||||
wikideck_mainnet_launch: "{{ invalid_case.mainnet_launch | default('') }}"
|
||||
wikideck_mainnet_risk_ack: "{{ invalid_case.risk_ack | default('') }}"
|
||||
block:
|
||||
- name: Run role input validation
|
||||
ansible.builtin.include_tasks: ../tasks/validate.yml
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
wikideck_namespace: "{{ render_case.namespace | default('wikideck') }}"
|
||||
wikideck_peers: "{{ render_case.peers | default([]) }}"
|
||||
wikideck_allow_private_peers: "{{ render_case.allow_private | default(false) }}"
|
||||
wikideck_mainnet_launch: "{{ render_case.mainnet_launch | default('') }}"
|
||||
wikideck_mainnet_risk_ack: "{{ render_case.risk_ack | default('') }}"
|
||||
wikideck_trusted_proxies: "{{ render_case.trusted_proxies | default([]) }}"
|
||||
wikideck_ops_port: "{{ render_case.ops_port | default('') }}"
|
||||
wikideck_startup_probe_failure_threshold: "{{ render_case.startup_threshold | default(180) }}"
|
||||
wikideck_ingress_enabled: "{{ render_case.ingress | default(false) }}"
|
||||
wikideck_ingress_host: wikideck.example.com
|
||||
@@ -73,6 +77,13 @@
|
||||
https_to: []
|
||||
- label: digest-pinned image
|
||||
image: registry.example.com/wikideck@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
- label: proxy trust and private diagnostics
|
||||
peers: [https://peer-a.example.org, https://peer-b.example.org]
|
||||
trusted_proxies: [10.20.30.40, 2001:db8::/64]
|
||||
ops_port: "9090"
|
||||
- label: exact mainnet launch configuration
|
||||
mainnet_launch: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
risk_ack: operator-accepts-unaudited-risk
|
||||
loop_control:
|
||||
loop_var: render_case
|
||||
label: "{{ render_case.label }}"
|
||||
@@ -146,6 +157,14 @@
|
||||
peer_egress:
|
||||
- to: [{podSelector: {}}]
|
||||
ports: [{protocol: UDP, port: 3001}]
|
||||
- label: malformed mainnet chain approval
|
||||
mainnet_launch: not-a-chain-id
|
||||
- label: unsupported mainnet risk acknowledgement
|
||||
risk_ack: operator-accepts-risk
|
||||
- label: proxy entry is not an IP or CIDR
|
||||
trusted_proxies: [proxy.example.org]
|
||||
- label: operations port out of range
|
||||
ops_port: "70000"
|
||||
loop_control:
|
||||
loop_var: invalid_case
|
||||
label: "{{ invalid_case.label }}"
|
||||
|
||||
@@ -48,6 +48,10 @@
|
||||
- env.WIKIDECK_DATA_DIR == '/app/data' and env.NODE_ENV == 'production'
|
||||
- env.WIKIDECK_PEERS == wikideck_peers | join(',')
|
||||
- env.WIKIDECK_ALLOW_PRIVATE_PEERS == ('1' if wikideck_allow_private_peers else '0')
|
||||
- env.WIKIDECK_MAINNET_LAUNCH == wikideck_mainnet_launch
|
||||
- env.WIKIDECK_MAINNET_RISK_ACK == wikideck_mainnet_risk_ack
|
||||
- (env.WIKIDECK_TRUSTED_PROXIES | default('')) == wikideck_trusted_proxies | join(',')
|
||||
- (env.WIKIDECK_OPS_PORT | default('')) == (wikideck_ops_port | string)
|
||||
- env.WIKIDECK_OFFLINE is not defined
|
||||
- env.RANDOMX_BINARY is not defined
|
||||
- container.command is not defined and container.args is not defined
|
||||
|
||||
+13
-6
@@ -2,7 +2,8 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { spawn, execFileSync } from 'node:child_process';
|
||||
import { once } from 'node:events';
|
||||
import { readFile, access } from 'node:fs/promises';
|
||||
import { access } from 'node:fs/promises';
|
||||
import { DatabaseSync } from 'node:sqlite';
|
||||
|
||||
assert.equal(process.env.WIKIDECK_DATA_DIR, '/app/data');
|
||||
assert.equal(process.env.WIKIDECK_PEERS, '');
|
||||
@@ -39,17 +40,23 @@ async function runNode() {
|
||||
const body = await response.json();
|
||||
if (path === '/healthz') {
|
||||
assert.equal(body.status, 'ok');
|
||||
assert.equal(body.network, 'wikideck-randomx-testnet-2');
|
||||
assert.equal(body.network, 'wikideck-randomx-testnet-6');
|
||||
} else if (path === '/p2p/status') {
|
||||
assert.equal(body.network, 'wikideck-randomx-testnet-2');
|
||||
assert.equal(body.network, 'wikideck-randomx-testnet-6');
|
||||
assert.equal(body.size, 0);
|
||||
assert.match(body.chainId, /^[a-f0-9]{64}$/);
|
||||
} else assert.deepEqual(body.peers, []);
|
||||
}
|
||||
await access('/app/data/testnet-node.lock');
|
||||
const ledger = JSON.parse(await readFile('/app/data/testnet/ledger.json', 'utf8'));
|
||||
assert.equal(ledger.network, 'wikideck-randomx-testnet-2');
|
||||
assert.deepEqual(ledger.blocks, []);
|
||||
const ledger = new DatabaseSync('/app/data/testnet/ledger.sqlite');
|
||||
try {
|
||||
const metadata = ledger.prepare('SELECT value FROM metadata WHERE key = ?').get('network');
|
||||
assert.equal(metadata.value, 'wikideck-randomx-testnet-6');
|
||||
assert.equal(ledger.prepare('SELECT COUNT(*) AS count FROM blocks').get().count, 0);
|
||||
assert.equal(ledger.prepare('SELECT COUNT(*) AS count FROM pending_transfers').get().count, 0);
|
||||
} finally {
|
||||
ledger.close();
|
||||
}
|
||||
child.kill('SIGTERM');
|
||||
assert.deepEqual(await exited, [0, null], output);
|
||||
await assert.rejects(access('/app/data/testnet-node.lock'), { code: 'ENOENT' });
|
||||
|
||||
Reference in New Issue
Block a user