From 48515a5fcc0ddc47f6f13947b3bf64eacf25d57d Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Wed, 21 Apr 2021 10:54:41 -0700 Subject: [PATCH] Add InMotion cloud to nodepool This adds the new inmotion cloud to nodepool. We will upload images then use a max server count of 8. There is potential to grow this number if we can run an executor in this cloud that can hit node private addresses or if we can get IPv6. Depends-On: https://review.opendev.org/c/opendev/system-config/+/787425 Change-Id: I3d0d79bb13aebbaacc55c2b57d264f5832eb3951 --- grafana/create-nodepool.sh | 1 + grafana/nodepool-inmotion.yaml | 197 +++++++++++++++++++++++++++++++++ nodepool/nl02.opendev.org.yaml | 83 ++++++++++++++ nodepool/nodepool.yaml | 6 + 4 files changed, 287 insertions(+) create mode 100644 grafana/nodepool-inmotion.yaml diff --git a/grafana/create-nodepool.sh b/grafana/create-nodepool.sh index 1627e164cc..1f51b68854 100755 --- a/grafana/create-nodepool.sh +++ b/grafana/create-nodepool.sh @@ -27,3 +27,4 @@ create OVH 'ovh-*' nodepool-ovh.yaml create Vexxhost 'vexxhost-*' nodepool-vexxhost.yaml create Airship-Citycloud 'airship-*' nodepool-airship-citycloud.yaml create OSUOSL 'osuosl-*' nodepool-osuosl.yaml +create InMotion 'inmotion-*' nodepool-inmotion.yaml diff --git a/grafana/nodepool-inmotion.yaml b/grafana/nodepool-inmotion.yaml new file mode 100644 index 0000000000..a4050e42f5 --- /dev/null +++ b/grafana/nodepool-inmotion.yaml @@ -0,0 +1,197 @@ +# +# NOTE: EDIT THE TEMPLATE FILE AND RUN create-nodepool.sh +# + +dashboard: + title: 'Nodepool: InMotion' + templating: + - name: region + includeAll: true + multi: true + query: stats.gauges.nodepool.provider.inmotion-* + refresh: 1 + type: query + rows: + - title: Description + height: 150px + panels: + - title: Description + content: | + InMotion Nodepool Status + ========================== + + This dashboard monitors the status of the nodepool environment for InMotion. + + **This dashboard is managed by [Grafyaml](https://docs.openstack.org/infra/system-config/grafyaml.html).** + If you would like to make changes to this dashboard, please see the template in the `grafana` directory in + [project-config](https://opendev.org/openstack/project-config/src/branch/master/grafana/nodepool.template). + + type: text + + - title: Nodes + showTitle: true + height: 150px + panels: + - title: Building + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.building) + type: singlestat + valueName: current + - title: Ready + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.ready) + type: singlestat + valueName: current + - title: In Use + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.in-use) + type: singlestat + valueName: current + - title: Deleting + span: 3 + sparkline: + full: true + show: true + targets: + - target: sumSeries(stats.gauges.nodepool.provider.$region.nodes.deleting) + type: singlestat + valueName: current + + - title: Test Nodes + height: 400px + panels: + - title: Test Node History - $region + type: graph + span: 12 + stack: true + repeat: region + minSpan: 4 + tooltip: + value_type: individual + yaxes: + - label: "nodes" + - show: false + targets: + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.building), 'Building') + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.ready), 'Available') + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.in-use), 'In Use') + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.used), 'Used') + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.nodes.deleting), 'Deleting') + - target: alias(sumSeries(stats.gauges.nodepool.provider.$region.max_servers), 'Max') + seriesOverrides: + - alias: Max + stack: False + + + - title: Node Launches + showTitle: true + height: 250px + panels: + - title: Ready Node Launch Attempts + type: graph + span: 4 + lines: false + bars: true + nullPointMode: null as zero + yaxes: + - label: "events / min" + - show: false + targets: + - target: aliasSub(summarize(stats_counts.nodepool.launch.provider.$region.ready, '1m'), '.*stats_counts.nodepool.launch.provider.(.*).ready.*', '\1') + - title: Time to Ready + type: graph + span: 4 + lines: false + bars: true + nullPointMode: null as zero + yaxes: + - label: "time" + format: ms + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.launch.provider.$region.ready.mean, 5) + - title: Error Node Launch Attempts + type: graph + span: 4 + lines: false + bars: true + nullPointMode: null as zero + yaxes: + - label: "events / min" + - show: false + targets: + - target: alias(smartSummarize(sumSeries(stats_counts.nodepool.launch.provider.$region.error.*), '1m'), "All Errors") + + - title: API Operations + showTitle: true + height: 250px + panels: + - title: Create Server + type: graph + lines: true + nullPointMode: connected + span: 4 + yaxes: + - format: ms + label: Time + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.task.$region.ComputePostServers.mean, 4) + - title: Get Server + type: graph + span: 4 + lines: true + nullPointMode: connected + span: 4 + yaxes: + - format: ms + label: Time + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.task.$region.ComputePostServers.mean, 4) + - title: Delete Server + type: graph + span: 4 + lines: true + nullPointMode: connected + span: 4 + yaxes: + - format: ms + label: Time + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.task.$region.ComputePostServers.mean, 4) + - title: List Servers + type: graph + lines: true + nullPointMode: connected + span: 4 + yaxes: + - format: ms + label: Time + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.task.$region.ComputePostServers.mean, 4) + - title: Get Limits + type: graph + lines: true + nullPointMode: connected + span: 4 + yaxes: + - format: ms + label: Time + - show: false + targets: + - target: aliasByNode(stats.timers.nodepool.task.$region.ComputePostServers.mean, 4) diff --git a/nodepool/nl02.opendev.org.yaml b/nodepool/nl02.opendev.org.yaml index adb0d3508f..280c54778f 100644 --- a/nodepool/nl02.opendev.org.yaml +++ b/nodepool/nl02.opendev.org.yaml @@ -284,6 +284,89 @@ providers: diskimage: ubuntu-bionic key-name: infra-root-keys-2020-05-13 +providers: + - name: inmotion-iad3 + region-name: 'iad3' + cloud: inmotion + boot-timeout: 120 + launch-timeout: 300 + rate: 0.01 + diskimages: *provider_diskimages + pools: + - name: main + max-servers: 8 + labels: + - name: centos-7 + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: centos-7 + key-name: infra-root-keys-2020-05-13 + - name: centos-8 + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: centos-8 + key-name: infra-root-keys-2020-05-13 + - name: centos-8-stream + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: centos-8-stream + key-name: infra-root-keys-2020-05-13 + - name: debian-bullseye + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: debian-bullseye + key-name: infra-root-keys-2020-05-13 + - name: debian-buster + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: debian-buster + key-name: infra-root-keys-2020-05-13 + - name: debian-stretch + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: debian-stretch + key-name: infra-root-keys-2020-05-13 + - name: fedora-32 + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: fedora-32 + key-name: infra-root-keys-2020-05-13 + - name: gentoo-17-0-systemd + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: gentoo-17-0-systemd + key-name: infra-root-keys-2020-05-13 + - name: opensuse-15 + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: opensuse-15 + key-name: infra-root-keys-2020-05-13 + - name: opensuse-tumbleweed + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: opensuse-tumbleweed + key-name: infra-root-keys-2020-05-13 + - name: ubuntu-bionic + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: ubuntu-bionic + key-name: infra-root-keys-2020-05-13 + - name: ubuntu-bionic-limestone-debug + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: ubuntu-bionic + key-name: infra-root-keys-2020-05-13 + - name: ubuntu-focal + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: ubuntu-focal + key-name: infra-root-keys-2020-05-13 + - name: ubuntu-xenial + min-ram: 8000 + flavor-name: 'opendev-zuul' + diskimage: ubuntu-xenial + key-name: infra-root-keys-2020-05-13 + diskimages: - name: centos-7 - name: centos-8 diff --git a/nodepool/nodepool.yaml b/nodepool/nodepool.yaml index 912375e49b..49d295c0ac 100644 --- a/nodepool/nodepool.yaml +++ b/nodepool/nodepool.yaml @@ -98,6 +98,12 @@ providers: rate: 0.25 diskimages: *provider_diskimages + - name: inmotion-iad3 + region-name: 'iad3' + cloud: inmotion + rate: 0.25 + diskimages: *provider_diskimages + diskimages: - name: base abstract: True