Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement jsonrpc2 agent behind feature flag #1954

Merged
merged 11 commits into from
Mar 15, 2017

Conversation

bradrydzewski
Copy link

@bradrydzewski bradrydzewski commented Mar 5, 2017

This can be enabled by passing the DRONE_CANARY=true environment variable to the agent and the server. This will use a jsonrpc2 protocol for agent to server communication and a simplified queue and log manager, replacing the former mq package.

The purpose of this chance is improved scalability and reliability. The agents are better equipped to recover from failures and less likely to end up in an inconsistent state. This also introduces a new yaml parser and compiler, which should enable compatibility with other yaml files (compatibility with gitlab, bitbucket pipelines, travis, etc) and with multiple runners (kubernetes, docker, etc)

This alternate implementation has a number of issues and missing features.

  • re-enable secret concealing
  • re-enable log limits
  • make sure all drone_ environment variables still exist
  • handle yaml parsing and lint failures
  • extra blank lines in build output
  • drone-exec not yet implemented. old code still executed
  • re-start existing build not yet implemented. old code still executed
  • cancel build is not yet hooked up
  • github status link may be blank or incorrect (ask brad for more detail)

This alternate implementation does contain breaking changes:

  • services are now accessed by hostname (similar to docker-compose) instead of localhost
  • secrets are only interpolated

The following items need more testing:

  • secrets
  • service containers and linking
  • restart with fork

Please note this patch does not impact existing installations unless you set the DRONE_CANARY flag. If you do not set this flag this patch will not impact your existing installation.

@tboerger
Copy link

tboerger commented Mar 6, 2017

Awesome stuff!

@bradrydzewski
Copy link
Author

merging initial implementation behind feature flag

@bradrydzewski bradrydzewski merged commit fe669b7 into harness:master Mar 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants