People

Agenda

  • Discuss and decide goals for this iteration.

Notes

  • This iteration is about doing builds in containers. See the design for more information.

Roadmap for this iteration

@startroadmap
tasks:

  chroot:
    label: "Allow where: chroot"
    status: next

  archives:
    label: "Add archive action"
    depends:
      - chroot
    status: next

  setup_systree:
    label: "Set up systree for pipeline"
    depends:
      - archives
    status: next

  build_in_container:
    label: "Allow where: container"
    depends:
      - setup_systree
    status: next

  feature_complete:
    label: "ick2 is ALHA-1 feature complete"
    depends:
      - build_in_container

  logo:
    label: "Design logo for ick"

  restructure_website:
    label: "Restructure website"

  manual:
    label: "Write a manual"

  marketing:
    label: "Make project appealing"
    depends:
      - logo
      - restructure_website
      - manual

  demo_service:
    label: "Provide ick demo service"
    depends:
      - ansible

  vmimage:
    label: "Provide ick VM image"

  ansible:
    label: "Provide ick Ansible playbook"

  easy_to_try:
    label: "Make ick2 be easy to try"
    depends:
      - demo_service
      - vmimage
      - ansible

  announcement:
    label: "Write an announcement"

  go_public:
    label: "Announce ALPHA-1 publically"
    depends:
      - feature_complete
      - easy_to_try
      - marketing
      - announcement
@endroadmap

Current projects

  • None.

Tasks for this week

Tasks may be part of a project or be random small ones (max an hour) that just need doing.

what project Who estimate(h)
Implement “where: chroot” in actions Lars 1h
Add an archive action Lars 1h
Set up systree for a pipeline Lars 2h
Implement “where: container” Lars 2h
Make a relase Lars 1h
Upgrade production instance Lars 4h
Total Lars 11h

Task descriptions

  • Implement “where: chroot” in actions: Allow pipeline actions to specify that the shell or python code should be run in a chroot, using the workspace as the root directory.

    Acceptance criteria: Manually test a pipeline that runs debootstrap and then an ls command in a chroot in the workspace, and it outputs the right thing.

  • Add an archive action: Add to worker-manager a built-in action to archive the workspace into a tarball, and upload it to the blob service. Take the blob name from the systree_name parameter.

    Acceptance criteria: Manually test that a pipeline with the archive action uploads a blob with the given name, and that the blob looks like it has the right content.

  • Set up systree for a pipeline: Change worker-manager to download the blob named in the pipeline systree field, unpack that into /var/lib/ick/systree.

    Acceptance criteria: A manual test indicates this works.

  • Implement “where: container”: Change worker-manager to allow a shell or python action to be run in a container, if there is a field where: container in the action. The systree should already be created in its directory. Bind mount the workspace directory. Run bash or python3 in the container.

    Acceptance criteria: A manual test indicates this works.

  • Make a relase: Make a relase of Ick. Build .deb packages.

    Acceptance criteria: Packages are available on code.liw.fi.

  • Upgrade production instance: Upgrade the Ick2 server that builds the ick.liw.fi website to the new release. Then change the projects and pipelines to use containers to build using containers.

    Acceptance criteria: A manual test indicates this works.