Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
af6a66a
new clean branch
ndukatz Dec 8, 2020
c8425a7
Merge branch 'develop' into M3-4577-initial-e2e-actions-workflow
ndukatz Dec 9, 2020
342fade
trying Jared's suggestion
ndukatz Dec 9, 2020
466798f
trying Jared's suggestion
ndukatz Dec 9, 2020
03e6c7e
back to if statements and using default env variables
ndukatz Dec 9, 2020
534236f
fixing typo
ndukatz Dec 9, 2020
d617348
forgot to undo from before
ndukatz Dec 10, 2020
f47e78a
Merge branch 'develop' into M3-4577-initial-e2e-actions-workflow
ndukatz Dec 10, 2020
73a1a44
labeling users for each oauth secret
ndukatz Dec 10, 2020
06fb0bc
adding back the default values just to make sure that's not the issue
ndukatz Dec 10, 2020
9498e2d
fixing syntax error
ndukatz Dec 10, 2020
a6eab64
that wasn't the issue. looks like the record limit problem
ndukatz Dec 10, 2020
4d2f48f
Revert "Upgrade: Chart.js 3.0 (beta)" (#7248)
johnwcallahan Dec 17, 2020
1fddc01
Changelog for Cloud Manager v1.27.1
Jskobos Dec 18, 2020
47efc81
Add highlight.js changes to yarn.lock
Jskobos Dec 18, 2020
07593bb
Merge remote-tracking branch 'upstream/develop' into M3-4577-initial-…
ndukatz Dec 18, 2020
73aae9a
running against update branch
ndukatz Dec 18, 2020
03f3998
Merge remote-tracking branch 'upstream/develop' into M3-4577-initial-…
ndukatz Dec 22, 2020
825079e
Merge remote-tracking branch 'upstream/develop' into M3-4577-initial-…
ndukatz Jan 12, 2021
bd32f1f
testing against cypress update branch
ndukatz Jan 12, 2021
532864e
Changelog for v1.28.0 and SDK v0.40.0
tiffwong Jan 13, 2021
12e6ac6
Cloud version 1.28.0 and API v4 version 0.40.0
tiffwong Jan 13, 2021
f4153b6
Cloud version 1.28.0 and API v4 version 0.40.0
tiffwong Jan 13, 2021
d8dcb77
Run yarn build and bump bundle size restrictions (#7303)
Jskobos Jan 14, 2021
32c7509
Merge branch 'release-1.28.0' into staging
tiffwong Jan 14, 2021
f109cc3
Fix conflicts
tiffwong Jan 14, 2021
d8f5cea
Merge branch 'staging'
tiffwong Jan 14, 2021
5d97e24
Make sure inline action isn't disabled (#7309)
Jskobos Jan 14, 2021
f9dfab9
Merge branch 'release-1.28.0' of github.com:linode/manager into staging
tiffwong Jan 14, 2021
9580827
Update changelog and version
tiffwong Jan 14, 2021
99e4818
Merge branch 'staging'
tiffwong Jan 14, 2021
9e6831c
Re-add Linode resize to detail view
Jskobos Jan 15, 2021
caaedbc
Version bump and changelog
Jskobos Jan 15, 2021
e3c307e
Merge pull request #7310 from Jskobos/hotfix/resize
Jskobos Jan 15, 2021
57806df
Merge branch 'staging'
Jskobos Jan 15, 2021
19770a1
Merge remote-tracking branch 'upstream/master' into M3-4577-initial-e…
ndukatz Jan 20, 2021
bc72cbe
running tests on develop every night at 9 pm
ndukatz Jan 20, 2021
49c0f9f
fixing syntax error, changing to 10 pm
ndukatz Jan 20, 2021
1ccd152
testing
ndukatz Jan 20, 2021
9b1c627
testing
ndukatz Jan 20, 2021
2eb6f7e
testing
ndukatz Jan 20, 2021
983aa74
testing
ndukatz Jan 20, 2021
4a15af9
testing
ndukatz Jan 20, 2021
6472435
testing
ndukatz Jan 20, 2021
f084011
testing
ndukatz Jan 20, 2021
d1cb4db
testing against a different branch
ndukatz Jan 20, 2021
3eade08
testing workflow
ndukatz Jan 20, 2021
4964b66
setting for noon so we can test today
ndukatz Jan 20, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Run Cypress E2E Tests
env:
USER_1: ${{ secrets.MANAGER_OAUTH_1 }}
USER_2: ${{ secrets.MANAGER_OAUTH_2 }}
USER_3: ${{ secrets.MANAGER_OAUTH_3 }}
USER_4: ${{ secrets.MANAGER_OAUTH_4 }}
CLIENT_ID: ${{ secrets.CLIENT_ID }}
on:
schedule:
- cron: '0 12 * * 1-5'
jobs:
run-cypress-e2e:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
container: ['USER_1', 'USER_2', 'USER_3', 'USER_4']
steps:
- uses: actions/checkout@v2
with:
node-version: '10.x'
- uses: actions/cache@v2
with:
path: |
node_modules
*/*/node_modules
~/.cache/Cypress
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- run: |
echo "CYPRESS_RECORD_KEY=${{ secrets.CYPRESS_RECORD_KEY }}" >> $GITHUB_ENV
echo "GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
# personal account
- run: echo "MANAGER_OAUTH=$USER_1" >> ./packages/manager/.env
if: matrix['container'] == 'USER_1'
# prod-test-001
- run: echo "MANAGER_OAUTH=$USER_2" >> ./packages/manager/.env
if: matrix['container'] == 'USER_2'
# prod-test-002
- run: echo "MANAGER_OAUTH=$USER_3" >> ./packages/manager/.env
if: matrix['container'] == 'USER_3'
# prod-test-008
- run: echo "MANAGER_OAUTH=$USER_4" >> ./packages/manager/.env
if: matrix['container'] == 'USER_4'
- run: |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it might work here if you used the oauth variable names from above, something like container: ['OAUTH_1'...]; echo MANAGER_OAUTH=$matrix['container'] to get around the if's

Copy link
Contributor Author

@ndukatz ndukatz Dec 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did try that previously. I actually spent quite a while on this trying different variations. It doesn't seem to handle nested variables. I tried again just in case:
https://github.com/ndukatz/manager/actions/runs/411608785
https://github.com/ndukatz/manager/actions/runs/411620499

echo "REACT_APP_LAUNCH_DARKLY_ID=${{ secrets.REACT_APP_LAUNCH_DARKLY_ID }}" >> ./packages/manager/.env
echo "REACT_APP_CLIENT_ID=$CLIENT_ID" >> ./packages/manager/.env
yarn up &
- name: Run tests
uses: cypress-io/github-action@v2
with:
working-directory: packages/manager
wait-on: 'http://localhost:3000'
wait-on-timeout: 1000
install: false
browser: chrome
headless: true
record: true
parallel: true
52 changes: 50 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,62 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).

## [2021-02-15] - v1.28.2

### Fixed:

- Resize action not appearing in Linode detail entity header

## [2021-01-14] - v1.28.1

### Fixed:

- Make sure inline reboot action isn't disabled for Linodes

## [2021-01-13] - v1.28.0

### Added:

- Add Network Transfer Graph to Linodes Landing
- Add Marketplace Q4 apps
- Sort Linode Details > Storage > Disks table by created (ascending) on default

### Changed:

- Remove rounded corners for buttons
- Disable submission until required fields are present and remove tags field from the Domain create flow
- Disable Firewall and Image create flows for restricted users
- Increase timeout for Longview on accounts with more Longviews
- Convert Support Ticket drawer to a dialog and make inputs bigger
- Update text to accurately reflect what read_only account access lets you do

### Fixed:

- Set highlight.js theme on app load
- Color scheme for Dark Mode toggle button's enabled state
- Disable create flow fields for restricted users
- Remove duplicate restricted banner for Marketplace
- Tooltip and disabled action functionality in action menus
- Update timezone logic to account for time zones that use a quarter hour
- Object Storage list not showing more than 100 objects

## [2020-12-18] - 1.27.1

### Fixed:

- Revert upgrade to Chart.js that was causing Sentry errors and graph display errors

## [2020-12-16] - 1.27.0

This release includes sweeping changes to the Cloud Manager UI. For more details, please visit https://www.linode.com/blog/linode/cloud-manager-enhancements-dec2020/

### Added:
- Deep link to the Payment drawer

- Deep link to the Payment drawer
- Add missing link to invoice details in invoice rows

### Changed:

- Replace all user-facing Domains master/slave terminology with primary/secondary
- Sortable tables now update the URL on sort change to make sort preferences bookmarkable
- Upgrade: Chart.js 3.0 (beta)
Expand All @@ -28,8 +75,9 @@ This release includes sweeping changes to the Cloud Manager UI. For more details
- Hide Longview pagination footer if there's only one page
- Use Region Select styles in Object Storage Cluster selection
- Improve Backups column in Linode .csv file

### Fixed:

- Low reputation error when resizing a Linode intercepted by disk size error logic
- Prevent multiple imagize submissions in succession

Expand Down
15 changes: 14 additions & 1 deletion packages/api-v4/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
## [2021-01-13] - v0.40.0

### Added:

- Make CVV required

### Changed:

- Update CreateDomainPayload
- Update UpdateDomainPayload

## [2020-12-16] - v0.39.0

### Changed:

“updated” field added to Image interface

## [2020-11-17] - v0.38.0

### Added:

- Methods, types, and schemas for Object Storage Bucket-level ACL

### Changed:

- Better schema for validating Firewall rules
- Add APIWarning type and include it in the payload for /payment endpoints


## [2020-11-02] - v0.37.0

### Added:
Expand Down
2 changes: 1 addition & 1 deletion packages/api-v4/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@linode/api-v4",
"version": "0.39.0",
"version": "0.40.0",
"homepage": "https://github.com/linode/manager/tree/develop/packages/api-v4",
"bugs": {
"url": "https://github.com/linode/manager/issues",
Expand Down
36 changes: 27 additions & 9 deletions packages/manager/config/testSetup.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Configure Enzyme Adapter
const Enzyme = require('enzyme');
const Adapter = require('enzyme-adapter-react-16');
const React = require('react');

require('@testing-library/jest-dom/extend-expect');

Expand Down Expand Up @@ -32,15 +33,32 @@ HTMLCanvasElement.prototype.getContext = () => {
return 0;
};

// mocks the constructor returned by chart.js
jest.mock('chart.js');
// this ignored injecting the adapter
// eslint-disable-next-line @typescript-eslint/no-empty-function
jest.mock('chartjs-adapter-luxon', () => {});
// mock chart.ts to not edit Chart.defaults which is not imported well with jest runtime
jest.mock('src/utilities/charts.ts', () => {
return { setUpCharts: jest.fn() };
});
/**
* When we mock chartjs below, we need
* to use a class component for Line,
* bc our abstraction passes a ref to it.
*
* The tests will pass without this hack,
* but there will be a console warning
* reminding us that function components can't
* have Refs.
*/

jest.mock('chart.js', () => ({
Chart: jest.fn(),
_adapters: {
_date: {
override: jest.fn()
}
},
defaults: {
global: {
defaultFontFamily: '',
defaultFontSize: '',
defaultFontStyle: ''
}
}
}));

jest.mock('highlight.js/lib/highlight', () => ({
default: {
Expand Down
4 changes: 2 additions & 2 deletions packages/manager/config/webpack.config.prod.js
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,8 @@ module.exports = {
// See https://webpack.js.org/configuration/performance/
performance: {
hints: 'error',
maxEntrypointSize: 1180000, // ~1.12 MiB maxEntrypointSize: 2000000, // ~1.9 MiB
maxAssetSize: 1180000, // ~1.12 MiB
maxEntrypointSize: 1250000, // ~1.2 MiB
maxAssetSize: 1250000, // ~1.2 MiB
assetFilter(assetFilename) {
return !(
assetFilename.endsWith('.chunk.js') || assetFilename.endsWith('.map')
Expand Down
10 changes: 7 additions & 3 deletions packages/manager/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "linode-manager",
"author": "Linode",
"description": "The Linode Manager website",
"version": "1.27.0",
"version": "1.28.2",
"private": true,
"engines": {
"node": ">= 10.16.0"
Expand All @@ -16,7 +16,7 @@
"url": "https://github.com/Linode/manager.git"
},
"dependencies": {
"@linode/api-v4": "^0.39.0",
"@linode/api-v4": "^0.40.0",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.56",
Expand All @@ -34,7 +34,7 @@
"axios-mock-adapter": "^1.15.0",
"bluebird": "^3.5.1",
"browser-detect": "^0.2.28",
"chart.js": "3.0.0-beta.6",
"chart.js": "~2.9.4",
"chartjs-adapter-luxon": "^0.2.1",
"classnames": "^2.2.5",
"copy-to-clipboard": "^3.0.8",
Expand Down Expand Up @@ -146,6 +146,7 @@
"@testing-library/user-event": "^12.1.1",
"@types/algoliasearch": "^3.27.5",
"@types/bluebird": "^3.5.20",
"@types/chart.js": "^2.9.21",
"@types/classnames": "^2.2.3",
"@types/enzyme": "^3.9.3",
"@types/he": "^1.1.0",
Expand Down Expand Up @@ -271,6 +272,9 @@
"collectCoverageFrom": [
"src/**/*.{js,jsx,ts,tsx}"
],
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"setupFilesAfterEnv": [
"<rootDir>/config/testSetup.js",
"<rootDir>/src/testSetup.ts"
Expand Down
2 changes: 1 addition & 1 deletion packages/manager/src/cachedData/kernels.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion packages/manager/src/cachedData/regions.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"data":[{"id":"ap-west","country":"in","capabilities":["Linodes","NodeBalancers","Block Storage","GPU Linodes","Kubernetes","Cloud Firewall"],"status":"ok","resolvers":{"ipv4":"172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5","ipv6":"2400:8904::f03c:91ff:fea5:659,2400:8904::f03c:91ff:fea5:9282,2400:8904::f03c:91ff:fea5:b9b3,2400:8904::f03c:91ff:fea5:925a,2400:8904::f03c:91ff:fea5:22cb,2400:8904::f03c:91ff:fea5:227a,2400:8904::f03c:91ff:fea5:924c,2400:8904::f03c:91ff:fea5:f7e2,2400:8904::f03c:91ff:fea5:2205,2400:8904::f03c:91ff:fea5:9207"}},{"id":"ca-central","country":"ca","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5","ipv6":"2600:3c04::f03c:91ff:fea9:f63,2600:3c04::f03c:91ff:fea9:f6d,2600:3c04::f03c:91ff:fea9:f80,2600:3c04::f03c:91ff:fea9:f0f,2600:3c04::f03c:91ff:fea9:f99,2600:3c04::f03c:91ff:fea9:fbd,2600:3c04::f03c:91ff:fea9:fdd,2600:3c04::f03c:91ff:fea9:fe2,2600:3c04::f03c:91ff:fea9:f68,2600:3c04::f03c:91ff:fea9:f4a"}},{"id":"ap-southeast","country":"au","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes","Cloud Firewall"],"status":"ok","resolvers":{"ipv4":"172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5","ipv6":"2400:8907::f03c:92ff:fe6e:ec8,2400:8907::f03c:92ff:fe6e:98e4,2400:8907::f03c:92ff:fe6e:1c58,2400:8907::f03c:92ff:fe6e:c299,2400:8907::f03c:92ff:fe6e:c210,2400:8907::f03c:92ff:fe6e:c219,2400:8907::f03c:92ff:fe6e:1c5c,2400:8907::f03c:92ff:fe6e:c24e,2400:8907::f03c:92ff:fe6e:e6b,2400:8907::f03c:92ff:fe6e:e3d"}},{"id":"us-central","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5","ipv6":"2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}},{"id":"us-west","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"173.230.145.5,173.230.147.5,173.230.155.5,173.255.212.5,173.255.219.5,173.255.241.5,173.255.243.5,173.255.244.5,74.207.241.5,74.207.242.5","ipv6":"2600:3c01::2,2600:3c01::9,2600:3c01::5,2600:3c01::7,2600:3c01::3,2600:3c01::8,2600:3c01::4,2600:3c01::b,2600:3c01::c,2600:3c01::6"}},{"id":"us-east","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","GPU Linodes","Kubernetes"],"status":"ok","resolvers":{"ipv4":"66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,207.192.69.4,207.192.69.5","ipv6":"2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}},{"id":"eu-west","country":"uk","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"178.79.182.5,176.58.107.5,176.58.116.5,176.58.121.5,151.236.220.5,212.71.252.5,212.71.253.5,109.74.192.20,109.74.193.20,109.74.194.20","ipv6":"2a01:7e00::9,2a01:7e00::3,2a01:7e00::c,2a01:7e00::5,2a01:7e00::6,2a01:7e00::8,2a01:7e00::b,2a01:7e00::4,2a01:7e00::7,2a01:7e00::2"}},{"id":"ap-south","country":"sg","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20","ipv6":"2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}},{"id":"eu-central","country":"de","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5","ipv6":"2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}},{"id":"ap-northeast","country":"jp","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5","ipv6":"2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}}],"page":1,"pages":1,"results":10}
{"data":[{"id":"ap-west","country":"in","capabilities":["Linodes","NodeBalancers","Block Storage","GPU Linodes","Kubernetes","Cloud Firewall"],"status":"ok","resolvers":{"ipv4":"172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5","ipv6":"2400:8904::f03c:91ff:fea5:659,2400:8904::f03c:91ff:fea5:9282,2400:8904::f03c:91ff:fea5:b9b3,2400:8904::f03c:91ff:fea5:925a,2400:8904::f03c:91ff:fea5:22cb,2400:8904::f03c:91ff:fea5:227a,2400:8904::f03c:91ff:fea5:924c,2400:8904::f03c:91ff:fea5:f7e2,2400:8904::f03c:91ff:fea5:2205,2400:8904::f03c:91ff:fea5:9207"}},{"id":"ca-central","country":"ca","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes","Cloud Firewall"],"status":"ok","resolvers":{"ipv4":"172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5","ipv6":"2600:3c04::f03c:91ff:fea9:f63,2600:3c04::f03c:91ff:fea9:f6d,2600:3c04::f03c:91ff:fea9:f80,2600:3c04::f03c:91ff:fea9:f0f,2600:3c04::f03c:91ff:fea9:f99,2600:3c04::f03c:91ff:fea9:fbd,2600:3c04::f03c:91ff:fea9:fdd,2600:3c04::f03c:91ff:fea9:fe2,2600:3c04::f03c:91ff:fea9:f68,2600:3c04::f03c:91ff:fea9:f4a"}},{"id":"ap-southeast","country":"au","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes","Cloud Firewall"],"status":"ok","resolvers":{"ipv4":"172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5","ipv6":"2400:8907::f03c:92ff:fe6e:ec8,2400:8907::f03c:92ff:fe6e:98e4,2400:8907::f03c:92ff:fe6e:1c58,2400:8907::f03c:92ff:fe6e:c299,2400:8907::f03c:92ff:fe6e:c210,2400:8907::f03c:92ff:fe6e:c219,2400:8907::f03c:92ff:fe6e:1c5c,2400:8907::f03c:92ff:fe6e:c24e,2400:8907::f03c:92ff:fe6e:e6b,2400:8907::f03c:92ff:fe6e:e3d"}},{"id":"us-central","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5","ipv6":"2600:3c00::2,2600:3c00::9,2600:3c00::7,2600:3c00::5,2600:3c00::3,2600:3c00::8,2600:3c00::6,2600:3c00::4,2600:3c00::c,2600:3c00::b"}},{"id":"us-west","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"173.230.145.5,173.230.147.5,173.230.155.5,173.255.212.5,173.255.219.5,173.255.241.5,173.255.243.5,173.255.244.5,74.207.241.5,74.207.242.5","ipv6":"2600:3c01::2,2600:3c01::9,2600:3c01::5,2600:3c01::7,2600:3c01::3,2600:3c01::8,2600:3c01::4,2600:3c01::b,2600:3c01::c,2600:3c01::6"}},{"id":"us-east","country":"us","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","GPU Linodes","Kubernetes"],"status":"ok","resolvers":{"ipv4":"66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,207.192.69.4,207.192.69.5","ipv6":"2600:3c03::7,2600:3c03::4,2600:3c03::9,2600:3c03::6,2600:3c03::3,2600:3c03::c,2600:3c03::5,2600:3c03::b,2600:3c03::2,2600:3c03::8"}},{"id":"eu-west","country":"uk","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"178.79.182.5,176.58.107.5,176.58.116.5,176.58.121.5,151.236.220.5,212.71.252.5,212.71.253.5,109.74.192.20,109.74.193.20,109.74.194.20","ipv6":"2a01:7e00::9,2a01:7e00::3,2a01:7e00::c,2a01:7e00::5,2a01:7e00::6,2a01:7e00::8,2a01:7e00::b,2a01:7e00::4,2a01:7e00::7,2a01:7e00::2"}},{"id":"ap-south","country":"sg","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20","ipv6":"2400:8901::5,2400:8901::4,2400:8901::b,2400:8901::3,2400:8901::9,2400:8901::2,2400:8901::8,2400:8901::7,2400:8901::c,2400:8901::6"}},{"id":"eu-central","country":"de","capabilities":["Linodes","NodeBalancers","Block Storage","Object Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5","ipv6":"2a01:7e01::5,2a01:7e01::9,2a01:7e01::7,2a01:7e01::c,2a01:7e01::2,2a01:7e01::4,2a01:7e01::3,2a01:7e01::6,2a01:7e01::b,2a01:7e01::8"}},{"id":"ap-northeast","country":"jp","capabilities":["Linodes","NodeBalancers","Block Storage","Kubernetes"],"status":"ok","resolvers":{"ipv4":"139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5","ipv6":"2400:8902::3,2400:8902::6,2400:8902::c,2400:8902::4,2400:8902::2,2400:8902::8,2400:8902::7,2400:8902::5,2400:8902::b,2400:8902::9"}}],"page":1,"pages":1,"results":10}
Loading