annotate dns_k8s_check.py @ 189:ef443257ae9c

new host 'squib'
author drewp@bigasterisk.com
date Mon, 12 Jun 2023 13:01:59 -0700
parents bf1573dd1947
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
1 import json
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
2 import subprocess
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
3
78
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 59
diff changeset
4 corednsConfig = subprocess.check_output(["kubectl", "get", "-n", "kube-system", "configmap/coredns", "-o", "yaml"]).decode('ascii')
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 59
diff changeset
5 print(corednsConfig)
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 59
diff changeset
6 if 'forward . 10.5.0.1' not in corednsConfig:
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 59
diff changeset
7 raise ValueError("coredns config is wrong")
fb68881b79a0 dns fussing
drewp@bigasterisk.com
parents: 59
diff changeset
8
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
9 subprocess.check_call(["skaffold", "run"], cwd="/my/proj/infra/k8s_lookup/")
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
10
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
11 try:
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
12 j = subprocess.check_output(['kubectl', 'get', 'pod', '-o', 'json', '--selector', 'name=k8s-lookup'])
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
13 pods = json.loads(j)['items']
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
14 for lookupName in [
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
15 'bang',
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
16 'bang.bigasterisk.com',
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
17 'bang.bigasterisk.com.',
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
18 'mongodb.default.svc.cluster.local',
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
19 'mongodb.default.svc.cluster.local.',
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
20 ]:
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
21 for pod in pods:
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
22 runningOn = pod['spec']['nodeName']
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
23 podName = pod['metadata']['name']
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
24
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
25 r = subprocess.run(
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
26 ['kubectl', 'exec', f'pod/{podName}'] + ['--'] + #
81
bf1573dd1947 dns fixes
drewp@bigasterisk.com
parents: 78
diff changeset
27 ['dnsget', '-o', 'timeout:2', '-q', lookupName],
59
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
28 capture_output=True)
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
29 result = (r.stdout + r.stderr).decode('ascii').strip().replace('\n', '; ')
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
30 print(f'looked up {lookupName} from pod on {runningOn} -> {result}')
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
31
fa7a71b8a97f more dns checks, including from inside containers in k8s`
drewp@bigasterisk.com
parents:
diff changeset
32 finally:
81
bf1573dd1947 dns fixes
drewp@bigasterisk.com
parents: 78
diff changeset
33 pass#subprocess.check_call(["skaffold", "delete"], cwd="/my/proj/infra/k8s_lookup/")