video-iac/k8s/coturn-dns/register-nodes.py

40 lines
1.4 KiB
Python

import requests
import json
import boto3
import time
import os
HOSTED_ZONE=os.environ['HOSTED_ZONE']
CLUSTER_ID=os.environ['CLUSTER_ID']
POOL_ID=os.environ['POOL_ID']
LINODE_TOKEN=os.environ['LINODE_TOKEN']
TOKEN={"Authorization": "Bearer "+LINODE_TOKEN}
COTURN_DOMAIN_NAME=os.environ['COTURN_DOMAIN_NAME']
while(True):
r = requests.get("https://api.linode.com/v4/lke/clusters/"+CLUSTER_ID+"/pools/"+POOL_ID, headers=TOKEN)
ips=[]
for node in r.json()['nodes']:
ip = requests.get("https://api.linode.com/v4/linode/instances/"+str(node['instance_id'])+"/ips", headers=TOKEN)
ips.append({'Value': ip.json()['ipv4']['public'][0]['address']})
print("Node IPs: "+str(ips))
client = boto3.client('route53')
response = client.change_resource_record_sets(
HostedZoneId=HOSTED_ZONE,
ChangeBatch= {
'Comment': 'COTURN NODES',
'Changes': [
{
'Action': 'UPSERT',
'ResourceRecordSet': {
'Name': COTURN_DOMAIN_NAME,
'Type': 'A',
'TTL': 300,
'ResourceRecords': ips
}
}]
})
time.sleep(60)