You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently in order to move an environment between pools (to model state changes) we need to perform separate add and remove operations. This has two downfalls:
one operation may fail leaving us with duplicated or deleted environments
one operation may take a long time, leaving us temporarily in a state similar to the above
This could be resolved by implementing a move operation that performs both parts of the move in a single commit/push.
The text was updated successfully, but these errors were encountered:
I have a ConcourseCI pipeline that tries to implement this as much as possible without the ability to have atomic/guaranteed operations.
---
resources:
- name: every-24htype: timesource: {interval: 24h}check_every: 12h
- name: dirty-hardwaretype: pool
- name: clean-hardwaretype: pooljobs:
- name: Pick up a dirty cluster and clean it upplan:
- get: every-24htrigger: true
- put: dirty-hardwareparams: {acquire: true}
- task: Do work# Work here, but deleted for brevityon_failure:
# Work attempt failed, release the lock and try again next timeput: dirty-hardwareparams: {release: dirty-hardware}# Work succeeded, change the hardware state
- put: clean-hardwareparams: {add: dirty-hardware}# Delete the old lock
- put: dirty-hardwareparams: {remove: dirty-hardware}
I have had instances where ConcourseCI itself, under load, has had steps fail due to resource exhaustion - but they've been very very rare.
I know it's not perfect, but this is what I ran into and how I attempted to solve it.
Moved from concourse/concourse#196
cc @xtreme-gavin-enns
Currently in order to move an environment between pools (to model state changes) we need to perform separate add and remove operations. This has two downfalls:
This could be resolved by implementing a move operation that performs both parts of the move in a single commit/push.
The text was updated successfully, but these errors were encountered: