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

Better UX for Docker provisioner by integrating it into gradle

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: 1.0.0
    • Component/s: deployment
    • Labels:
      None

      Description

      The way to use bigtop docker provisioner is to cd into its directory and then use docker-hadoop.sh to bring the cluster up. Integrate this into gradle can provide better UX for bigtop users.
      Designed tasks are:

      Deployment tasks
      ----------------
      docker-provisioner - Provision a Bigtop cluster on Docker container(s). Default to CentOS and 1 node.
      Example:
      ./gradlew docker-provisioner
      ./gradlew -Pnum_instances=3 docker-provisioner
      ./gradlew -Pconfig=vagrantconfig_debian.yaml -Pnum_instances=3 docker-provisioner
      ./gradlew -Prun_smoke_tests=true docker-provisioner
      docker-provisioner-destroy - Destroy provisioned Bigtop Docker cluster
      docker-provisioner-ssh - Show ssh command to get in to the provisioned container
      docker-provisioner-status - Show status of Bigtop Docker cluster
      
      1. BIGTOP-1836.patch
        4 kB
        Evans Ye
      2. BIGTOP-1836.patch
        3 kB
        Evans Ye

        Activity

        Hide
        evans_ye Evans Ye added a comment -

        Committed. Thanks for the review Konstantin Boudnik.

        Show
        evans_ye Evans Ye added a comment - Committed. Thanks for the review Konstantin Boudnik .
        Hide
        cos Konstantin Boudnik added a comment -

        It looks way better! Thanks! Let's get it in. +1

        Show
        cos Konstantin Boudnik added a comment - It looks way better! Thanks! Let's get it in. +1
        Hide
        evans_ye Evans Ye added a comment -

        Thanks for fixing my typo!
        There is a way to change the OS type which is to pass the desired configuration file by the -P option. I've implement the mapping in gradle.
        This remind me that the usage is somehow vague. So I reorganized the message in gradle tasks:

        Deployment tasks
        ----------------
        docker-provisioner - Provision a Bigtop cluster on Docker container(s). Default to CentOS and 1 node.
        Create a 3 node cluster:
          $ ./gradlew -Pnum_instances=3 docker-provisioner
        Run smoke tests on 3 node cluster:
          $ ./gradlew -Pnum_instances=3 -Prun_smoke_tests=true docker-provisioner
        Specify configuration file (located in bigtop-deploy/vm/vagrant-puppet-docker/):
          $ ./gradlew -Pconfig=vagrantconfig_debian.yaml docker-provisioner
        docker-provisioner-destroy - Destroy provisioned Bigtop Docker cluster
        docker-provisioner-ssh - Show ssh command to get in to the provisioned container
        docker-provisioner-status - Show status of Bigtop Docker cluster
        

        D you think this one better?

        Show
        evans_ye Evans Ye added a comment - Thanks for fixing my typo! There is a way to change the OS type which is to pass the desired configuration file by the -P option. I've implement the mapping in gradle. This remind me that the usage is somehow vague. So I reorganized the message in gradle tasks: Deployment tasks ---------------- docker-provisioner - Provision a Bigtop cluster on Docker container(s). Default to CentOS and 1 node. Create a 3 node cluster: $ ./gradlew -Pnum_instances=3 docker-provisioner Run smoke tests on 3 node cluster: $ ./gradlew -Pnum_instances=3 -Prun_smoke_tests= true docker-provisioner Specify configuration file (located in bigtop-deploy/vm/vagrant-puppet-docker/): $ ./gradlew -Pconfig=vagrantconfig_debian.yaml docker-provisioner docker-provisioner-destroy - Destroy provisioned Bigtop Docker cluster docker-provisioner-ssh - Show ssh command to get in to the provisioned container docker-provisioner-status - Show status of Bigtop Docker cluster D you think this one better?
        Hide
        cos Konstantin Boudnik added a comment -

        A couple of comments - sorry for the long turn around.

        1. the was a typo in the title of this JIRA which is fixed now "Docker" vs "Docker". I would update it in the patch before pushing, but here's my second comment
        2. docker-provisioner description says that CentOS is the default one. However, there's no way to change that default from the command line (right?) Do you think it would make sense to make a note on how such change should be handled? I am ok either way, but thought it might be a bit clearer for a layman.

        If you feel like current description is fine, here's my +1 contingent on updating the JIRA title in the patch.

        Thanks!

        Show
        cos Konstantin Boudnik added a comment - A couple of comments - sorry for the long turn around. the was a typo in the title of this JIRA which is fixed now "Docker" vs "Docker". I would update it in the patch before pushing, but here's my second comment docker-provisioner description says that CentOS is the default one. However, there's no way to change that default from the command line (right?) Do you think it would make sense to make a note on how such change should be handled? I am ok either way, but thought it might be a bit clearer for a layman. If you feel like current description is fine, here's my +1 contingent on updating the JIRA title in the patch. Thanks!
        Hide
        evans_ye Evans Ye added a comment -

        Patch has been uploaded. Now users can spin up a cluster by running ./gradlew docker-provisioner.

        Show
        evans_ye Evans Ye added a comment - Patch has been uploaded. Now users can spin up a cluster by running ./gradlew docker-provisioner .

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development