Cirrus-ci-docs: Persistent Workers

Created on 23 Apr 2019  路  8Comments  路  Source: cirruslabs/cirrus-ci-docs

Once #108 is ready and one can execute Cirrus CI builds locally, we should consider to extend the CLI to be able act as a traditional CI agent.

This will allow customers to connect existing on-prem infrastructure to Cirrus CI. Currently several use cases are foreseen:

  • Connect existing pre-configured macOS machines.
  • Connect existing ARM machines or machines with exotic operation systems that are not supported by clouds.

Each worker will have a set of labels and tasks will be able to configure labels of workers to be scheduled on:

task:
  worker:
    os: darwin
    attached_device: true
    device_model: iPhoneXS
feature high-priority

Most helpful comment

@james-crowley are you still interested in s390x support? Persistent workers will be available in the next few weeks. Front end part is ready in https://github.com/cirruslabs/cirrus-cli, working on the backend part right now.

All 8 comments

@fkorotkov I would love to see this functionality flushed out. If you need help on the s390x or ppc64le side of this, please let me know!

@james-crowley will do! This part will be fully OSSed so in case of any issues will reach out to you. 馃檶

@fkorotkov Do you have an ETA on when persistent workers might appear? When they do I am more then willing to test them out on my resource over at IBM. Or I could set you up with resources on the LinuxONE, that you would have control over. Either way, let me know where I can help!

108 is a prerequisite for persistent workers since workers will use it to run tasks. CLI is planned for this quarter and workers will follow in Q1.

@james-crowley are you still interested in s390x support? Persistent workers will be available in the next few weeks. Front end part is ready in https://github.com/cirruslabs/cirrus-cli, working on the backend part right now.

@fkorotkov Thanks for tagging me again. Super excited to see that persistent workers closer to being released.

As for the persistent workers, what language will the agents/workers be written in? Golang? If so, the porting work should be next to nothing since Golang has a cross compiler for s390x, ppc64le, arm64, etc.

Let me know how I can help test the feature as it nears release. Happy to spin up a worker on s390x and ppc64le!

@james-crowley wonderful! Yes, the persistent worker parts is written in Go. There are two parts:

  1. Cirrus Agent that executes instructions like running script, downloading/uploading caches, etc.
  2. Cirrus CLI which will act as Persistent Worker: poll for new jobs and call the agent to execute them.

Both are written in pure Go so should be very easy to cross compile. I'm planning to test it on Apple Silicon this week and once it's ready for further testing I'll ping you with instruction. Thank you for willingness with helping to test it out!

@fkorotkov Thanks for the new. Happy to see that everything is written in Golang!

Look forward from hearing from you later this week or next!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

januswel picture januswel  路  4Comments

cjdb picture cjdb  路  5Comments

dotdoom picture dotdoom  路  4Comments

plicease picture plicease  路  5Comments

iskakaushik picture iskakaushik  路  5Comments