Uploaded image for project: 'Bigtop'
  1. Bigtop
  2. BIGTOP-2253

Rewrite Bigtop Docker Provisioner to use native solutions and support multi-host cluster deployment

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: backlog
    • Fix Version/s: 1.2.1
    • Component/s: docker, provisioner
    • Labels:
      None

      Description

      The background

      By the time we developed the Provisioner, there's no Docker compose, machine, swarm out there. But now, the feature set that Docker official provided is rich enough and surpass any other alternatives. OTOH, Vagrant introduced Docker integration very early, but seems no significant improvement in the past year. Not to mention that a critical issue that disable the ssh provisioning is still not fixed yet and not likely to be fixed. Vagrant is great for VM, but not so good at Docker, hence we're going for a major rewrite and start to embrace Docker native solutions in Bigtop Docker Provisioner.

        Activity

        Hide
        evans_ye Evans Ye added a comment -

        Thanks for merging this olaf!

        Show
        evans_ye Evans Ye added a comment - Thanks for merging this olaf!
        Hide
        oflebbe Olaf Flebbe added a comment -

        Sorry reopening since a few tasks are still open

        Show
        oflebbe Olaf Flebbe added a comment - Sorry reopening since a few tasks are still open
        Hide
        oflebbe Olaf Flebbe added a comment -

        Branch merged

        Show
        oflebbe Olaf Flebbe added a comment - Branch merged
        Hide
        evans_ye Evans Ye added a comment -

        Of course! I'd like to do so! Thanks for asking. If you're ok. I can perform the merge as well.

        Show
        evans_ye Evans Ye added a comment - Of course! I'd like to do so! Thanks for asking. If you're ok. I can perform the merge as well.
        Hide
        oflebbe Olaf Flebbe added a comment -

        Evans Ye: I like to merge this branch into master.

        It does do delete anything AFAIK. Maintaining the branch gets nasty ... Ok for you ?

        Show
        oflebbe Olaf Flebbe added a comment - Evans Ye : I like to merge this branch into master. It does do delete anything AFAIK. Maintaining the branch gets nasty ... Ok for you ?
        Hide
        rvs Roman Shaposhnik added a comment -

        Olaf Flebbe Evans Ye somewhat related is the work I'm doing on the Gradle side over here BIGTOP-1577 Would really appreciate you guys taking a look.

        Basically, at this point all it takes for me to build a native packages on my Mac is this:
        $ ./gradlew -POS=xxxx foo-pkg

        In fact, because Docker on Mac is doing full virtualization I can even build on non-x86 targets without any problem

        Show
        rvs Roman Shaposhnik added a comment - Olaf Flebbe Evans Ye somewhat related is the work I'm doing on the Gradle side over here BIGTOP-1577 Would really appreciate you guys taking a look. Basically, at this point all it takes for me to build a native packages on my Mac is this: $ ./gradlew -POS=xxxx foo-pkg In fact, because Docker on Mac is doing full virtualization I can even build on non-x86 targets without any problem
        Hide
        oflebbe Olaf Flebbe added a comment - - edited

        Thanks Evans Ye] . I had the same idea, too. Great.

        On the positive side: The new Docker for Mac works like a charm. The Bind mount (-v) is slow but sufficient to copy sources into a container and artefacts back. A great plus: The mount handles user mapping transparently. I haven't used the docker-toolbox before.

        On the negative side: I still found no way to set the dnsdomainname with the new docker swarm. It worked out of the box with compose like you used it before.

        Can you point me to infos on service discovery with the new swarm ? I didn't work for me like I expected it.

        Show
        oflebbe Olaf Flebbe added a comment - - edited Thanks Evans Ye ] . I had the same idea, too. Great. On the positive side: The new Docker for Mac works like a charm. The Bind mount (-v) is slow but sufficient to copy sources into a container and artefacts back. A great plus: The mount handles user mapping transparently. I haven't used the docker-toolbox before. On the negative side: I still found no way to set the dnsdomainname with the new docker swarm. It worked out of the box with compose like you used it before. Can you point me to infos on service discovery with the new swarm ? I didn't work for me like I expected it.
        Hide
        evans_ye Evans Ye added a comment -

        Back from DockerCon16 and heard lots of news:

        • Swarm included into Docker Engine
        • Native service discovery (mesh) available
        • Security enabled by default
        • Docker for Mac/Win become more and more stable

        With that our strategy in provisioner to corp with Docker changed. Let's leave all the hard work to docker guys and just leverage on their outcome with minimal efforts. For example, for that port forwarding issue, let's count on native swarm/mesh in 1.12 as a solution.
        I'll fire a jira to fix what Olaf Flebbe pointed out and then proceed the merge.

        Show
        evans_ye Evans Ye added a comment - Back from DockerCon16 and heard lots of news: Swarm included into Docker Engine Native service discovery (mesh) available Security enabled by default Docker for Mac/Win become more and more stable With that our strategy in provisioner to corp with Docker changed. Let's leave all the hard work to docker guys and just leverage on their outcome with minimal efforts. For example, for that port forwarding issue, let's count on native swarm/mesh in 1.12 as a solution. I'll fire a jira to fix what Olaf Flebbe pointed out and then proceed the merge.
        Hide
        evans_ye Evans Ye added a comment -

        Hey Olaf, thanks for trying this! Actually the thing you mentions is one of the problem left behind. I'll open another JIRA to fix it.
        There's still one thing I'm trying to figure it out,which is the port forwarding. Since now I'm using docker-compose with scale to create containers, it's not easy to bind ports to a master container specifically. Maybe something like auto-assigning may work. I need to check...

        Show
        evans_ye Evans Ye added a comment - Hey Olaf, thanks for trying this! Actually the thing you mentions is one of the problem left behind. I'll open another JIRA to fix it. There's still one thing I'm trying to figure it out,which is the port forwarding. Since now I'm using docker-compose with scale to create containers, it's not easy to bind ports to a master container specifically. Maybe something like auto-assigning may work. I need to check...
        Hide
        oflebbe Olaf Flebbe added a comment -

        [~evans ye] I tried and it worked for me. I looked at the source and learned a lot . Only question: Is it intentional that the provisioner/utils is not used.

        Please merge parts 1 - 6.

        Show
        oflebbe Olaf Flebbe added a comment - [~evans ye] I tried and it worked for me. I looked at the source and learned a lot . Only question: Is it intentional that the provisioner/utils is not used. Please merge parts 1 - 6.
        Hide
        cos Konstantin Boudnik added a comment -

        Yup, that be great to have added to the master, so the testing/development would be even easier !

        Show
        cos Konstantin Boudnik added a comment - Yup, that be great to have added to the master, so the testing/development would be even easier !
        Hide
        evans_ye Evans Ye added a comment -

        OKAY. Right now I've couple of patches ready to get in. I'll commit then into the BIGTOP-2253 branch and setup a CI against it. From what I can remember our plan is to merge the branch back in master when it's ready and stable on CI.

        Show
        evans_ye Evans Ye added a comment - OKAY. Right now I've couple of patches ready to get in. I'll commit then into the BIGTOP-2253 branch and setup a CI against it. From what I can remember our plan is to merge the branch back in master when it's ready and stable on CI.
        Hide
        cos Konstantin Boudnik added a comment -

        Perhaps with DTK from Reactor8 guys (pinging Nate DAmico and Richard Pelavin) and Canonical's interest to use Bigtop for Juju using native solutions would be easier than ever.

        Show
        cos Konstantin Boudnik added a comment - Perhaps with DTK from Reactor8 guys (pinging Nate DAmico and Richard Pelavin ) and Canonical's interest to use Bigtop for Juju using native solutions would be easier than ever.
        Hide
        oflebbe Olaf Flebbe added a comment -

        I like to get vagrant removed, too.

        Show
        oflebbe Olaf Flebbe added a comment - I like to get vagrant removed, too.

          People

          • Assignee:
            evans_ye Evans Ye
            Reporter:
            evans_ye Evans Ye
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development