
Master OpenShift 4.20 and Docker from scratch, building images, using Docker Compose, and deploying Python, Java, and PostgreSQL apps to production with GitLab scripts.
Learn to manage docker containers and images with commands like docker ps, docker ps -a, docker logs, docker container stop, start, restart, and rm, and docker image rm.
Build a minimal Python Flask app inside a Docker image using a Python 3.12-slim base, copy source, install dependencies, expose port 5000, and view hello world.
Increase crc disk size to prevent OpenShift local out-of-disk-space errors by setting disk-size to 60 gigabytes, then restart and verify with crc config view.
Discover how OpenShift projects, as enhanced namespaces, isolate resources, provide access control, quotas, and project specific settings for dev, test, and more.
Create a new OpenShift project using the command line or the web interface, with optional description and display name metadata, noting sandbox permissions and future discussion of the -dev suffix.
Apply environment suffixes like -dev, -test, and -prod to OpenShift project names to clearly separate environments and support safer access control and CICD automation.
Explore how builds turn source code into container images, how deployments manage replicas, how pods run, how services expose pods, and how config maps inject runtime configuration.
Deploy a flask app on OpenShift using Docker strategy, specifying the repository, branch feat/1, and a context dir flask-api to build and expose via a route.
switch to branch feat/2, patch the BuildConfig to that ref, and trigger a new build with oc start-build in OpenShift 4.20, while enabling production logging with waitress.
Master the oc logs command line interface in OpenShift 4.20 to fetch pod, deployment, and build config logs, control output with --tail, --since, and --follow, and view real-time updates.
Explain how OpenShift's S2i (source to image) builds runnable container images from application source code using a predefined builder image, pulling from Git and creating deployable images without Dockerfiles.
Deploy a python app on OpenShift 4.20 using source to image with a ready image, set startup file via app_file to main.py, and address port mismatch between 5000 and 8080.
Learn how config maps and secrets provide configuration data to applications in Kubernetes and OpenShift, enabling runtime configuration changes without rebuilding images, and how secrets safeguard sensitive values.
Inject config map based environment variables into an OpenShift deployment using oc set env, updating deployment YAML to use a lowercase app_version and verify via pod restarts and logs.
Create a config map from a file using the oc create config map command with --from-file, using relative paths and supporting multiple files like config.yaml and config-test.yaml for deployment mounting.
Learn how to mount a whole config map folder as a volume in OpenShift, create the folder automatically, manage multiple volumes, and refresh deployments to access the config files.
Remove and modify volumes in OpenShift 4.20 using the CLI and web console: use oc set volume --remove --name flask-api-b-second-volume, or edit the deployment with oc edit or oc patch.
Create and manage OpenShift secrets with oc create secret, explore docker registry, generic, and TLS types, and learn to view and decode base64 encoded secret data.
Deploy a private gitlab repository to OpenShift 4.20 with docker strategy, using a gitlab-secret secret, and exposing a route via CLI or cluster UI.
Hello!
as part of this course we will be working with OpenShift 4.20.5.
There are actually no special prerequisites for this course, apart from internet access and a willingness to learn :).
All topics are explained as accurately as possible to avoid generating any additional questions. But - if anything is unclear, requires further clarification, or if a new lecture needs to be added, you are more than welcome to leave a comment under the course or contact me directly via private message.
All materials (scripts, deployed applications) are available in the resources under lectures, provided as links to GitLab repositories.
There are two ways to work with OpenShift during the course:
OpenShift Sandbox, which does not require installing the entire cluster infrastructure on your local machine
OpenShift Local, where we install the cluster locally on your computer — the system requirements for this option are discussed in the course
Throughout the course, we focus on practical application deployment. We don’t just go through dry examples — we actually deploy real applications written in Python and Java.
The applications themselves do not contain complex business logic, as the goal of this course is not to teach programming in these languages, but to learn how to work with OpenShift and containerized applications.
During the learning process, questions will naturally arise, and some topics discussed at a given moment may be difficult to understand. Don’t worry about this — throughout the course, certain topics are intentionally skipped (with a clear note that they will be covered later) in order to focus on other elements first.
In the end, everything should come together into a coherent whole and give you the ability to navigate and work confidently with OpenShift.