CI/CD Demo
This demo is intended for advanced audiences. If they aren’t already familiar with git, CI/CD, or IaC concepts they will likely just be confused.
The CI/CD demo consists of:
- Customer or internal entity initiates a change/feature request.
- A developer pushes change to the git repository
- CI starts running, first with a lint pipeline to run syntax checking (this is a unit test)
- After linting succeeds, the
quality-test
pipeline is launched from GitLab CI
- In turn, this launches the corresponding workflow job in Ansible Tower
- (GitLab CI then waits for Tower to finish)
- The “Dev” environment is provisioned with the recently added changes.
- (optional) A merge request is initiated to accept the original change request.
- (optional) An approver uses the successful pipelines (or manually checks the dev environment) to approve the MR.
- (optional) Changes are accepted into master and production is ready to deliver.
- (optional) Using Tower, the production environment is updated via
master
branch.
Takeaways
- Each change pushed (proposed) by developers is integrated into a “Dev” environment where it can be tested.
- Credentials are stored securely in Tower or another credential store ensuring no “manual” intervention or configuration drift with the Dev environment.
- Devs cannot directly access the Dev environment and can only make changes through git.
- Approvers are optional if human-in-the-loop is desired, otherwise the entire process can be automated
- CI/CD with OCP is much cleaner, but ansible allows legacy technology to participate, E.g. network equipment, edge gear, non-contained infra
Demo
Check out the video demonstration:
