summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2018-12-24 17:21:15 +0000
committerMonty Taylor <mordred@inaugust.com>2018-12-30 16:54:44 +0000
commit2249c43bba24cac4fcfaa69bbe569ec7988af75a (patch)
tree73b1ba69c77e24fb3d66d3cb60580182fe0acfe3
parent6c866e5f77b35fd573ae12e2de3d37eaa155f32c (diff)
Update zuul quickstart
-rw-r--r--src/resume.html106
-rw-r--r--src/zuulv3/overview.rst373
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 @@
69 69
70 <span class="titledate">2010-present</span> 70 <span class="titledate">2010-present</span>
71</h3> 71</h3>
72<div class="job">
73 <p>OpenStack Technical Committee Member</p>
74 <p class="jobskillslist">2012-present</p>
75 <ul>
76 <li>Oversee technical governance of the OpenStack project.</li>
77 </ul>
78</div>
79
80<div class="job">
81 <p>OpenStack Foundation Board of Directors Individual Member</p>
82 <p class="jobskillslist">2012-2016</p>
83 <ul>
84 <li>Oversaw business, legal and branding concerns
85 representing the Individual Members of the Foundation.</li>
86 </ul>
87</div>
88
89<div class="job">
90 <p>OpenStack Project Policy Board Member</p>
91 <p class="jobskillslist">2011-2012</p>
92 <ul>
93 <li>Oversaw overall governance of OpenStack in the days before the
94 Foundation was established.</li>
95 </ul>
96</div>
97
98<div class="job">
99 <p>OpenStack Infra</p>
100 <p class="jobtitle">Founder, PTL Emeritus, Core Team Member</p>
101 <p class="jobskillslist">2010-present</p>
102 <ul>
103 <li>Founded the OpenStack Infra team, responsible for development,
104 operation and scaling of all of the support systems for OpenStack.</li>
105 <li>Built world's largest Open Source CI infrastructure, supporting 2500
106 developers world wide, landing 10k changes per month and consuming
107 approximately 20k cloud servers per day.</li>
108 <li>Oversaw the creation of Zuul, Nodepool, Storyboard, git-review, pbr,
109 elastic-recheck and countless other systems</li>
110 <li>Wrote shade and os-client-config libraries to drive multi-cloud
111 interoperability and orchestration.</li>
112 <li>Ansible core developer and owner of OpenStack and Puppet modules</li>
113 </ul>
114</div>
115 72
116<div class="job"> 73<div class="job">
117 <p>Red Hat</p> 74 <p>Red Hat</p>
118 <p class="jobtitle"> 75 <p class="jobtitle">
119 Member of Technical Staff, Office of Technology: Dallas, TX</p> 76 Member of Technical Staff, Office of the CTO: Dallas, TX</p>
120 <p class="jobskillslist">2016-present</p> 77 <p class="jobskillslist">2016-present</p>
121 <ul> 78 <ul>
122 <li>Driving strategy related to CI/CD.</li> 79 <li>Driving strategy related to CI/CD.</li>
123 <li>Leading development team focused on Zuul. Specifically focused on 80 <li>Leading development team focused on Zuul. Specifically focused on
124 delivering the Ansible-based Zuul v3 to allow for richer multi-node 81 delivering the Ansible-based Zuul v3 to allow for richer multi-node
125 testing and reduction of difference between testing and production.</li> 82 testing and reduction of difference between testing and production.</li>
126 <li>Facilitating multi-cloud OpenStack efforts through Shade project.</li> 83 <li>Facilitating multi-cloud OpenStack efforts through openstacksdk project.</li>
127 </ul> 84 </ul>
128</div> 85</div>
129 86
130<div class="job"> 87<div class="job">
131 <p>NYU</p> 88 <p>OpenStack Foundation Board of Directors</p>
132 <p class="jobtitle">Adjunct Professor, ITP: New York, NY</p> 89 <p class="jobtitle">Individual Member</p>
133 <p class="jobskillslist">2016</p> 90 <p class="jobskillslist">2012-2016,2018-present</p>
134 <ul> 91 <ul>
135 <li>Taught course on "Lighting Without the Board" - focusing on custom 92 <li>Oversaw business, legal and branding concerns
136 programmatic control of lighting and overview of lighting design.</li> 93 representing the Individual Members of the Foundation.</li>
137 <li>Guest lectures on Privacy in the Digitial Age.</li>
138 </ul> 94 </ul>
139</div> 95</div>
140 96
@@ -168,6 +124,7 @@
168 <li>Oversaw the creation of TripleO, which was the basis of HP Helion and 124 <li>Oversaw the creation of TripleO, which was the basis of HP Helion and
169 is now the foundation of Red Hat's OpenStack product line.</li> 125 is now the foundation of Red Hat's OpenStack product line.</li>
170 <li>Oversaw the creation of Ironic and Bifrost.</li> 126 <li>Oversaw the creation of Ironic and Bifrost.</li>
127 <li>Oversaw the creation of Zuul</li>
171 <li>Oversaw the stabalization of Keystone.</li> 128 <li>Oversaw the stabalization of Keystone.</li>
172 <li>Staffed and led the OpenStack Infra team singlehandedly. Grew community 129 <li>Staffed and led the OpenStack Infra team singlehandedly. Grew community
173 consensus of the need for broader staffing and succeeded in achieving 130 consensus of the need for broader staffing and succeeded in achieving
@@ -176,6 +133,53 @@
176</div> 133</div>
177 134
178<div class="job"> 135<div class="job">
136 <p>OpenDev</p>
137 <p class="jobtitle">Founder, Core Team Member</p>
138 <p class="jobskillslist">2010-present</p>
139 <ul>
140 <li>Founded the OpenStack Infrastructure team, responsible for development,
141 operation and scaling of all of the support systems for OpenStack.</li>
142 <li>Built world's largest Open Source CI infrastructure, supporting 2500
143 developers world wide, landing 10k changes per month and consuming
144 approximately 20k cloud servers per day.</li>
145 <li>Oversaw the creation of Zuul, Nodepool, Storyboard, git-review, pbr,
146 elastic-recheck and countless other systems</li>
147 <li>Wrote shade and os-client-config libraries to drive multi-cloud
148 interoperability and orchestration.</li>
149 <li>Ansible core developer and owner of OpenStack and Puppet modules</li>
150 </ul>
151</div>
152
153<div class="job">
154 <p>OpenStack Technical Committee Member</p>
155 <p class="jobskillslist">2012-2017</p>
156 <ul>
157 <li>Oversaw technical governance of the OpenStack project.</li>
158 <li>Grew project and organization from 50 to 2500 contributors.</li>
159 </ul>
160</div>
161
162<div class="job">
163 <p>OpenStack Project Policy Board Member</p>
164 <p class="jobskillslist">2011-2012</p>
165 <ul>
166 <li>Oversaw overall governance of OpenStack in the days before the
167 Foundation was established.</li>
168 </ul>
169</div>
170
171<div class="job">
172 <p>NYU</p>
173 <p class="jobtitle">Adjunct Professor, ITP: New York, NY</p>
174 <p class="jobskillslist">2016</p>
175 <ul>
176 <li>Taught course on "Lighting Without the Board" - focusing on custom
177 programmatic control of lighting and overview of lighting design.</li>
178 <li>Guest lectures on Privacy in the Digitial Age.</li>
179 </ul>
180</div>
181
182<div class="job">
179 <p>Rackspace Cloud</p> 183 <p>Rackspace Cloud</p>
180 <p class="jobtitle">System Architect: New York, NY</p> 184 <p class="jobtitle">System Architect: New York, NY</p>
181 <p class="jobskillslist">2010-2011</p> 185 <p class="jobskillslist">2010-2011</p>
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
25.. hidetitle:: 25.. hidetitle::
26.. ansi:: images/title.ans 26.. ansi:: images/title.ans
27 27
28Monty Taylor
29============
30
31* @e_monty
32* freenode:mordred
33* mordred@inaugust.com
34
35Red Hat 28Red Hat
36======= 29=======
37.. hidetitle:: 30.. hidetitle::
@@ -881,372 +874,6 @@ Questions
881 874
882.. ansi:: images/questions.ans 875.. ansi:: images/questions.ans
883 876
884Quick Start Prereq
885==================
886
887* Install docker, docker-compose, git-review
888
889Debian/Ubuntu:
890
891::
892
893 sudo apt-get install docker-compose git git-review
894
895RHEL / CentOS / Fedora:
896
897::
898
899 sudo yum install docker docker-compose git git-review
900
901OpenSuse:
902
903::
904
905 sudo zypper install docker docker-compose git git-review
906
907RHEL / CentOS / Fedora / OpenSuse
908
909::
910
911 sudo systemctl enable docker.service
912 sudo systemctl start docker.service
913
914Actual Quick Start
915==================
916
917* git clone https://git.zuul-ci.org/zuul
918* cd zuul
919* cd doc/source/admin/examples
920* docker-compose up
921
922What's Running
923==============
924
925* Zookeeper
926* Gerrit
927* Nodepool Launcher
928* Zuul Scheduler
929* Zuul Web Server
930* Zuul Executor
931* Apache HTTPD
932* A container to use as a 'static' build node
933
934How they're connected
935=====================
936
937* End Users talk to Gerrit and Apache HTTPD
938* Zuul Scheduler talks to Gerrit
939* Nodepool Launcher, Zuul Scheduler, Zuul Web talk to Zookeeper
940* Zuul Executor talks to Zuul Scheduler (using Gearman)
941
942Initial provided config
943=======================
944
945* docker-compose has plumbed in basic config ``etc_zuul/zuul.conf``
946 and ``etc_zuul/main.yaml``
947* Gerrit Connection named "gerrit"
948* Zuul user for that connection
949* Git connection named "zuul-ci.org" for ``zuul-jobs`` standard library
950
951Initial tenant
952==============
953
954* Zuul is (always) multi-tenant
955* Example config contains a tenant called ``example-tenant``
956* Three projects in the ``example-tenant`` tenant:
957 ``zuul-config``, ``test1``, ``test2``
958* Three projects are also in gerrit ready to use
959
960zuul.conf
961=========
962
963::
964
965 [gearman]
966 server=scheduler
967
968 [gearman_server]
969 start=true
970
971 [zookeeper]
972 hosts=zk
973
974 [scheduler]
975 tenant_config=/etc/zuul/main.yaml
976
977 [web]
978 listen_address=0.0.0.0
979
980 [executor]
981 private_key_file=/var/ssh/nodepool
982 default_username=root
983
984zuul.conf part 2
985================
986
987::
988
989 [connection "gerrit"]
990 name=gerrit
991 driver=gerrit
992 server=gerrit
993 sshkey=/var/ssh/zuul
994 user=zuul
995 password=secret
996 baseurl=http://gerrit:8080
997 auth_type=basic
998
999 [connection "zuul-ci.org"]
1000 name=zuul-ci
1001 driver=git
1002 baseurl=https://git.zuul-ci.org/
1003
1004main.yaml
1005=========
1006
1007::
1008
1009 - tenant:
1010 name: example-tenant
1011 source:
1012 gerrit:
1013 config-projects:
1014 - zuul-config
1015 untrusted-projects:
1016 - test1
1017 - test2
1018 zuul-ci.org:
1019 untrusted-projects:
1020 - zuul-jobs:
1021 include:
1022 - job
1023
1024Gerrit Account
1025==============
1026
1027* Need a user account to interact with Gerrit
1028* Gerrit is configured in dev mode - no passwords required
1029* Visit http://localhost:8080
1030* Click "Become"
1031* Click "New Account"
1032* Click "Register"
1033* Enter Full Name
1034* Click "Save Changes"
1035* Enter username in Username field (match your local laptop user)
1036* Copy ``~/.ssh/id_rsa.pub`` contents into SSH Key field
1037* Click Continue
1038
1039Config Repo
1040===========
1041
1042* ``zuul-config`` is a trusted ``config-repo``
1043* Security and functionality of system depend on this repo
1044* Limit its contents to minimum required
1045
1046Config Files vs. Directories
1047============================
1048
1049* Zuul reads config from:
1050 ``.zuul.yaml``, ``zuul.yaml``, ``zuul.d`` or ``.zuul.d``
1051* For projects with substantial zuul config, like ``zuul-config``
1052 ``zuul.d`` directory is likely best.
1053* The directories are read run-parts style.
1054* Recommended practice is splitting by type of object
1055
1056Setting up Gating
1057=================
1058
1059* We want to have changes to ``zuul-config`` be gated
1060* We need to define pipelines: ``check`` and ``gate``
1061* Need to attach ``zuul-config`` to them
1062* Start with builtin ``noop`` job (always return success)
1063* Use regex to attach all projects to ``check`` and ``gate``
1064
1065Pipeline Definitions
1066====================
1067
1068* Zuul has no built-in workflow definitions, let's add ``check`` and ``gate``
1069
1070check pipeline
1071==============
1072
1073::
1074
1075 - pipeline:
1076 name: check
1077 description: |
1078 Newly uploaded patchsets enter this pipeline to receive an
1079 initial +/-1 Verified vote.
1080 manager: independent
1081 require:
1082 gerrit:
1083 open: True
1084 current-patchset: True
1085 trigger:
1086 gerrit:
1087 - event: patchset-created
1088 - event: change-restored
1089 success:
1090 gerrit:
1091 Verified: 1
1092 failure:
1093 gerrit:
1094 Verified: -1
1095
1096gate pipeline
1097=============
1098
1099::
1100 - pipeline:
1101 name: gate
1102 description: |
1103 Changes that have been approved are enqueued in order in this
1104 pipeline, and if they pass tests, will be merged.
1105 manager: dependent
1106 post-review: True
1107 require:
1108 gerrit:
1109 open: True
1110 current-patchset: True
1111 approval:
1112 - Workflow: 1
1113 trigger:
1114 gerrit:
1115 - event: comment-added
1116 approval:
1117 - Workflow: 1
1118 start:
1119 gerrit:
1120 Verified: 0
1121 success:
1122 gerrit:
1123 Verified: 2
1124 submit: true
1125 failure:
1126 gerrit:
1127 Verified: -2
1128
1129Add the pipeline definitions
1130============================
1131
1132.. code-block:: bash
1133
1134 git clone http://localhost:8080/zuul-config
1135 cd zuul-config
1136 mkdir zuul.d
1137 cp ../examples/zuul-config/zuul.d/pipelines.yaml .
1138
1139Shared Project Pipeline Definition
1140==================================
1141
1142In ``examples/zuul-config/zuul.d/projects.yaml``
1143
1144.. code-block:: yaml
1145
1146 - project:
1147 name: ^.*$
1148 check:
1149 jobs: []
1150 gate:
1151 jobs: []
1152
1153 - project:
1154 name: zuul-config
1155 check:
1156 jobs:
1157 - noop
1158 gate:
1159 jobs:
1160 - noop
1161
1162Attach the projects to the pipelines
1163====================================
1164
1165.. code-block:: bash
1166
1167 cp ../examples/zuul-config/zuul.d/projects.yaml .
1168
1169Commit the changes and push up for review
1170=========================================
1171
1172.. code-block:: bash
1173
1174 git add zuul.d
1175 git commit
1176 git review
1177
1178Force merging bootstrap config
1179==============================
1180
1181* Zuul is running with no config, so it won't do anything
1182* For this change (and this change only) we will bypass gating
1183
1184Reviewing normally
1185==================
1186
1187* visit http://localhost:8080/#/c/zuul-config/+/1001/
1188* click reply
1189* vote +2 Code Review +1 Approved
1190
1191Verified +2 is Missing
1192======================
1193
1194Verified +2 is what we have zuul configured to do.
1195
1196::
1197 success:
1198 gerrit:
1199 Verified: 2
1200 submit: true
1201
1202
1203Bypassing Gating
1204================
1205
1206* visit http://localhost:8080/
1207* click 'switch account'
1208* click 'admin'
1209* visit http://localhost:8080/#/c/zuul-config/+/1001/
1210* click reply
1211* vote +2 Verified (normal users do not see this)
1212* click submit (normal users do not see this)
1213* click 'switch account'
1214* click your username
1215
1216Base Job
1217========
1218
1219* Every Zuul installation must define a ``base`` job
1220* Push git repos to build node
1221* Publish logs/artifacts
1222* Any local specific setup
1223* Goes in config repo - because it impacts EVERY job
1224
1225Add Base Job to zuul-config
1226===========================
1227
1228::
1229
1230 cp ../examples/zuul-config/zuul.d/jobs.yaml .
1231 git add jobs.yaml
1232 git commit
1233 git review
1234
1235Then go to http://localhost:8080/#/c/zuul-config/+/1002/ and approve it
1236
1237Zuul should merge the patch
1238===========================
1239
1240zuul-config is configured to use the ``noop`` job
1241
1242Zuul tests syntax automatically
1243===============================
1244
1245* Edit jobs.yaml
1246* Change ``parent: null`` to ``parent: broken``
1247* git commit ; git review
1248* Check out the review in gerrit ... there should be errors!
1249
1250Presentty 877Presentty
1251========= 878=========
1252.. hidetitle:: 879.. hidetitle::