From ee79a025486f10208c9080130a9e17928fcf6c45 Mon Sep 17 00:00:00 2001 From: Stewart X Addison <6487691+sxa@users.noreply.github.com> Date: Mon, 29 Apr 2024 09:37:21 +0100 Subject: [PATCH 1/2] inventory: Remove equinix_esxi (#3533) Signed-off-by: Stewart X Addison --- ansible/inventory.yml | 8 -------- ansible/plugins/inventory/adoptopenjdk_yaml.py | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/ansible/inventory.yml b/ansible/inventory.yml index bac7f050ce..e12aec8af6 100644 --- a/ansible/inventory.yml +++ b/ansible/inventory.yml @@ -50,9 +50,6 @@ hosts: - digitalocean: centos69-x64-2: {ip: 167.71.130.191} - - equinix_esxi: - solaris10-x64-1: {ip: 145.40.115.43} - - marist: rhel79-s390x-1: {ip: 148.100.75.212, user: linux1} rhel79-s390x-2: {ip: 148.100.74.54, user: linux1} @@ -132,11 +129,6 @@ hosts: ubuntu1804-ppc64le-2: {ip: 140.211.168.8, user: ubuntu} ubuntu2004-ppc64le-1: {ip: 140.211.168.235, user: ubuntu} - - equinix_esxi: - ubuntu2204-x64-1: {ip: 145.40.115.44, description: Perf machine} - ubuntu2204-x64-2: {ip: 145.40.115.46, description: Perf machine} - solaris10-x64-1: {ip: 145.40.115.45} - - macincloud: macos1201-x64-1: {ip: 216.39.74.137, user: admin, description: DXT437} macos1201-x64-2: {ip: 216.39.74.140, user: admin, description: DXT440} diff --git a/ansible/plugins/inventory/adoptopenjdk_yaml.py b/ansible/plugins/inventory/adoptopenjdk_yaml.py index 3fe8ef8013..253f20c74c 100755 --- a/ansible/plugins/inventory/adoptopenjdk_yaml.py +++ b/ansible/plugins/inventory/adoptopenjdk_yaml.py @@ -49,7 +49,7 @@ 'provider': ('alibaba', 'azure', 'marist', 'osuosl', 'macstadium', 'macincloud', 'ibmcloud', 'siteox', 'equinix', 'linaro','digitalocean', 'ibm', 'godaddy', - 'aws', 'inspira', 'equinix_esxi', 'nine', 'scaleway', 'skytap', + 'aws', 'inspira', 'nine', 'scaleway', 'skytap', 'hetzner') } From dfd14feb85c913e5e2b53e6031b552e613e14bc4 Mon Sep 17 00:00:00 2001 From: Haroon Khel <34969545+Haroon-Khel@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:36:57 +0800 Subject: [PATCH 2/2] docker: script to retrieve static docker containers from jenkins (#3423) * docker: python file to retrieve docker static containers from jenkins * add exceptions and help --------- Co-authored-by: Martijn Verburg --- ansible/DockerInventory.json | 295 ++++++++++++++++++ .../scripts/updateDockerStaticInventory.py | 89 ++++++ 2 files changed, 384 insertions(+) create mode 100644 ansible/DockerInventory.json create mode 100644 ansible/playbooks/AdoptOpenJDK_Unix_Playbook/roles/DockerStatic/scripts/updateDockerStaticInventory.py diff --git a/ansible/DockerInventory.json b/ansible/DockerInventory.json new file mode 100644 index 0000000000..a7a356d6f6 --- /dev/null +++ b/ansible/DockerInventory.json @@ -0,0 +1,295 @@ +[ + { + "name": "dockerhost-azure-ubuntu2204-x64-1", + "ip": "52.180.147.157", + "containers": [ + { + "nodeName": "test-docker-alpine314-x64-1", + "port": "32769" + }, + { + "nodeName": "test-docker-alpine319-x64-4", + "port": "32781" + }, + { + "nodeName": "test-docker-fedora39-x64-2", + "port": "32779" + }, + { + "nodeName": "test-docker-ubuntu2004-x64-2", + "port": "32768" + }, + { + "nodeName": "test-docker-ubuntu2004-x64-5", + "port": "32780" + }, + { + "nodeName": "test-docker-ubuntu2204-x64-2", + "port": "32778" + } + ], + "containersCount": 6 + }, + { + "name": "dockerhost-azure-ubuntu2204-x64-2", + "ip": "20.83.24.86", + "containers": [ + { + "nodeName": "test-docker-alpine319-x64-2", + "port": "32774" + }, + { + "nodeName": "test-docker-alpine319-x64-3", + "port": "32771" + }, + { + "nodeName": "test-docker-debian12-x64-3", + "port": "32770" + }, + { + "nodeName": "test-docker-debian12-x64-4", + "port": "32773" + }, + { + "nodeName": "test-docker-ubuntu2004-x64-4", + "port": "32768" + }, + { + "nodeName": "test-docker-ubuntu2204-x64-6", + "port": "32769" + }, + { + "nodeName": "test-docker-ubuntu2204-x64-7", + "port": "32772" + } + ], + "containersCount": 7 + }, + { + "name": "dockerhost-equinix-ubuntu2004-armv8-1", + "ip": "147.75.35.203", + "containers": [ + { + "nodeName": "test-docker-alpine319-armv8-2", + "port": "32775" + }, + { + "nodeName": "test-docker-alpine319-armv8-4", + "port": "32777" + }, + { + "nodeName": "test-docker-fedora39-armv8l-1", + "port": "2234" + }, + { + "nodeName": "test-docker-sles15-armv8l-1", + "port": "2236" + }, + { + "nodeName": "test-docker-ubuntu1804-armv8l-4", + "port": "32774" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-1", + "port": "2322" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-2", + "port": "2323" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-3", + "port": "2332" + }, + { + "nodeName": "test-docker-ubuntu2004-armv8l-1", + "port": "32770" + }, + { + "nodeName": "test-docker-ubuntu2004-armv8l-2", + "port": "32771" + }, + { + "nodeName": "test-docker-ubuntu2004-armv8l-3", + "port": "32772" + }, + { + "nodeName": "test-docker-ubuntu2204-armv8l-2", + "port": "32773" + }, + { + "nodeName": "test-docker-ubuntu2310-armv8l-1", + "port": "32776" + } + ], + "containersCount": 13 + }, + { + "name": "dockerhost-equinix-ubuntu2204-armv8-1", + "ip": "139.178.86.243", + "containers": [ + { + "nodeName": "test-docker-alpine314-armv8-3", + "port": "2214" + }, + { + "nodeName": "test-docker-alpine319-armv8-1", + "port": "2232" + }, + { + "nodeName": "test-docker-alpine319-armv8-3", + "port": "32772" + }, + { + "nodeName": "test-docker-debain12-armv8l-1", + "port": "2231" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-4", + "port": "2230" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-5", + "port": "2229" + }, + { + "nodeName": "test-docker-ubuntu2004-armv7l-6", + "port": "2227" + }, + { + "nodeName": "test-docker-ubuntu2204-armv8-1", + "port": "32769" + }, + { + "nodeName": "test-docker-ubuntu2204-armv8-2", + "port": "32770" + }, + { + "nodeName": "test-docker-ubuntu2204-armv8-3", + "port": "32771" + } + ], + "containersCount": 10 + }, + { + "name": "dockerhost-marist-ubuntu2204-s390x-1", + "ip": "148.100.74.237", + "containers": [ + { + "nodeName": "test-docker-sles12-s390x-1", + "port": "32769" + }, + { + "nodeName": "test-docker-sles15-s390x-1", + "port": "32768" + } + ], + "containersCount": 2 + }, + { + "name": "dockerhost-osuosl-ubuntu2004-ppc64le-1", + "ip": "140.211.168.214", + "containers": [ + { + "nodeName": "docker-osuosl-ubuntu2004-ppc64le-1", + "port": "22" + }, + { + "nodeName": "test-docker-fedora39-ppc64le-1", + "port": "2229" + }, + { + "nodeName": "test-docker-ubuntu2004-ppc64le-1", + "port": "2228" + }, + { + "nodeName": "test-docker-ubuntu2204-ppc64le-3", + "port": "2230" + } + ], + "containersCount": 4 + }, + { + "name": "dockerhost-osuosl-ubuntu2204-aarch64-1", + "ip": "140.211.167.67", + "containers": [ + { + "nodeName": "test-docker-centos8-armv8-1", + "port": "2224" + }, + { + "nodeName": "test-docker-ubuntu2204-armv8-4", + "port": "2226" + } + ], + "containersCount": 2 + }, + { + "name": "dockerhost-rise-ubuntu2204-aarch64-1", + "ip": "34.72.108.242", + "containers": [], + "containersCount": 0 + }, + { + "name": "dockerhost-skytap-ubuntu2004-ppc64le-1", + "ip": "20.61.136.212", + "containers": [ + { + "nodeName": "test-docker-debian11-ppc64le-1", + "port": "32768" + }, + { + "nodeName": "test-docker-debian11-ppc64le-2", + "port": "32769" + }, + { + "nodeName": "test-docker-debian11-ppc64le-3", + "port": "32770" + }, + { + "nodeName": "test-docker-debian11-ppc64le-4", + "port": "32773" + }, + { + "nodeName": "test-docker-ubuntu2204-ppc64le-1", + "port": "32771" + }, + { + "nodeName": "test-docker-ubuntu2204-ppc64le-2", + "port": "32772" + } + ], + "containersCount": 6 + }, + { + "name": "dockerhost-skytap-ubuntu2204-x64-1", + "ip": "20.61.136.254", + "containers": [ + { + "nodeName": "test-docker-alpine319-x64-1", + "port": "32787" + }, + { + "nodeName": "test-docker-centos7-x64-1", + "port": "32782" + }, + { + "nodeName": "test-docker-debian12-x64-1", + "port": "32778" + }, + { + "nodeName": "test-docker-fedora39-x64-1", + "port": "32779" + }, + { + "nodeName": "test-docker-ubi8-x64-3", + "port": "32790" + }, + { + "nodeName": "test-docker-ubuntu2004-x64-3", + "port": "32783" + } + ], + "containersCount": 6 + } +] \ No newline at end of file diff --git a/ansible/playbooks/AdoptOpenJDK_Unix_Playbook/roles/DockerStatic/scripts/updateDockerStaticInventory.py b/ansible/playbooks/AdoptOpenJDK_Unix_Playbook/roles/DockerStatic/scripts/updateDockerStaticInventory.py new file mode 100644 index 0000000000..7a8df9c65e --- /dev/null +++ b/ansible/playbooks/AdoptOpenJDK_Unix_Playbook/roles/DockerStatic/scripts/updateDockerStaticInventory.py @@ -0,0 +1,89 @@ +import sys +import json +import jenkins + +def getIP(nodeConfig): + find1 = nodeConfig.find("") + 6 + find2 = nodeConfig.find("") + if find1 > 5 and find2 > -1: + ip = nodeConfig[find1:find2] + return ip + else: + return "No ip" + +def getNodePort(nodeConfig): + find1 = nodeConfig.find("") + 6 + find2 = nodeConfig.find("") + if find1 > 5 and find2 > -1: + port = nodeConfig[find1:find2] + return port + else: + return "No port" + +def getLabel(nodeConfig): + find1 = nodeConfig.find("") + if find1 > 5 and find2 > -1: + labels = nodeConfig[find1:find2] + return labels + else: + return "No labels" + +def createServer(username, password): + url = "http://ci.adoptium.net:80" + server = jenkins.Jenkins(url, username=username, + password=password) + return server + +def help(): + print("Help:\n" + " This script is used to retrieve dockerhost and static docker container information from the Adoptium Jenkins server hosted at https://ci.adoptium.net\n" + " Usage: python3 updateDockerStaticInventory.py $username $jenkinsAPItoken\n" + " The results are dumped into DockerInventory.json in the same directory from which the script was executed\n") + +def main(): +# Credentials passed via commandline + try: + username, password = sys.argv[1:3] + server = createServer(username, password) + dockerhosts = [] + nodes = server.get_nodes() + except ValueError: + print("\nERROR:This script takes one username and one api token\n") + help() + sys.exit(1) + +# Get a list of dockerhost machines + for node in nodes: + if node["name"].find("dockerhost") > -1: + dockerhost = node["name"] + ip = getIP(server.get_node_config(dockerhost)) + dockerhosts.append({"name":dockerhost, "ip":ip}) + + dockerhostsFull = [] + +# Get static docker containers, group with dockerhosts + for dockerhost in dockerhosts: + print(dockerhost) + containers = [] + for node in nodes: + try: + nodeConfig = server.get_node_config(node["name"]) + nodeIP = getIP(nodeConfig) + nodePort = getNodePort(nodeConfig) + if nodeIP == dockerhost["ip"] and node["name"] != dockerhost["name"]: + nodeObject = {"nodeName": node["name"], "port": nodePort} + containers.append(nodeObject) + except jenkins.NotFoundException: + continue + + dockerhostsFull.append({"name": dockerhost["name"], "ip": dockerhost["ip"], "containers": containers, "containersCount": len(containers)}) + + print(json.dumps(dockerhostsFull, indent=4)) + +# Write output to file + with open('../DockerInventory.json', 'w') as f: + json.dump(dockerhostsFull, f, indent=4) + +if __name__ == "__main__": + main()