Red Hat Training

A Red Hat training course is available for Red Hat Container Development Kit

Release Notes and Known Issues

Red Hat Container Development Kit 3.2

Highlighted features and identified problems in Red Hat Container Development Kit 3.2

Red Hat Developer Group Documentation Team

Abstract

This document lists and briefly describes new and improved features of Red Hat Container Development Kit 3.2. It also contains information about potential problems you may encounter while using the software. Where possible, workarounds are described for identified issues.

Chapter 1. Introducing Red Hat Container Development Kit

Red Hat Container Development Kit is a platform for developing containerized applications — it is a set of tools that enables developers to quickly and easily set up an environment for developing and testing containerized applications on the Red Hat Enterprise Linux platform.

  • Container Development Kit provides a personal Container Development Environment you can install on your own laptop, desktop, or server system. The Container Development Environment is provided in the form of a Red Hat Enterprise Linux virtual machine. The Container Development Environment itself can also be installed in a virtual machine.
  • Container Development Kit includes the same container-development and run-time tools used to create and deploy containers for large data centers.
  • Container Development Kit offers an easy installation method based on the Minishift tool.
  • Container Development Kit is available for the Microsoft Windows, macOS, and Linux operating systems, thus allowing developers to use their favorite platform while producing applications ready to be deployed in the Red Hat Enterprise Linux ecosystem.

Container Development Kit is a part of the Red Hat Developers program, which provides tools, resources, and support for developers who wish to utilize Red Hat solutions and products to create applications, both locally and in the cloud. For additional information and to register to become a part of the program, visit developers.redhat.com.

1.1. Understanding Container Development Kit Documentation

Chapter 2. Release Notes

This section documents the most important features and bug fixes in the Red Hat Container Development Kit 3.2 product.

2.1. Component Versions

Red Hat Container Development Kit 3.2 is shipped with the following versions of the main components:

Table 2.1. Container Development Kit, Component Versions

ComponentVersion

Docker

1.12.6

Docker API

1.24

Kubernetes

1.6.1

OpenShift Container Platform

3.6

2.2. VirtualBox Compatibility

Red Hat Container Development Kit 3.2 has been tested with VirtualBox 5.1.14 and higher, but is known to not work correctly with VirtualBox 5.1.11 or older. Ensure that you have VirtualBox 5.1.12 or higher if you intend to use VirtualBox as your virtualization provider.

2.3. New Features

This section highlights some of the new features offered by Red Hat Container Development Kit 3.2. The new version also contains a number of bug fixes.

Red Hat Container Development Kit 3.2 is a new version of Container Development Kit, which has completely different components as compared to Container Development Kit 2.x. Red Hat Container Development Kit 3.2 contains the Minishift tool, a Red Hat Enterprise Linux 7 ISO, and the oc (OpenShift client) binary for interacting with OpenShift Container Platform.

2.3.1. Minishift

Red Hat Container Development Kit 3.2 is based on Minishift, a command-line tool to provision OpenShift locally for application developers. It supports all native hypervisors and some additional ones:

macOS
Linux
Windows

2.3.2. New Features

  • Multiple instances of Minishift can be created with the profiles feature. Profiles can be created with their own configuration for specific use cases. Profiles may run in parallel or one at a time. See CDK Profiles for more information.
  • Each add-on can have information about which OpenShift version it supports. See OpenShift-Version Semantics for more information.
  • Add-ons can be removed and uninstalled with the minishift addons remove and minishift addons uninstall commands. See Removing Add-ons and Uninstalling Add-ons for more information.
  • oc version 3.7 may be used instead of the default oc version 3.6. CDK cannot download this binary automatically, but it can be downloaded and installed manually. See CDK cannot download the oc binary for OpenShift Container Platform 3.7 for more information.

2.3.3. Technology Previews

Support for these features falls under the Technology Preview Features Support Scope.

  • A new 'che' add-on is now provided. This add-on runs Eclipse Che on top of a CDK-provisioned OpenShift cluster with a single command. See the Che add-on README file for more information.
  • You can assign a static IP to the CDK VM on Hyper-V. CDK will be in an unusable state if the IP of the VM changes after Minishift is started. See Assign IP address to Hyper-V for more information.

2.3.4. Usability Improvements

  • The minishift openshift service command now accepts -u as a short alternative to the --url flag. See Minishift GitHub Issue #928.
  • The --memory flag for minishift start now also accepts values in gigabytes. See Minishift GitHub Issue #1149.
  • The minishift start command now provides more information. See Minishift GitHub Issue #485.
  • The minishift status command has been extended to provide more details. This includes the status of the active CDK VM, the name of the active profile, OpenShift status and version information, and the percentage of VM disk usage.

Chapter 3. Known Issues

This section describes issues that users of Red Hat Container Development Kit 3.2 may encounter, as well as possible workarounds for these issues.

3.1. General Issues

Issues affecting all supported platforms.

3.1.1. Running minishift setup-cdk with --profile prevents creation of the default profile

Running minishift --profile <name> setup-cdk without an existing MINISHIFT_HOME (~/.minishift by default) prevents the setup-cdk command from creating the default minishift profile. This will cause further problems, as CDK expects the default profile to be present.

Workaround: Do not use the global --profile flag with minishift setup-cdk. Always run minishift setup-cdk before any other command for a new installation of CDK.

3.1.2. CDK cannot download the oc binary for OpenShift Container Platform 3.7

