1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
[[!meta title="Road map"]]
This is the road map for ick development. It does not stretch very far,
because predicting the future is difficult. This road map also doesn't
give any dates, this is a hobby project. It's also open for discussion.
Ick is now usable by others. If you try ick and have problems, do tell
us, see the [[contact]] page for contact information.
Ick is by no means an abandoned project, but we're taking a breather
while waiting for other developments. Most importantly, ick will want a
web UI, and that and other features will require end-user
authentication. The Qvisqve software ick uses for authentication will
be getting that support in 2018. Once it does, ick will start adding
support for that.
Until then, the plan is to make small, incremental improvements to
ick, fix bugs, improve documentation, smooth rough corners, and
gather experience on using ick.
The long-term goal is to develop ick into a hosted service, which can
be run on a commercial basis, without compromising on software
freedom.
# Roadmap towards hosted ick
```roadmap
hosted_demo:
label: |
Lars run a hosted
demo service for
himself and users
depends:
- user_friendly
- secure_from_users
- secure_for_users
- on_demand_workers
- trigger_service
- multiarch
user_friendly:
label: |
Ick is reasonably
user friendly to
techies.
depends:
- webui
- self_registration
multiarch:
label: |
Ick supports building
for multiple
architectures.
depends:
- worker_tags
- concurrency
secure_from_users:
label: |
Ick is safe and
secure from users
doing silly things.
depends:
- networkless_containers
secure_for_users:
label: |
Ick is secure for
users to use.
depends:
- isolation
- secrets
secrets:
label: |
Ick provides a way to
securely use secrets:
ssh keys, pgp keys,
Qvisqve access
tokens.
depends:
- owned_resources
networkless_containers:
label: |
Containers have, by
default, no network
access. Trusted users
can allow specific
builds to have
network access in
containers.
depends:
- owned_resources
concurrency:
label: |
Ick can execute
several actions in
the same build
concurrently.
depends:
- worker_tags
worker_tags:
label: |
Ick allows projects
and workers to have
tags, and can choose
which worker to give
an action to, based
on tags
on_demand_workers:
label: |
Ick can create
and destroy
workers on demand
depends:
- worker_tags
trigger_service:
label: |
Ick can trigger
multiple builds when
a git repo changes,
or when an ick build
finishes, or after
some time has passed
isolation:
label: |
Users can only see,
manipulate their own
data
depends:
- owned_resources
owned_resources:
label: |
Each resource is
owned by its creator
self_registration:
label: |
Users can create
an account by themselves
via a web browser
depends:
- webui
webui:
label: |
Ick has a web UI
that allows creation,
updating, triggering
of projects, builds,
viewing status, logs
```
# Roadmap legend
```roadmap
goal:
label: |
This is the end goal:
if we reach here, there
is nothing more to be
done in the project
depends:
- finished
- blocked
finished:
status: finished
label: |
This task is finished;
the arrow indicates what
follows this task (unless
it's blocked)
ready:
label: |
This task is ready
to be done: it is not
blocked by anything
next:
status: next
label: |
This task is chosen
to be done next
blocked:
label: |
This task is blocked
and can't be done until
something happens
depends:
- ready
- next
```
|