-
Notifications
You must be signed in to change notification settings - Fork 509
Closed
Labels
Description
What happened?
Trying to use as dbName
in the DSN:
vcluster/dev
# ...
syncer 2024-09-17 22:51:36 INFO commandwriter/commandwriter.go:126 Starting k3s v1.30.2+k3s1 (aa4794b3) {"component": "vcluster", "component": "k3s", "time": "2024-09-17T22:51:36Z", "level": "info"}
syncer 2024-09-17 22:51:36 INFO commandwriter/commandwriter.go:126 starting kubernetes: preparing server: creating storage endpoint: building kine: invalid DSN: did you forget to escape a param value? {"component": "vcluster", "component": "k3s", "time": "2024-09-17T22:51:36Z", "level": "fatal"}
syncer 2024-09-17 22:51:36 INFO setup/initialize.go:165 Error running k3s: exit status 1 {"component": "vcluster"}
vcluster%2Fdev
# ...
syncer 2024-09-17 23:25:13 INFO commandwriter/commandwriter.go:126 Starting k3s v1.30.2+k3s1 (aa4794b3) {"component": "vcluster", "component": "k3s", "time": "2024-09-17T23:25:13Z", "level": "info"}
syncer 2024-09-17 23:25:13 INFO commandwriter/commandwriter.go:126 failed to check existence of database vcluster%2Fdev, going to attempt create: Error 1049 (HY000): database not found: vcluster%2Fdev {"component": "vcluster", "component": "k3s", "time": "2024-09-17T23:25:13Z", "level": "warning"}
syncer 2024-09-17 23:25:13 INFO commandwriter/commandwriter.go:126 starting kubernetes: preparing server: creating storage endpoint: building kine: Error 1105 (HY000): syntax error at position 40 near 'vcluster' {"component": "vcluster", "component": "k3s", "time": "2024-09-17T23:25:13Z", "level": "fatal"}
syncer 2024-09-17 23:25:13 INFO setup/initialize.go:165 Error running k3s: exit status 1 {"component": "vcluster"}
What did you expect to happen?
I expected to see Vcluster creating and using the database/schema with a slash in its name.
How can we reproduce it (as minimally and precisely as possible)?
docker run --rm -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:8.0.33
controlPlane:
distro:
k3s:
enabled: true
backingStore:
database:
external:
enabled: true
dataSource: mysql://root:root@tcp(localhost:3306)/vcluster/dev
# OR
# dataSource: mysql://root:root@tcp(localhost:3306)/vcluster%2Fdev
- Get the error
--
PS: MySQL does support the following DDL:
create database `vcluster/dev`;
Anything else we need to know?
- https://go.dev/play/p/MMUX9CWWtyW
- PathEscape dbname in DSN. go-sql-driver/mysql#1432 https://github.com/go-sql-driver/mysql/blob/00dc21a6243c02c1a84fc82d08a821c08fde4053/README.md?plain=1#L125-L129
- I'm trying to use Kine + Dolt. In Dolt a schema can have branches with the following pattern:
schema/branch
.
Host cluster Kubernetes version
$ kubectl version
Client Version: v1.31.0
Kustomize Version: v5.4.2
Server Version: v1.30.3-gke.1639000
vcluster version
$ vcluster --version
vcluster version 0.20.0
VCluster Config
controlPlane:
distro:
k3s:
enabled: true
backingStore:
database:
external:
enabled: true
dataSource: mysql://root:root@tcp(localhost:3306)/vcluster/dev
# OR
# dataSource: mysql://root:root@tcp(localhost:3306)/vcluster%2Fdev
gabriel-suela