Skip to content

Commit

Permalink
Move to MySQL 8.0 as the default template generation (vitessio#11153) (
Browse files Browse the repository at this point in the history
…vitessio#11769)

* Move towards MySQL 8.0 as the default template generation (vitessio#11153)

* Move towards MySQL 8.0 as the default template generation

This upgrades the remaining things to Ubuntu 20.04 and makes MySQL 8.0
the default we run tests against. We still have tests for MySQL 5.7 but
those are now explicitly opted into.

This should finish up the Ubuntu 20.04 upgrade and also makes things
easier for the future when we need to upgrade again.

Signed-off-by: Dirkjan Bussink <[email protected]>

* CI: rename shard vtorc_8.0 to vtorc_5.7, change expected test output for 8.0

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout for 8.0 tests on the actual test step from 30 to 45 mins

Signed-off-by: deepthi <[email protected]>

* CI: increase timeout to 45 minutes for mysql57 tests too. We really only need this for vtorc, but I've made the change to the template so all tests get it.

Signed-off-by: deepthi <[email protected]>

* CI: fix vtorc test to work with both 5.7 and 8.0

Signed-off-by: deepthi <[email protected]>

* CI: missed docker flag in mysql57 template, one more fix to vtorc test

Signed-off-by: deepthi <[email protected]>

* removing spaces from pb file

Signed-off-by: Rameez Sajwani <[email protected]>

* removing spaces in pb file part 2

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Rameez Sajwani <[email protected]>

* changing update statement to alter

Signed-off-by: Rameez Sajwani <[email protected]>

* Adding mysql 8.0.25

Signed-off-by: Rameez Sajwani <[email protected]>

* fix junit
Signed-off-by: Rameez Sajwani <[email protected]>

* fixing failures

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing more unit tests

Signed-off-by: Rameez Sajwani <[email protected]>

* fix selfhost test

Signed-off-by: Rameez Sajwani <[email protected]>

* Fixing selfhosted workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* fixing vreplication_v2

Signed-off-by: Rameez Sajwani <[email protected]>

* removing cluster 12 and 18 from selfhosted

Signed-off-by: Rameez Sajwani <[email protected]>

* manual fixing some workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* making vreplication_v2 exactly like upstream

Signed-off-by: Rameez Sajwani <[email protected]>

* Moving all the workflow to latest mysql version (vanilla)

Signed-off-by: Rameez Sajwani <[email protected]>

* remove port restrictions

Signed-off-by: Rameez Sajwani <[email protected]>

* tmp fix for vreplication_v2

Signed-off-by: Rameez Sajwani <[email protected]>

* making vreplication_v2 to previous version

Signed-off-by: Rameez Sajwani <[email protected]>

* correcting typo

Signed-off-by: Rameez Sajwani <[email protected]>

* mvoing vreplication_v2 to selfhost

Signed-off-by: Rameez Sajwani <[email protected]>

* change docker image to mysql80

Signed-off-by: Rameez Sajwani <[email protected]>

* removing limited source from vrepl

Signed-off-by: Rameez Sajwani <[email protected]>

* revert back last commit changes

Signed-off-by: Rameez Sajwani <[email protected]>

* test: fix aggregation test

Signed-off-by: Harshit Gangal <[email protected]>

* removing ptrtls

Signed-off-by: Rameez Sajwani <[email protected]>

* remove pitrTls tests

Signed-off-by: Rameez Sajwani <[email protected]>

* changing source/destination to mysql8.0 for vreplication

Signed-off-by: Rameez Sajwani <[email protected]>

* remove unwanted workflows

Signed-off-by: Rameez Sajwani <[email protected]>

* adding timeout to stress test

Signed-off-by: Rameez Sajwani <[email protected]>

* feeback through code review

Signed-off-by: Rameez Sajwani <[email protected]>

Signed-off-by: Dirkjan Bussink <[email protected]>
Signed-off-by: deepthi <[email protected]>
Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Harshit Gangal <[email protected]>
Co-authored-by: Dirkjan Bussink <[email protected]>
Co-authored-by: deepthi <[email protected]>
Co-authored-by: Harshit Gangal <[email protected]>
  • Loading branch information
4 people authored Nov 30, 2022
1 parent 2cb7903 commit d3a8b39
Show file tree
Hide file tree
Showing 129 changed files with 2,603 additions and 750 deletions.
34 changes: 0 additions & 34 deletions .github/docker/cluster_test_12/Dockerfile

This file was deleted.

37 changes: 0 additions & 37 deletions .github/docker/cluster_test_18/Dockerfile

This file was deleted.

22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_12.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (12)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -80,7 +94,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_13.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (13)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -80,7 +94,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_15.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (15)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -80,7 +94,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_18.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (18)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -85,7 +99,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_19.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (19)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -80,7 +94,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
22 changes: 18 additions & 4 deletions .github/workflows/cluster_endtoend_21.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency:
jobs:
build:
name: Run endtoend tests on Cluster (21)
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04

steps:
- name: Check if workflow needs to be skipped
Expand Down Expand Up @@ -59,6 +59,8 @@ jobs:
- name: Tune the OS
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Limit local port range to not use ports that overlap with server side
# ports that we listen on.
echo '1024 65535' | sudo tee -a /proc/sys/net/ipv4/ip_local_port_range
# Increase the asynchronous non-blocking I/O. More information at https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_use_native_aio
echo "fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
Expand All @@ -67,10 +69,22 @@ jobs:
- name: Get dependencies
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
run: |
# Get key to latest MySQL repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# Setup MySQL 8.0
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config*
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata
sudo service mysql stop
# Install everything else we need, and configure
sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils
sudo apt-get update
sudo service etcd stop
echo 'mysql version: '
sudo mysql --version
sudo service mysql stop
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
go mod download
Expand All @@ -80,7 +94,7 @@ jobs:
- name: Run cluster endtoend test
if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true'
timeout-minutes: 30
timeout-minutes: 45
run: |
# We set the VTDATAROOT to the /tmp folder to reduce the file path of mysql.sock file
# which musn't be more than 107 characters long.
Expand Down
Loading

0 comments on commit d3a8b39

Please sign in to comment.