Docs: Update docs to prepare for 0.10.0 release
[leap_platform.git] / CHANGES.md
1 Platform 0.10
2 ------------------------------------------------
3
4 The main focus for Platform 0.10 was to update of all client-side daemons to
5 newest releases, like Soledad and OpenVPN. This introduces a *compatibility
6 change*: by setting the platform version to 0.10, it also requires client 0.9.4
7 or later. We also switched the development branch to the 'master' branch and are
8 creating a branch called 0.10.x to push hot-fixes during the 0.10 life-cycle.
9
10 Note: This will be the last major release of the LEAP Platform for Debian
11 Jessie. We will continue to support 0.10 with minor releases with important
12 security and bug fixes, but the next major release will require an upgrade to
13 Stretch.
14
15 New Features:
16
17 * Tor single-hop onion service capability.
18 * `leap info` is now run after deploy
19 * Timestamps are added to deployments
20 * Missing ssh host keys are generated on node init
21 * Private networking support for local Vagrant development
22 * Static sites get lets encrypt support
23 * add command `leap node disable`, `leap node enable`, `leap ping`
24
25 Notable Changes:
26
27 * Removed haproxy because we don't support multi-node couchdb installations anymore (#8144).
28 * Disable nagios notification emails (#8772).
29 * Fix layout of apt repository (#8888)
30 * Limit what archive signing keys are accepted for the leap debian repository packages (#8425).
31 * Monitor the Webapp logs for errors (#5174).
32 * Moved development to the master branch.
33 * Rewrite leap_cli ssh code
34 * Debian wheezy was fully deprecated
35 * Restructure package archives to enable auto packaging, and CI testing
36 * Significant CI improvements
37 * Troubleshooting information added to `leap user ls`
38 * Couchdb service is no longer required on soledad nodes (#8693)
39 * Tor service refactored (#8864), and v3 hidden service support added (#8879)
40 * Fixed unattended-upgrades (#8891)
41 * Alert on 409 responses for webapp
42 * Many other issues resolved, full list: https://0xacab.org/groups/leap/milestones/platform-010?title=Platform+0.10
43
44 Upgrading:
45
46 If you have a node with the service 'tor' defined, you will need to change it to
47 be either 'tor-relay', or 'tor-exit'. Look in your provider directory under the
48 nodes directory for any .json file that has a 'services' section with 'tor'
49 defined, change that to the correct tor service you are wanting to deploy.
50
51 Make sure you have the correct version of leap_cli
52
53     workstation$ sudo gem install leap_cli --version=1.9
54
55 If you are upgrading from a version previous to 0.9, please follow those upgrade
56 instructions before upgrading to 0.10.
57
58 Prepare your platform source by checking out the 0.10.x branch:
59
60     workstation$ cd leap_platform
61     workstation$ git fetch
62     workstation$ git checkout 0.10.x
63
64 Then, deploy:
65
66     workstation$ cd $PROVIDER_DIR
67     workstation$ leap deploy
68     workstation$ leap test
69
70 After deployment, if the leap test does not succeed, you should
71 investigate. Please see below for some post-deployment upgrade steps that you
72 may need to perform.
73
74 Starting with Soledad Server 0.9.0, the CouchDB database schema was changed to
75 improve speed of the server side storage backend. If you provided email, you
76 will need to run the migration script, otherwise it is unnecessary. Until you
77 migrate, soledad will refuse to start.
78
79 To run the migration script, do the following (replacing $PROVIDER_DIR,
80 $COUCHDB_NODE, $MX_NODE, and $SOLEDAD_NODE with your values):
81
82 First backup your couchdb databases, just to be safe. NOTE: This can take some
83 time and will place several hundred megabytes of data into
84 /var/backups/couchdb. The size and time depends on how many users there are on
85 your system. For example, 15k users took approximately 25 minutes and 308M of
86 space:
87
88     workstation$ leap ssh $COUCHDB_NODE
89     server# cd /srv/leap/couchdb/scripts
90     server# ./cleanup-user-dbs
91     server# time ./couchdb_dumpall.sh
92
93  Once that has finished, then its time to run the migration:
94
95     workstation$ cd $PROVIDER_DIR
96     workstation$ leap run 'systemctl leap_mx stop' $MX_NODE
97     workstation$ leap run --stream '/usr/share/soledad-server/migration/0.9/migrate.py --log-file /var/log/leap/soledad_migration --verbose --do-migrate' $SOLEDAD_NODE
98     wait for it to finish (will print DONE)
99     rerun if interrupted
100     workstation$ leap deploy
101     workstation$ leap test
102
103 Known Issues:
104
105 If you have been deploying from our master branch (ie: unstable code), you might
106 end up with a broken sources line for apt. If you get the following:
107     WARNING: The following packages cannot be authenticated!
108
109 Then you should remove the files on your nodes inside
110 /var/lib/puppet/modules/apt/keys and deploy again. (#8862, #8876)
111
112 * When upgrading, sometimes systemd does not report the correct state of a
113   daemon. The daemon will be not running, but systemd thinks it is. The symptom
114   of this is that a deploy will succeed but `leap test` will fail. To fix, you
115   can run `systemctl stop DAEMON` and then `systemctl start DAEMON` on the
116   affected host (systemctl restart seems to work less reliably).
117
118 Includes:
119
120 * leap_web: 0.9.2
121 * nickserver: 0.10.0
122 * leap-mx: 0.10.1
123 * soledad-server: 0.10.5
124
125 Commits: https://0xacab.org/groups/leap/milestones/platform-010?title=Platform+0.10
126
127 For details on about all the changes included in this release please consult the
128 [LEAP platform 0.10 milestone](https://0xacab.org/leap/platform/milestones/7 ).
129
130
131 Platform 0.9
132 --------------------------------------
133
134 The focus for Platform 0.9 was to clean house: we replaced the annoying system
135 of puppet submodules, we cleaned up the directory structure, we removed many of
136 the gem dependencies, and we fixed a lot of bugs.
137
138 New Features:
139
140 * `leap vm` -- Support for managing remote virtual servers (AWS only, for now)
141 * `leap cert renew` -- Integration with Let's Encrypt
142 * `leap open monitor` -- for handy access to nagios
143 * improved documentation -- open docs/index.html to see
144
145 Notable Changes:
146
147 * 86 bugs fixed
148 * Fixed security issues with VPN
149 * More tests
150 * Replaced git submodules with git subrepo
151 * Nearly all the leap_cli code has been moved to leap_platform.git
152 * Command-line leap_cli cleanup to be more logically consistent
153 * Better organization of the leap_platform.git directory structure
154 * Removed ugly dependency on Capistrano
155 * Enabled DANE/TLSA validation
156 * Anti-spam improvements
157 * Performance improvements for couchdb
158 * Change from httpredir.debian.org to deb.debian.org
159 * Reduce duplicated logging
160
161 Upgrading:
162
163 You will need the new version of leap_cli:
164
165     workstation$ sudo gem install leap_cli --version=1.9
166
167 Because 0.9 does not use submodules anymore, you must remove them before pulling
168 the latest leap_platform from git:
169
170     workstation$ cd leap_platform
171     workstation$ for dir in $(git submodule | awk '{print $2}'); do
172     workstation$   git submodule deinit $dir
173     workstation$ done
174     workstation$ git pull
175     workstation$ git checkout 0.9.0
176
177 Alternately, just clone a fresh leap_platform:
178
179     workstation$ git clone https://leap.se/git/leap_platform
180     workstation$ cd leap_platform
181     workstation$ git checkout 0.9.0
182
183 Then, deploy:
184
185     workstation$ cd PROVIDER_DIR
186     workstation$ leap deploy
187
188 Known Issues:
189
190 * When upgrading, sometimes systemd does not report the correct state of a
191   daemon. The daemon will be not running, but systemd thinks it is. The symptom
192   of this is that a deploy will succeed but `leap test` will fail. To fix, you
193   can run `systemctl stop DAEMON` and then `systemctl start DAEMON` on the
194   affected host (systemctl restart seems to work less reliably).
195
196 Includes:
197
198 * leap_web: 0.8
199 * nickserver: 0.8
200 * couchdb: 1.6.0
201 * leap-mx: 0.8.1
202 * soledad-server: 0.8.0
203
204 Commits: https://leap.se/git/leap_platform.git/shortlog/refs/tags/0.9
205
206 Issues fixed: https://leap.se/code/versions/195
207
208
209 Platform 0.8
210 --------------------------------------
211
212 This release focuses on the email service.
213
214 Requirements:
215
216 * You must upgrade to Debian Jessie, see below for details
217 * You must migrate all data from BigCouch to CouchDB
218 * Soledad and couchdb services must be on the same node
219
220 WARNING: failure to migrate data from BigCouch to CouchDB will cause all user
221 accounts to get destroyed. See UPGRADING below for how to safely do this.
222
223 UPGRADING: You must upgrade to Debian Jessie and migrate from BigCouch to
224 Couchdb. It is tricky to upgrade the OS and migrate the database, so we have
225 writen and tested a step-by-step guide that you can carefully follow in
226 doc/upgrading/upgrade-0-8.md, or online at: https://leap.se/en/upgrade-0-8
227
228 Other new features:
229
230 * It is possible to require invite codes for new users signing up.
231
232 * Tapicero has been removed. Now user storage databases are created as needed
233   by soledad, and deleted eventually when no longer needed.
234
235 * Admins can now suspend/enable users and block/enable their ability to send
236   and receive email.
237
238 * Support for SPF and DKIM.
239
240 Compatibility:
241
242 * Now, soledad and couchdb must be on the same node.
243 * Requires Debian Jessie. Wheezy is no longer supported.
244 * Requires CouchDB, BigCouch is no longer supported.
245 * Requires leap_cli version 1.8
246 * Requires bitmask client version >= 0.9
247 * Includes:
248   * leap_mx 0.8
249   * webapp 0.8
250   * soledad 0.8
251
252 Commits: https://leap.se/git/leap_platform.git/shortlog/refs/tags/0.8
253 Issues fixed: https://leap.se/code/versions/189
254
255
256 Platform 0.7.1
257 --------------------------------------
258
259 Compatibility:
260
261 * Requires leap_cli version 1.7.4
262 * Requires bitmask client version >= 0.7
263 * Previous releases supported cookies when using the provider API. Now, only
264   tokens are supported.
265 * Includes:
266   * leap_mx 0.7.0
267   * tapicero 0.7
268   * webapp 0.7
269   * soledad 0.7
270
271 Commits: https://leap.se/git/leap_platform.git/shortlog/refs/tags/0.7.1
272 Issues fixed: https://leap.se/code/versions/159
273
274 Upgrading:
275
276 * `gem install leap_cli --version 1.7.4`.
277 * `cd leap_platform; git pull; git checkout 0.7.1`.
278 * `leap deploy`
279 * `leap test` to make sure everything is working