Currently, CDK cannot automatically download the oc binary for OpenShift Container Platform 3.7. However, you may manually download the oc 3.7 binary to use it. To do so, follow these steps:

  • Ensure that you have run minishift setup-cdk.
  • Manually download the oc binary for OpenShift Container Platform 3.7 from https://mirror.openshift.com/pub/openshift-v3/clients/.
  • Place the downloaded oc binary in the existing directory for oc in MINISHIFT_HOME/cache/oc/v3.6.173.0.21/.
  • Run CDK with the --ocp-tag flag with the exact version of the oc 3.7 binary. Example:

    $ minishift setup-cdk
    $ curl -O https://mirror.openshift.com/pub/openshift-v3/clients/3.7.9/linux/oc.tar.gz
    $ tar -zxvf oc.tar.gz
    $ cp oc ~/.minishift/cache/oc/v3.6.173.0.21
    $ minishift start --ocp-tag v3.7.9
Note

When creating new profiles, CDK extracts the v3.6.173.0.21 oc binary from minishift rather than copying the oc binary placed in the cache. You must manually add the oc 3.7 binary to the cache for each profile to use OpenShift Container Platform 3.7. Use the following for each profile making use of the oc 3.7 binary:

  • Set the active profile via minishift profile set <profile-name>.
  • Follow the previous procedure using MINISHIFT_HOME/profiles/<profile-name>/cache/oc/v3.6.173.0.21/ as the cached oc location. Example:

    $ minishift profile set example
    $ minishift setup-cdk
    $ cp oc ~/.minishift/profiles/example/cache/oc/v3.6.173.0.21
    $ minishift start --ocp-tag v3.7.9
Important

The --ocp-tag flag for minishift start expects version information in a specific format. Ensure that you prepend the oc version with "v" and replace any dashes with periods for use with the --ocp-tag flag. For example, if your oc version is 3.7.0-0.198.0, use the following:

$ minishift start --ocp-tag v3.7.0.0.198.0

3.1.3. Unable to get information from minishift openshift registry if minishift start fails on the first attempt

The minishift start command only creates the MINISHIFT_HOME/.machines/<vm_name>_kubeconfig file the first time a Minishift VM is started. If the minishift start procedure fails for any reason, this file may not be created. Running minishift start again will not create this file. This causes issues with the minishift openshift registry and minishift openshift service commands.

Workaround: Run minishift delete followed by minishift start to create the required file.

3.1.4. Red Hat password is printed in plain text if registration fails

The command used for registration during minishift start is printed to the console if the registration process fails. This command contains the given Red Hat user name and password in plain text.

Example output:

Error to register VM: ssh command error:
command : sudo -E subscription-manager register --auto-attach --username user@redhat.com --password 'xxxxxxxx'
err     : exit status 1
output  : Registering to: subscription.rhsm.redhat.com:443/subscription
The system has been registered with ID: 9bf93a9c-3615-428d-953d-70803121ebf7

3.1.5. minishift version creates the MINISHIFT_HOME directory

Calling the minishift version command before running minishift setup-cdk causes the default MINISHIFT_HOME directory (~/.minishift) to be created. This leads to minishift setup-cdk prompting for confirmation to overwrite the contents of MINISHIFT_HOME.

Workaround: Type y to confirm. This warning may be ignored.

3.1.6. The "latest" tag is not supported with --ocp-tag

The --ocp-tag flag for the minishift start command does not support the "latest" tag.

Workaround: If you want to use any OCP image other than the default, you need to find the version number of the specific image you want and select that version. You can find the image using --ocp-tag help. The tag will be in the format "v.X.Y.Z".

3.2. Issues on Linux

This section describes CDK issues that affect users on a Linux host.

3.2.1. minishift start fails on systems with a non-English locale

Note

This issue is related to the KVM hypervisor. The VirtualBox hypervisor is not affected.

The pre-flight check used by minishift start will fail if the operating system’s locale is not English. This is due to the check for active libvirt networks testing for English-specific text.

Workaround: Export LC_ALL=C to the shell environment of Linux:

$ export LC_ALL=C
$ minishift start

3.3. Issues on Microsoft Windows

This section describes CDK issues that affect users on a Microsoft Windows host.

3.3.1. Windows Command Prompt and PowerShell improperly parse JSON patches for the minishift openshift config set command

Windows Command Prompt and PowerShell have problems with parsing JSON into the minishift openshift config set command. Special attention is required when using this command on Windows.

The workaround for Windows Command Prompt environments is to escape the quotes so that the JSON content is correctly parsed:

C:\Users\CDK> minishift.exe openshift config set --patch "{\"routingConfig\": {\"subdomain\": \"192.168.99.101.nip.io\"}}"

The workaround for Windows PowerShell environments is to use a variable to store the JSON content:

PS C:\Users\CDK> $json='{\"routingConfig\": {\"subdomain\": \"192.168.99.101.nip.io\"}}'
PS C:\Users\CDK> echo $json
{\"routingConfig\": {\"subdomain\": \"192.168.99.101.nip.io\"}}
PS C:\Users\CDK> minishift.exe openshift config set --patch $json
Patching OpenShift configuration /var/lib/origin/openshift.local.config/master/master-config.yaml with {"routingConfig": {"subdomain": "192.168.99.101.nip.io"}}

3.3.2. minishift openshift config set --patch may fail on some Windows 7 and 10 hosts

The reason for this failure is currently unknown.

Workaround: Configure the OpenShift cluster from inside of the provisioned VM using minishift ssh:

C:\Users\CDK> minishift.exe ssh
[docker@minishift ~]$ docker exec -t origin /usr/bin/openshift ex config patch /var/lib/origin/openshift.local.config/master/master-config.yaml --patch='<json-to-be-applied-to-the-cluster>'

Chapter 4. Additional Resources

Legal Notice

Copyright © 2017 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.