From 2249c43bba24cac4fcfaa69bbe569ec7988af75a Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 24 Dec 2018 17:21:15 +0000 Subject: Update zuul quickstart --- src/resume.html | 106 +++++++------- src/zuulv3/overview.rst | 373 ------------------------------------------------ 2 files changed, 55 insertions(+), 424 deletions(-) diff --git a/src/resume.html b/src/resume.html index 13bb8ac..3c880ed 100644 --- a/src/resume.html +++ b/src/resume.html @@ -69,72 +69,28 @@ 2010-present -
-

OpenStack Technical Committee Member

-

2012-present

- -
- -
-

OpenStack Foundation Board of Directors Individual Member

-

2012-2016

- -
- -
-

OpenStack Project Policy Board Member

-

2011-2012

- -
- -
-

OpenStack Infra

-

Founder, PTL Emeritus, Core Team Member

-

2010-present

- -

Red Hat

- Member of Technical Staff, Office of Technology: Dallas, TX

+ Member of Technical Staff, Office of the CTO: Dallas, TX

2016-present

-

NYU

-

Adjunct Professor, ITP: New York, NY

-

2016

+

OpenStack Foundation Board of Directors

+

Individual Member

+

2012-2016,2018-present

@@ -168,6 +124,7 @@
  • Oversaw the creation of TripleO, which was the basis of HP Helion and is now the foundation of Red Hat's OpenStack product line.
  • Oversaw the creation of Ironic and Bifrost.
  • +
  • Oversaw the creation of Zuul
  • Oversaw the stabalization of Keystone.
  • Staffed and led the OpenStack Infra team singlehandedly. Grew community consensus of the need for broader staffing and succeeded in achieving @@ -175,6 +132,53 @@ +
    +

    OpenDev

    +

    Founder, Core Team Member

    +

    2010-present

    +
      +
    • Founded the OpenStack Infrastructure team, responsible for development, + operation and scaling of all of the support systems for OpenStack.
    • +
    • Built world's largest Open Source CI infrastructure, supporting 2500 + developers world wide, landing 10k changes per month and consuming + approximately 20k cloud servers per day.
    • +
    • Oversaw the creation of Zuul, Nodepool, Storyboard, git-review, pbr, + elastic-recheck and countless other systems
    • +
    • Wrote shade and os-client-config libraries to drive multi-cloud + interoperability and orchestration.
    • +
    • Ansible core developer and owner of OpenStack and Puppet modules
    • +
    +
    + +
    +

    OpenStack Technical Committee Member

    +

    2012-2017

    +
      +
    • Oversaw technical governance of the OpenStack project.
    • +
    • Grew project and organization from 50 to 2500 contributors.
    • +
    +
    + +
    +

    OpenStack Project Policy Board Member

    +

    2011-2012

    +
      +
    • Oversaw overall governance of OpenStack in the days before the + Foundation was established.
    • +
    +
    + +
    +

    NYU

    +

    Adjunct Professor, ITP: New York, NY

    +

    2016

    +
      +
    • Taught course on "Lighting Without the Board" - focusing on custom + programmatic control of lighting and overview of lighting design.
    • +
    • Guest lectures on Privacy in the Digitial Age.
    • +
    +
    +

    Rackspace Cloud

    System Architect: New York, NY

    diff --git a/src/zuulv3/overview.rst b/src/zuulv3/overview.rst index 5e6b281..c385964 100644 --- a/src/zuulv3/overview.rst +++ b/src/zuulv3/overview.rst @@ -25,13 +25,6 @@ Zuul .. hidetitle:: .. ansi:: images/title.ans -Monty Taylor -============ - -* @e_monty -* freenode:mordred -* mordred@inaugust.com - Red Hat ======= .. hidetitle:: @@ -881,372 +874,6 @@ Questions .. ansi:: images/questions.ans -Quick Start Prereq -================== - -* Install docker, docker-compose, git-review - -Debian/Ubuntu: - -:: - - sudo apt-get install docker-compose git git-review - -RHEL / CentOS / Fedora: - -:: - - sudo yum install docker docker-compose git git-review - -OpenSuse: - -:: - - sudo zypper install docker docker-compose git git-review - -RHEL / CentOS / Fedora / OpenSuse - -:: - - sudo systemctl enable docker.service - sudo systemctl start docker.service - -Actual Quick Start -================== - -* git clone https://git.zuul-ci.org/zuul -* cd zuul -* cd doc/source/admin/examples -* docker-compose up - -What's Running -============== - -* Zookeeper -* Gerrit -* Nodepool Launcher -* Zuul Scheduler -* Zuul Web Server -* Zuul Executor -* Apache HTTPD -* A container to use as a 'static' build node - -How they're connected -===================== - -* End Users talk to Gerrit and Apache HTTPD -* Zuul Scheduler talks to Gerrit -* Nodepool Launcher, Zuul Scheduler, Zuul Web talk to Zookeeper -* Zuul Executor talks to Zuul Scheduler (using Gearman) - -Initial provided config -======================= - -* docker-compose has plumbed in basic config ``etc_zuul/zuul.conf`` - and ``etc_zuul/main.yaml`` -* Gerrit Connection named "gerrit" -* Zuul user for that connection -* Git connection named "zuul-ci.org" for ``zuul-jobs`` standard library - -Initial tenant -============== - -* Zuul is (always) multi-tenant -* Example config contains a tenant called ``example-tenant`` -* Three projects in the ``example-tenant`` tenant: - ``zuul-config``, ``test1``, ``test2`` -* Three projects are also in gerrit ready to use - -zuul.conf -========= - -:: - - [gearman] - server=scheduler - - [gearman_server] - start=true - - [zookeeper] - hosts=zk - - [scheduler] - tenant_config=/etc/zuul/main.yaml - - [web] - listen_address=0.0.0.0 - - [executor] - private_key_file=/var/ssh/nodepool - default_username=root - -zuul.conf part 2 -================ - -:: - - [connection "gerrit"] - name=gerrit - driver=gerrit - server=gerrit - sshkey=/var/ssh/zuul - user=zuul - password=secret - baseurl=http://gerrit:8080 - auth_type=basic - - [connection "zuul-ci.org"] - name=zuul-ci - driver=git - baseurl=https://git.zuul-ci.org/ - -main.yaml -========= - -:: - - - tenant: - name: example-tenant - source: - gerrit: - config-projects: - - zuul-config - untrusted-projects: - - test1 - - test2 - zuul-ci.org: - untrusted-projects: - - zuul-jobs: - include: - - job - -Gerrit Account -============== - -* Need a user account to interact with Gerrit -* Gerrit is configured in dev mode - no passwords required -* Visit http://localhost:8080 -* Click "Become" -* Click "New Account" -* Click "Register" -* Enter Full Name -* Click "Save Changes" -* Enter username in Username field (match your local laptop user) -* Copy ``~/.ssh/id_rsa.pub`` contents into SSH Key field -* Click Continue - -Config Repo -=========== - -* ``zuul-config`` is a trusted ``config-repo`` -* Security and functionality of system depend on this repo -* Limit its contents to minimum required - -Config Files vs. Directories -============================ - -* Zuul reads config from: - ``.zuul.yaml``, ``zuul.yaml``, ``zuul.d`` or ``.zuul.d`` -* For projects with substantial zuul config, like ``zuul-config`` - ``zuul.d`` directory is likely best. -* The directories are read run-parts style. -* Recommended practice is splitting by type of object - -Setting up Gating -================= - -* We want to have changes to ``zuul-config`` be gated -* We need to define pipelines: ``check`` and ``gate`` -* Need to attach ``zuul-config`` to them -* Start with builtin ``noop`` job (always return success) -* Use regex to attach all projects to ``check`` and ``gate`` - -Pipeline Definitions -==================== - -* Zuul has no built-in workflow definitions, let's add ``check`` and ``gate`` - -check pipeline -============== - -:: - - - pipeline: - name: check - description: | - Newly uploaded patchsets enter this pipeline to receive an - initial +/-1 Verified vote. - manager: independent - require: - gerrit: - open: True - current-patchset: True - trigger: - gerrit: - - event: patchset-created - - event: change-restored - success: - gerrit: - Verified: 1 - failure: - gerrit: - Verified: -1 - -gate pipeline -============= - -:: - - pipeline: - name: gate - description: | - Changes that have been approved are enqueued in order in this - pipeline, and if they pass tests, will be merged. - manager: dependent - post-review: True - require: - gerrit: - open: True - current-patchset: True - approval: - - Workflow: 1 - trigger: - gerrit: - - event: comment-added - approval: - - Workflow: 1 - start: - gerrit: - Verified: 0 - success: - gerrit: - Verified: 2 - submit: true - failure: - gerrit: - Verified: -2 - -Add the pipeline definitions -============================ - -.. code-block:: bash - - git clone http://localhost:8080/zuul-config - cd zuul-config - mkdir zuul.d - cp ../examples/zuul-config/zuul.d/pipelines.yaml . - -Shared Project Pipeline Definition -================================== - -In ``examples/zuul-config/zuul.d/projects.yaml`` - -.. code-block:: yaml - - - project: - name: ^.*$ - check: - jobs: [] - gate: - jobs: [] - - - project: - name: zuul-config - check: - jobs: - - noop - gate: - jobs: - - noop - -Attach the projects to the pipelines -==================================== - -.. code-block:: bash - - cp ../examples/zuul-config/zuul.d/projects.yaml . - -Commit the changes and push up for review -========================================= - -.. code-block:: bash - - git add zuul.d - git commit - git review - -Force merging bootstrap config -============================== - -* Zuul is running with no config, so it won't do anything -* For this change (and this change only) we will bypass gating - -Reviewing normally -================== - -* visit http://localhost:8080/#/c/zuul-config/+/1001/ -* click reply -* vote +2 Code Review +1 Approved - -Verified +2 is Missing -====================== - -Verified +2 is what we have zuul configured to do. - -:: - success: - gerrit: - Verified: 2 - submit: true - - -Bypassing Gating -================ - -* visit http://localhost:8080/ -* click 'switch account' -* click 'admin' -* visit http://localhost:8080/#/c/zuul-config/+/1001/ -* click reply -* vote +2 Verified (normal users do not see this) -* click submit (normal users do not see this) -* click 'switch account' -* click your username - -Base Job -======== - -* Every Zuul installation must define a ``base`` job -* Push git repos to build node -* Publish logs/artifacts -* Any local specific setup -* Goes in config repo - because it impacts EVERY job - -Add Base Job to zuul-config -=========================== - -:: - - cp ../examples/zuul-config/zuul.d/jobs.yaml . - git add jobs.yaml - git commit - git review - -Then go to http://localhost:8080/#/c/zuul-config/+/1002/ and approve it - -Zuul should merge the patch -=========================== - -zuul-config is configured to use the ``noop`` job - -Zuul tests syntax automatically -=============================== - -* Edit jobs.yaml -* Change ``parent: null`` to ``parent: broken`` -* git commit ; git review -* Check out the review in gerrit ... there should be errors! - Presentty ========= .. hidetitle:: -- cgit v1.2.3