CI/CD

Dynamically Creating Java Keystores in OpenShift

Dynamically Creating Java Keystores in OpenShift

Introduction

With a simple annotation to a service, you can dynamically create certificates in OpenShift.

Certificates created this way are in PEM (base64-encoded certificates) format and cannot be directly consumed by Java applications, which need certificates to be stored in Java KeyStores.

In this post, we are going to show a simple approach to enable Java applications to benefit from certificates dynamically created by OpenShift.

Continue reading “Dynamically Creating Java Keystores in OpenShift”

Share
Building Declarative Pipelines with OpenShift DSL Plugin

Building Declarative Pipelines with OpenShift DSL Plugin

Jenkinsfiles have only become a part of Jenkins since version 2 but they have quickly become the de-facto standard for building continuous delivery pipelines with Jenkins. Jenkinsfile allows defining pipelines as code using a groovy DSL syntax and checking it into source version control which allows you to track, review, audit and manage the lifecycle of changes to the continuous delivery pipelines the same way that you manage the source code of your application.

Although the groovy DSL syntax which is called the “scripted syntax” is the more well-known and established syntax for building Jenkins pipelines and was the default when Jenkins 2 was released. Support for a newer declarative syntax is also added since Jenkins 2.5 in order to offer a simplified way for controlling all aspects of the pipeline. Although the scripted and declarative syntax provides two ways to define your pipeline, they both translate to the same execution blocks in Jenkins and achieve the same result.

Continue reading “Building Declarative Pipelines with OpenShift DSL Plugin”

Share
How to configure persistent storage with OpenShift or Kubernetes for development environment

How to configure persistent storage with OpenShift or Kubernetes for development environment

  • We know that containers in Openshift or Kubernetes don’t persist data. Every time we start an application, it is started in a new container with an immutable Docker image.
    Hence, any persisted data in the file systems is lost when the container stops. Hence if an application or container is rebuilt or restarted than we can’t view previous logs or if we are using containers with mysql or any other database then schema, tables, and all data will be lost, if using any messaging broker than if there is journal file than it will also not persist.
    Hence, these ephemeral containers cannot be used in production environment. In a production environment, we must configure a shared storage.
  • But what about the development environment, because we might not always have enough labs and VM’s available. To rescue we have volume type hostPath, which can be easily set up with Minishift and Minikube.
  • This article will provide details how to setup hostPath volume type.

Continue reading “How to configure persistent storage with OpenShift or Kubernetes for development environment”

Share
Continuous Integration: A “Typical” Process

Continuous Integration: A “Typical” Process

Typical CI process

Typical CI process (source: www.pepgotesting.com)

Continuous Integration (CI) is a phase in the software development cycle where code from different team members or different features are integrated together. This usually involves merging code (integration), building the application and carrying out basic tests all within an ephemeral environment.

Continue reading “Continuous Integration: A “Typical” Process”

Share
A MicroProfile-based microservice on OpenShift Container Platform – Part 1

A MicroProfile-based microservice on OpenShift Container Platform – Part 1

Creating a simple MicroProfile-based microservice and deploying it to OpenShift Container Platform

Eclipse MicroProfile is an open source specification for Enterprise Java microservices. It is a community of individuals, vendors, and organizations collaborating and working on innovative microservices patterns for Enterprise Java within the context of modern development, architectures, and underlying infrastructures, e.g. health checks, fault tolerance, metrics, and security propagation within a cloud environment. Its first release was based on 3 Java EE JSRs/libraries/APIs, but this does not necessarily mean that everything that Eclipse MicroProfile does will be Java EE-centric, some API specifications may end up just being part of MicroProfile, depending on the community itself and the spec leads for Java EE1. For example, the new release of Eclipse MicroProfile 1.1 includes the Config API, which is a non-Java-EE API. One of the goals of the Eclipse MicroProfile project is to innovate so its release schedule is agile compared to a standards body.

Continue reading “A MicroProfile-based microservice on OpenShift Container Platform – Part 1”

Share
The Skinny on Fat, Thin, Hollow, and Uber

The Skinny on Fat, Thin, Hollow, and Uber

“I used WildFly Swarm to shrink my app from 45 megabytes to only 2243 bytes.”

I was recently playing around with various techniques for packaging Java microservices and running on OpenShift using various runtimes and frameworks to illustrate their differences (WildFly Swarm vs. WildFly, Spring Boot vs. the world, etc). Around the same time as I was doing this an internal email list thread ignited discussing some of the differences and using terms like Uber JARs, Thin WARs, Skinny WARs, and a few others. Some folks were highlighting the pros and cons of each, especially the benefits of the thin WAR approach when combined with docker image layers.

Continue reading “The Skinny on Fat, Thin, Hollow, and Uber”

Share
New level of automation with Ansible

New level of automation with Ansible

Ansible is a simple agent-less automation tool that has changed the world for the better. It has many use cases and wide adoption (used by many upstream projects like Kubernetes and there are thousands of rules submitted to Ansible Galaxy). In this article, we are going to demonstrate Ansible. The intention of this article is not to teach you the basics of Ansible, but to motivate you to learn it.

Continue reading “New level of automation with Ansible”

Share
Achieving Deployment Excellence with Red Hat OpenShift.io

Achieving Deployment Excellence with Red Hat OpenShift.io

Recently, the focus on the continuous delivery of value has created a lot of interest in microservices, CI/CD, and containers. The idea is that microservices are small and well defined enough to enable rapid innovation, automated testing, and frequent deployments with minimal risk. This is made possible by adopting continuous integration and continuous delivery pipelines. CI/CD requires the ability to quickly, easily, reliably, and automatically create and tear down complete execution environments. Linux containers address this need by creating lightweight, portable, and isolated runtime environments. It becomes easy to reach the conclusion that the path to digital transform is continuous value delivery via microservices-based on containers and CI/CD.

Continue reading “Achieving Deployment Excellence with Red Hat OpenShift.io”

Share
OpenShift.io Developer Tools Overview – Summit 2017 – The Power of Cloud Workspaces – Part 2

OpenShift.io Developer Tools Overview – Summit 2017 – The Power of Cloud Workspaces – Part 2

Part II of the OpenShift.io Developer Tools overview follows on the heels of the introduction session, this time presented by Pete Muir and Gorkem Ercan. In this session, we are taken through the integrated OpenShift.io Eclipse Che IDE.

Continue reading “OpenShift.io Developer Tools Overview – Summit 2017 – The Power of Cloud Workspaces – Part 2”

Share
OpenShift.io The Gathering – Summit 2017 – Developer Tools, Overview and Roadmap Part I

OpenShift.io The Gathering – Summit 2017 – Developer Tools, Overview and Roadmap Part I

Yesterday, at Red Hat Summit, Red Hat announced OpenShift.io. OpenShift.io is the next generation OpenShift platform, based on OpenShift 3, for building and running applications in the cloud. It gives you complete control of your application’s lifecycle, from build to production– regardless of deploying from source or running a pre-built container.

Continue reading “OpenShift.io The Gathering – Summit 2017 – Developer Tools, Overview and Roadmap Part I”

Share