|
1 | 1 | # Change Log
|
2 | 2 |
|
3 |
| -## 0.9.0 RC 3 |
4 | 3 |
|
5 |
| -This release candidate reverses the proposed split in binaries for Krill CA and Publication Server |
6 |
| -functions. Separate binaries were introduced in an effort to make things less confusing to end-users, |
7 |
| -meaning we would not show functions that most users do not need. However, it seems that the benefits |
8 |
| -to users who use Krill for CA functions only were marginal, at the expense of complicating operations |
9 |
| -for Publication Server users significantly. |
| 4 | +## 0.9.0 'One for All' |
10 | 5 |
|
11 |
| -Updated documentation for this version is available here: |
12 |
| -https://krill.docs.nlnetlabs.nl/en/v0.9.0rc3/ |
| 6 | +This is the first major release of Krill in a while. |
13 | 7 |
|
14 |
| -In addition to this a number of smaller issues were resolved as well: |
15 |
| -- Optimistic rebuild in case of surplus events found (#530) |
16 |
| -- Reschedule failures *after* the time to check again has passed, not before! (#524) |
17 |
| -- The UI translations have now been updated (#381) |
| 8 | +While basic ROA management is unchanged, there were many changes under the hood: |
18 | 9 |
|
19 |
| -Unfortunately we could not find any volunteers to help us with the French translations of new strings |
20 |
| -in the UI. The UI will fall back to English for these items. If you are a native French speaker and |
21 |
| -would like to help out, please let us know. |
| 10 | +- Multi-user support in the User Interface (local users or OpenID Connect) |
| 11 | +- Reduce disk space usage and growth over time |
| 12 | +- API and naming consistency (in preparation for 1.0 in future) |
| 13 | +- Publication Server improvements (to whom it may concern) |
| 14 | +- Many small improvements and minor bug fixes |
22 | 15 |
|
| 16 | +For a full list of issues that were included in this release see: |
| 17 | +https://github.com/NLnetLabs/krill/projects/4 |
23 | 18 |
|
24 |
| -## 0.9.0 RC 2 |
| 19 | +Updated documentation is available here: |
| 20 | +https://krill.docs.nlnetlabs.nl/en/stable/index.html |
25 | 21 |
|
26 |
| -This release candidate fixes a number of issues introduced in 0.9.0-rc1: |
| 22 | +With multi-user support you can now give people in your organization individual access rights to |
| 23 | +your CA - and they no longer need to share a password. If you have an OpenID Connect provider then |
| 24 | +you can integrate Krill with it. Read more here: |
| 25 | +https://krill.docs.nlnetlabs.nl/en/stable/multi-user.html |
27 | 26 |
|
28 |
| -- Log migration progress and speed up process (#503) |
29 |
| -- Rename auto-renewal commands in history (#501) |
30 |
| -- Re-issue objects properly during a key rollover (#509) |
31 |
| -- Withdraw objects when removing a parent (#508) |
| 27 | +Krill versions before 0.9.0 keep a lot of data around that is not strictly needed. This can clog up |
| 28 | +your system *and* it makes the Krill history difficult to parse. History can seen using `krillc history`. |
| 29 | +We will include support for inspecting history in the UI soon. |
32 | 30 |
|
33 |
| -Furthermore we made the following improvements: |
| 31 | +There were some API and CLI changes introduced in this release. Over time things had become a bit |
| 32 | +inconsistent and we felt we needed to fix that before we can consider going for the Krill 1.0 release. |
| 33 | +If you are using automation then these changes may break your current integrations. Please have a |
| 34 | +look at the following page to see if and how this affects you: |
| 35 | +https://krill.docs.nlnetlabs.nl/en/stable/upgrade.html |
34 | 36 |
|
35 |
| -- Report *which* file/dir was involved in case of I/O errors (#495) |
36 |
| -- Change HTTP access log to 'debug'. Use KRILL_HTTP_LOG_INFO=1 if you want 'info' (#513) |
37 |
| -- Refine logging command / change logging (#518) |
38 |
| -- Improve certificate request logic and logging (#514) |
| 37 | +Note that your Krill data store will be upgraded automatically if you upgrade to this release. This |
| 38 | +upgrade can take some time, up to around 30 minutes dependent on the amount of history which accumulated |
| 39 | +over time and the speed of your system. During the migration you will not be able to update your ROAs, |
| 40 | +but your existing ROAs will remain available to RPKI validators. I.e. there is no downtime expected |
| 41 | +with regards to RPKI validation. |
39 | 42 |
|
40 |
| -Regarding certificate request logic and logging. Krill CAs will now report *which* new resources |
41 |
| -were received from, or removed by a parent. As part of this change we also fixed a harmless, |
42 |
| -but annoying, bug in certificate request logic. Krill would wrongfully report that a parent had |
43 |
| -reduced the eligible 'not after' time, when in fact it had extended it, and then request the |
44 |
| -new certificate regardless. Krill will now report correctly, and will only request a new certificate |
45 |
| -if the new 'not after' time is more than 10% further into the future compared to the current certificate. |
46 |
| -This is safe and will reduce noise levels where parent CAs use a simple strategy which returns a |
47 |
| -new 'not after' time for every request. |
| 43 | +We have tested this on various (big) Krill instances running CAs as well as Publication Servers. Still, |
| 44 | +we recommend that you make a backup of your data store before upgrading. In case the upgrade should |
| 45 | +unexpectedly fail for you, please restore your old data, run the previous binary, and contact us so |
| 46 | +that we can make a fix. Alternatively, copy your data except for the `keys` directory to a test system |
| 47 | +and then use the new Krill binary there with the following env variable set so you can test the data |
| 48 | +migration: |
48 | 49 |
|
49 |
| -The UI also received some fixes: |
50 |
| -- Show the repository status properly (introduced in 0.9.0-rc1) |
51 |
| -- Update the link to documentation |
52 |
| -- Show the alert banner for new versions only for 'production' version |
| 50 | + KRILL_UPGRADE_ONLY=1 |
53 | 51 |
|
54 |
| -## 0.9.0 RC 1 |
55 |
| - |
56 |
| -This release introduces a number of breaking API changes as well as new functionality. We invite users |
57 |
| -to test this release and contact us in case of any issues, comments or questions. |
58 |
| - |
59 |
| -A quick overview of the main points: |
60 |
| - |
61 |
| -- API |
62 |
| - |
63 |
| -If you are currently using the CLI and/or API for automation please check the updated documentation here: |
64 |
| -https://krill.readthedocs.io/en/latest/cli.html |
65 |
| - |
66 |
| -- Data Migration |
67 |
| - |
68 |
| -This new release includes an automated migration and clean up of existing data. We have tested this |
69 |
| -migration of course, but still we would very much like to encourage existing users to help us test |
70 |
| -this further on real data. |
71 |
| - |
72 |
| -In order to test the upgrade you can do the following: |
73 |
| -- install Krill 0.9.0-rc2 on a test machine |
74 |
| -- copy over your existing data directory, but exclude the `keys` directory |
75 |
| -- set the ENV variable KRILL_UPGRADE_ONLY |
76 |
| -- start krill v0.9.0-rc1 using your copied data directory |
77 |
| - |
78 |
| -A minimal Krill config file to achieve this would be: |
79 |
| -``` |
80 |
| -data_dir = "/path/to/your/copied/data" |
81 |
| -admin_token = "secret" |
82 |
| -``` |
83 |
| - |
84 |
| -If all goes well you should see the message: |
85 |
| -``` |
86 |
| - Krill upgrade successful |
87 |
| -``` |
88 |
| - |
89 |
| -Note, by excluding the `keys` directory you make sure that this new Krill instance cannot do anything |
90 |
| -with your current private keys. E.g. it cannot publish anything or request certificates from your |
91 |
| -parent CA. |
92 |
| - |
93 |
| -If there are any issues please let us know so that we can resolve these issues before we finalize the |
94 |
| -Krill v0.9.0 release. If you would like us to test your data instead then please contact us. We will |
95 |
| -then ask you to give us a tar ball of your data directory - again excluding the `keys` directory. |
96 |
| - |
97 |
| -- Publication Server |
98 |
| - |
99 |
| -The Krill Publication Server now uses its own binaries for the server and CLI. If you are using Krill |
100 |
| -to host your own Publication Server, then please have a good look at the section below called |
101 |
| -"Separate binary for Publication Server". Most importantly, be aware that the new binaries `krillpubd` |
102 |
| -and `krillpubc` are not included in the debian packages or Docker images for the moment. We have |
103 |
| -two open issue to resolve this before the 0.9.0 release (#361 and #490 respectively). For the moment |
104 |
| -you will need to use `cargo` to install these binaries as described here: |
105 |
| - |
106 |
| -https://krill.readthedocs.io/en/latest/install-and-run.html |
107 |
| - |
108 |
| - |
109 |
| -Please read below for more details! |
110 |
| - |
111 |
| - |
112 |
| -### Breaking Changes |
113 |
| - |
114 |
| -This is release includes breaking changes in the Krill API. In addition to this we have also added |
115 |
| -dedicated binaries for running your own Publication Server (`krillpubd`) and its own CLI (`krillpubc`). |
116 |
| -You will also find that a number of commands of `krillc` have been changed or moved around. While |
117 |
| -we take no pleasure in introducing such breaking changes to users we felt that they were necessary |
118 |
| -for the future maintainability and useability of Krill. Furthermore, with these changes we believe |
119 |
| -that we will be on track for a 1.0.0 release in the near future. |
120 |
| - |
121 |
| -If you were using the CLI or API for automation please have a look at the updated documentation here: |
122 |
| -https://krill.readthedocs.io/en/latest/cli.html |
123 |
| - |
124 |
| - |
125 |
| - |
126 |
| -### Login with Named Users |
127 |
| - |
128 |
| -The Krill User Interface now has support for named users. Until version 0.8.2 Krill had |
129 |
| -one admin token that was used by the CLI, API and UI. Now you can configure multiple users |
130 |
| -using a local configuration file, or an OpenID Connect provider and have different access |
131 |
| -restrictions for every user. The CLI still relies on a single admin token. |
132 |
| - |
133 |
| -You can read more about this new feature here: |
134 |
| -https://krill.readthedocs.io/en/latest/multi-user.html |
135 |
| - |
136 |
| - |
137 |
| -### Data Usage and History |
138 |
| - |
139 |
| -Krill uses an event sourced architecture, meaning that its current state is the direct result of |
140 |
| -all past events that occurred. Rather than just persisting the current state itself, it can |
141 |
| -be rebuilt based on those events. We believe that this is an important feature, because it |
142 |
| -ensures by definition that the history, or audit log, of past events explains the current state |
143 |
| -of Krill CAs. So, this is very attractive from a security and accountability perspective. |
144 |
| - |
145 |
| -Krill history until version 0.8.2 has been growing excessively because every RPKI CA has to |
146 |
| -republish new Manifests and CRLs regularly as a protection against potential replay attacks. |
147 |
| -Over time this results in a lot of changes, and a lot of history. |
148 |
| - |
149 |
| -However, the changes resulting from the republication of Manifests and CRLs are not really |
150 |
| -interesting in the long term because they do not reflect any semantic changes resulting from |
151 |
| -user actions, or interactions between CAs and their parent or child CAs. |
152 |
| - |
153 |
| -Therefore we decided to change the Krill architecture to a hybrid event-sourcing model. All |
154 |
| -changes, except republication, are still tracked as commands and events in the Krill history. |
155 |
| -So there is a complete overview of all semantically important changes maintained. |
156 |
| - |
157 |
| -As a result of this the amount disk space used by Krill is reduced significantly. When you |
158 |
| -upgrade to Krill 0.9.0 your existing history will be migrated and cleaned up automatically. |
159 |
| - |
160 |
| - |
161 |
| -### Master Token is now Admin Token |
162 |
| - |
163 |
| -See issue #433. Up until now Krill was using an array of inconsistent and inappropriate |
164 |
| -names to refer to the token that can be used for authentication and authorization. We have |
165 |
| -now renamed all these references to "ADMIN TOKEN". |
166 |
| - |
167 |
| -This means that the `auth_token` in the `krill.conf` file was renamed to `admin_token`, |
168 |
| -The env variable alternative for the Krill daemon was renamed from `KRILL_AUTH_TOKEN` |
169 |
| -to `KRILL_ADMIN_TOKEN`. |
170 |
| - |
171 |
| -In this release Krill will still support the old names, but we may remove this support |
172 |
| -in a future release. |
173 |
| - |
174 |
| -### Separate binary for Publication Server |
175 |
| - |
176 |
| -Krill now has a dedicated binary for running an RPKI Publication Server, and a dedicated CLI |
177 |
| -for managing it: `krillpubd` and `krillpubc`. |
178 |
| - |
179 |
| -We believe that having dedicated binaries for this purpose will make Krill easier to manage |
180 |
| -for the vast majority of operators who do not need to run their own Publication Server. And |
181 |
| -for operators who do need to run their own Publication Server, this will make it easier to |
182 |
| -manage different access control settings for their Krill Publication and CA Servers, and it |
183 |
| -will make it easier to migrate or phase out Publication Servers in future. |
184 |
| - |
185 |
| -#### Migration for existing users |
186 |
| - |
187 |
| -If you are using Krill to operate a CA only, and you use third party service for your RPKI |
188 |
| -repository, then this change does not affect you. |
189 |
| - |
190 |
| -- Dedicated Mode |
191 |
| - |
192 |
| -If you are running a dedicated Krill instance to operate your own publication server, you should |
193 |
| -start it using the newly provided binary 'krillpubd' instead of 'krill'. You can use the same |
194 |
| -configuration file and data directory that you were using until now. |
195 |
| - |
196 |
| -- Mixed Mode |
197 |
| - |
198 |
| -If you are running Krill in a "mixed mode" where you operate both one or more CAs **and** you have |
199 |
| -an embedded repository server then no action is required at this time. You can continue to use the |
200 |
| -`krill` binary and your current configuration file and data directory. |
201 |
| - |
202 |
| -You will be required to run a separate `krill` binary for your CA(s) and `krillpubd` for your |
203 |
| -Publication Server in a future release, when we have implemented this [open issue](https://github.com/NLnetLabs/krill/issues/480) |
204 |
| -to allow existing CAs to migrate to using a new repository by doing a specialized key roll. |
205 |
| - |
206 |
| -### Other fixes |
207 |
| - |
208 |
| -ROAs will now be recreated if your CA lost a prefix, and gets it back later. This will help in |
209 |
| -the rather unlikely case that a parent CA temporarily removed one of your resources in error. (#96) |
210 |
| - |
211 |
| -Let the Publication Server write the notification.xml file to a new file, and then rename it. |
212 |
| -This prevents that Relying Parties can retrieve a half-written file. (#352) |
| 52 | +Finally, note that you need to run at least Krill 0.6.0 in order to upgrade. If you run an older version |
| 53 | +you will need to upgrade to version 0.8.2 first. |
213 | 54 |
|
214 | 55 | ## 0.8.2 'Can't touch this'
|
215 | 56 |
|
|
0 commit comments