-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate M3 usages of etcd/v3/integration, etcd/v3/server/embed to docker #4144
Comments
cc @zmt I'm tracking the work overall here for public consumption. |
Thoughts on this @nbroyles ? cc'ing you since I know you did a lot of work on the Go based integration tests; lmk if there's anyone else relevant to loop in. |
cc also @justinjc @SokolAndrey |
andrewmains12
added a commit
that referenced
this issue
Aug 29, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
This was referenced Aug 29, 2022
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 30, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 31, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Aug 31, 2022
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
andrewmains12
added a commit
that referenced
this issue
Aug 31, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Sep 2, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Sep 2, 2022
PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Sep 2, 2022
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
andrewmains12
added a commit
that referenced
this issue
Sep 2, 2022
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
saad-zaman
pushed a commit
that referenced
this issue
Apr 4, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
saad-zaman
pushed a commit
that referenced
this issue
Apr 4, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
saad-zaman
pushed a commit
that referenced
this issue
Apr 4, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
justinjc
pushed a commit
that referenced
this issue
Apr 10, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
justinjc
pushed a commit
that referenced
this issue
Apr 10, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
saad-zaman
pushed a commit
that referenced
this issue
Apr 19, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
saad-zaman
pushed a commit
that referenced
this issue
Apr 19, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
saad-zaman
pushed a commit
that referenced
this issue
Apr 19, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
shivam-kumar-uber
pushed a commit
that referenced
this issue
Apr 26, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
shivam-kumar-uber
pushed a commit
that referenced
this issue
Apr 26, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
shivam-kumar-uber
pushed a commit
that referenced
this issue
Apr 26, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
fengcheng1518
pushed a commit
that referenced
this issue
Oct 9, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
fengcheng1518
pushed a commit
that referenced
this issue
Oct 9, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
fengcheng1518
pushed a commit
that referenced
this issue
Oct 9, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
fengcheng1518
pushed a commit
that referenced
this issue
Oct 10, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
fengcheng1518
pushed a commit
that referenced
this issue
Oct 10, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
fengcheng1518
pushed a commit
that referenced
this issue
Oct 10, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
fengcheng1518
pushed a commit
that referenced
this issue
Oct 11, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
fengcheng1518
pushed a commit
that referenced
this issue
Oct 11, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
fengcheng1518
pushed a commit
that referenced
this issue
Oct 11, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
shaan420
pushed a commit
that referenced
this issue
Nov 13, 2023
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
shaan420
pushed a commit
that referenced
this issue
Nov 13, 2023
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
shaan420
pushed a commit
that referenced
this issue
Nov 13, 2023
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
tarunisrani
pushed a commit
that referenced
this issue
Jul 12, 2024
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
tarunisrani
pushed a commit
that referenced
this issue
Jul 12, 2024
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
tarunisrani
pushed a commit
that referenced
this issue
Jul 12, 2024
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
tarunisrani
pushed a commit
that referenced
this issue
Jul 12, 2024
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
shaan420
pushed a commit
that referenced
this issue
Aug 5, 2024
#4147) * etcd_docker 2: Add a docker based etcdintegration package PR 2 for #4144 High level approach is as described in #4144 . This PR adds: - Functions to spin up a 1 node etcd cluster using docker (in `dockerexternal`) - A drop in replacement for the etcd/integration package using `dockerexternal` commit-id:e4e80f1d * etcd_docker 3: Incorporate docker based etcd integration package into unittests. PR 3 for #4144 High level approach is as described in #4144 . This PR incorporates the new test package into our unittests. Usage is via the `etcdintegration` package, which makes it transparent to the test code; it simply gets an etcd server started via different means. One piece of weirdness to call out here: the package currently relies on autosync being *disabled* on the client side. This is because the advertise client URL (aka what etcd tells clients to connect to) isn't correct for the open port on the host. That is we have: - etcd: listen on container port 0.0.0.0:2379, advertise 0.0.0.0:2379 - docker: expose etcd port 2379 to 0.0.0.0:0 on host machine (random free port) - client: connect to etcd via host machine. We could probably make this better. commit-id:263fed13
shaan420
pushed a commit
that referenced
this issue
Aug 5, 2024
* etcd_docker 5: Incorporate docker based etcd approach into docker integration tests. PR 5 for #4144 This PR makes the docker integration tests use containerized etcd. Previously, these relied on M3DB running an embbeded etcd server. There's no inherent need for this, and it opens us up to dependency issues as described in the linked github issue. Note: there are a handful that require multiple servers; these are currently "skipped" (commented). I intend to bring those back at a later date.. commit-id:e67a5172 * etcd_docker 6: Remove etcd embed from M3DB node PR 6 for #4144 Now that all test usages of the embed package had been removed, this PR removes the usage of the embed package from the m3db server itself. N.B.: this PR currently makes no attempt to fix up any "quick start" flows relying on embedded etcd; that will come later. commit-id:2870a75c
shaan420
pushed a commit
that referenced
this issue
Aug 5, 2024
This changes our etcd version *down* to 3.5.4 from 3.6.0-alpha.0. In #4087, we made the choice to go to an alpha version of etcd in order to get around the thorny dependency issues described in that ticket. This was partially on the assumption that etcd would release a full 3.6.0 version in the months following. As of 9/2/2022, that hasn't happened--no progress seems to have been made on etcd 3.6.0. As described in #4144, we've since addressed the dependency issues via other means, removing our dependency on the `embed` and `integration` packages. This allows us to move back to an etcd stable version, 3.5.4. Since stable versions are generally preferable, I'm taking the opportunity to do so. commit-id:720abd40
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
tl;dr:
etcd/v3/integration
,etcd/v3/server/embed
)Problem
M3 currently uses the etcd/v3/integration and etcd/v3/server/embed packages heavily in tests.
This poses problems for M3's use as a library; it introduces dependencies on etcd server side packages, which can conflict with M3 versions of those same packages. Most recently, we hit this particular issue with grpc-go and otel (see #3725):
Furthermore,
etcd's documentation suggests that the integration package is somewhat misused in tests today, and may eventually go away (or be replaced)
Proposal
We can avoid these dependency problems entirely by limiting our usage of etcd to its client dependencies.
This means:
etcd/v3/integration
package (e.g.m3/docker/etcdintegration
)m3/docker/etcdintegration
m3/docker/etcdintegration
)The text was updated successfully, but these errors were encountered: