Return-Path: X-Original-To: distix@pieni.net Delivered-To: distix@pieni.net Received: from yaffle.pepperfish.net (yaffle.pepperfish.net [88.99.213.221]) by pieni.net (Postfix) with ESMTPS id 87451406BF for ; Sat, 15 Dec 2018 14:20:45 +0000 (UTC) Received: from platypus.pepperfish.net (unknown [10.112.101.20]) by yaffle.pepperfish.net (Postfix) with ESMTP id 6CA5741924 for ; Sat, 15 Dec 2018 14:20:45 +0000 (GMT) Received: from ip6-localhost.nat ([::1] helo=platypus.pepperfish.net) by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian)) id 1gYAo9-0001JV-CL; Sat, 15 Dec 2018 14:20:45 +0000 Received: from koom.pieni.net ([88.99.190.206] helo=pieni.net) by platypus.pepperfish.net with esmtpsa (Exim 4.80 #2 (Debian)) id 1gYAo8-0001JK-UM for ; Sat, 15 Dec 2018 14:20:45 +0000 Received: from exolobe1.liw.fi (unknown [194.157.43.230]) by pieni.net (Postfix) with ESMTPSA id 63D31406BF for ; Sat, 15 Dec 2018 14:20:44 +0000 (UTC) Received: from exolobe1.liw.fi (localhost [127.0.0.1]) by exolobe1.liw.fi (Postfix) with ESMTPS id DEAB111F9AF for ; Sat, 15 Dec 2018 16:20:43 +0200 (EET) Date: Sat, 15 Dec 2018 16:20:42 +0200 From: Lars Wirzenius To: ick-discuss@ick.liw.fi Message-ID: <20181215142042.GJ2810@exolobe1.liw.fi> MIME-Version: 1.0 User-Agent: Mutt/1.10.1 (2018-07-13) X-Pepperfish-Transaction: d12a-266a-29a4-8613 X-Pepperfish-Transaction-By: platypus Subject: Migrating to a new Ick: tooling X-BeenThere: ick-discuss@ick.liw.fi X-Mailman-Version: 2.1.5 Precedence: list List-Id: discussions about the ick CI system List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============4745465680387889264==" Mime-version: 1.0 Sender: ick-discuss-bounces@ick.liw.fi Errors-To: ick-discuss-bounces@ick.liw.fi --===============4745465680387889264== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="pWOmaDnDlrCGjNh4" Content-Disposition: inline --pWOmaDnDlrCGjNh4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Consider this scenario: you are using an Ick instance and have some projects and pipelines configured, and have run a number of builds, and have some artifacts. You'd like to move all of that to a new instance. You might want to move because of cost, or better reliability, or because you want to start using a new version of Ick. The last one is relevant to me, as I'm contemplating changing how Ick stores data and to use Muck for that in the future. This will be necessity requires setting up a new instance and moving all data to that. (I'm not willing to consider migrating an existing Ick instance in place to use Muck. There's too much risk of that going wrong.) The basic approach I'm thinking is to have icktool be able to dump all data from an Ick instance to a file, and then "undump" from that file to another Ick instance. This will also give users a way to backup and restore their Ick data. The commands would be something like: icktool dump > dump.yaml icktool undump < dump.yaml The data in an Ick instance is: * projects * pipelines * information about builds and their logs * artifacts Projects and pipelines are reasonably easy, and can already be done with the current controller API. The only niggle will be setting ownerships of resources, and that's something that isn't even relevant yet, and will have to wait until Muck is used, because there isn't any ownership yet. Builds and build logs are tricky: currently the controller API does not allow creating such resources. I'm not sure if it's worth allowing migration of that. Artifacts can be handled with the current API, but are not nearly as important as projects and pipelines. To keep things simple, I'm thinking that we should start with just projects and pipelines, and see how it goes. We can add the rest later, if and when needed. My immediate need is to have something to allow me to replace the current Ick demo instance, and my personal instance, with a new version that uses Muck to data managed by the controller. For this, projects and pipelines should be enough. Thus, for the next iteration, I am suggesting we implement "icktool dump" to produce a YAML file in a format that "icktool make-it-so" can read. Thus "make-it-so" is the implementation of the "undump" sketched above. Opinions? --=20 I want to build worthwhile things that might last. --joeyh --pWOmaDnDlrCGjNh4 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEETNTnrewG6wEE1EJ3bC+mFux6IDEFAlwVDbkACgkQbC+mFux6 IDHUgRAAipG/YSjRur8sA/JdxmKV8Q/UXpFeyAvrSFd98nmz6k28SMA+28JMz4n4 ry35F1rsT2Ur9RvrNW5srFFaHWiv74mdd396btaT56Hcx0B16OSnclRfb2CsdS4H MOMOcopRCwSDOuLbMV14XH84UcZmgQn/zZUuS21npcGy9xOQujl7GlWWdmTOb2wX wyeCQmPCSQDt13NtKPw7gyDKDcPTFwEwR1ohUE1QvxVZKFgvMj6qBPI84HSQJ17y oU6KPCK+38hWg4qpUaGkJllSLLthAN6fRTHmYIhyjLcYDNYj8XAr8cYyyMLBfG+z eEOJ+mAU5ZVkpQz31IYJ2z8bUsy7MDNZ7QBe6M3Ewj+G9W1y2I4dOtI2aP/be65M 7dE9HoUGVUEAtxd3TbglSfOcE/JvAxpDrPoeWdGO25MFE1WbYofdHtuk7F/9gqq/ NtJ/vGZNvw7xkx1sclZMI0w9VfmnDJVIKXBIfycDgE0YLjnTOjSBv7wTwofHZkEy +hqogFxY+MiEWIFjxNMlgRPWfjaptmATY8UJfKJ2JqwwsI5rBLx0STBwBH0rxd6c RDa7rKo5LA6JNR91CrmAqyd3m1p6gHM6H0UnINbalrPMt6XrKTtF310v17s/N2QV wUNqDdTjapvZwqmNGY4TzVzq+5xQz68pTzpo2e27i6/RLOIer/c= =Q9Yt -----END PGP SIGNATURE----- --pWOmaDnDlrCGjNh4-- --===============4745465680387889264== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ick-discuss mailing list ick-discuss@ick.liw.fi https://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/ick-discuss-ick.liw.fi --===============4745465680387889264==--