This document discusses DevOps workflows using OpenShift and ManageIQ. It describes using GitLab for source code management, CI/CD, and collaboration. OpenShift is used as a platform for deploying and managing containerized applications. ManageIQ orchestrates provisioning of the DevOps tools including FreeIPA for authentication, GitLab, and OpenShift. The ecosystem is integrated through a CI/CD pipeline that builds, tests, reviews, and deploys code changes from a Git repository to OpenShift.
2. About this prezo
Fabien Dupont
Red Hat France - Cloud Architect
Working with CloudForms since 2.5 years
Use case identified during customer delivery
2
11. Ecosystem / FreeIPA
11
Integrated security information management solution
Provides centralized authentication, authorization and account information
Based on standards open source implementation :
- LDAP - 389 Directory Server
- DNS - Bind w/ LDAP backend
- Kerberos - MIT
- PKI - Dogtag
Along with CLI and web interface.
Bi-directional Active Directory integration.
⇒ Used for consistent authentication, DNS and certificates.
12. Ecosystem / GitLab
12
The core of our configuration management:
- Source code management, based on Git
- Tickets management: issues, enhancements, whatever...
- Code review through Merge Requests
- Continuous Integration engine
13. Ecosystem / OpenShift Origin
13
Platform-as-a-Service
- Leverages Docker & Kubernetes to deploy applications seemlessly
- Build your container from Source (Git) or Dockerfiles
- Deploy any Docker image with advanced scheduling
- Manage your application lifecycle: blue/gree, A/B, etc…
- Integrate with Eclipse
15. 15
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Collaboration
Coding ⇒ Vim (what else?)
Kanban ⇒ GitLab Kanban Board
Docs ⇒ GitLab Wiki
Pastebin ⇒ GitLab Snippets
Ticketing ⇒ GitLab Issues
Chat ⇒ GitLab Mattermost
CI/CD Process
16. CI/CD Process
16
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Asset Management
Code/Config ⇒ GitLab Repos
Docs ⇒ GitLab Wiki
Policy/Rules ⇒ ManageIQ
17. CI/CD Process
17
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Continuous Integration
GitLab-CI
18. 18
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Code/Image Build
OpenShift Source-to-Image
CI/CD Process
19. 19
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Review / Approval
GitLab Merge Requests / Issues
CI/CD Process
20. 20
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Delivery
Images ⇒ Docker, ImageStream
Applications ⇒ OpenShift Template
CI/CD Process
21. 21
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Code/Image Build
OpenShift DeploymentConfig
CI/CD Process
22. 22
Project
Repo
Build Test Review Deliver DeployMy
Repo
Monitor
Build
Repo
Release
Repo
Third
Party
CI CD
Local Test
commit push
pass / fail
Tomcat, Wildfly, JBoss, MySQL, MongoDB,
Vert.x, Node.js, Docker, ActiveMQ,
FeedHenry, etc...
CI/CD Process
25. Implementation details
Serialize data in Automate tree as instances ⇒ waiting for generic objects
Deploy children services from buttons and REST API
Lot of rework on dialogs along the time, to reduce the number of questions
Test, test, test… Thanks to the API.
25
28. Next steps
Create a Mattermost team per project
Allow for more Lifecycles (don't assume)
Deploy .gitlab-ci.yml for each lifecycle
Anything from field feedback...
28