Bug 1782265

Summary: Creating a migplan with a dot in the name causes reconcile failure
Product: OpenShift Container Platform Reporter: John Matthews <jmatthew>
Component: Migration ToolingAssignee: Scott Seago <sseago>
Status: CLOSED ERRATA QA Contact: Xin jiang <xjiang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.2.0CC: jmatthew, sregidor, sseago, xjiang
Target Milestone: ---   
Target Release: 4.2.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 1768667 Environment:
Last Closed: 2019-12-19 15:44:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1768667    
Bug Blocks:    

Description John Matthews 2019-12-11 14:03:41 UTC
+++ This bug was initially created as a clone of Bug #1768667 +++

Description of problem:
Creating a migplan with a dot in the name (or anything other than lowercase alphanumeric characters plus "-") results in a reconcile error

Version-Release number of selected component (if applicable):
CAM 1.0

How reproducible:
Always

Steps to Reproduce:
1. Create a migplan with a dot in the name (i.e. "migplan-1.1")
2. Wait for reconcile.
3. Look at migplan yaml output

Actual results:
Reconcile error is displayed:
    message: 'Reconcile failed: [DeploymentConfig.apps.openshift.io "registry-registry-example-plan-4.2-khf6n"
      is invalid: [spec.template.spec.volumes[0].name: Invalid value: "registry-registry-example-plan-4.2-khf6n-volume-1":
      a DNS-1123 label must consist of lower case alphanumeric characters or ''-'',
      and must start and end with an alphanumeric character (e.g. ''my-name'',  or
      ''123-abc'', regex used for validation is ''[a-z0-9]([-a-z0-9]*[a-z0-9])?''),
      spec.template.spec.containers[0].name: Invalid value: "registry-registry-example-plan-4.2-khf6n":
      a DNS-1123 label must consist of lower case alphanumeric characters or ''-'',
      and must start and end with an alphanumeric character (e.g. ''my-name'',  or
      ''123-abc'', regex used for validation is ''[a-z0-9]([-a-z0-9]*[a-z0-9])?''),
      spec.template.spec.containers[0].volumeMounts[0].name: Not found: "registry-registry-example-plan-4.2-khf6n-volume-1"]].
      See controller logs for details.'


Expected results:
Plan is ready.

Additional info:

--- Additional comment from Scott Seago on 2019-11-04 22:27:00 UTC ---

The error comes from using the plan name to build a name for a mount point in the container, which has stricter rules for labels than the migplan name itself. Since this mount point is an EmptyDir volume source that's not shared outside the container, the solution is probably just to remove the migplan name from the mount and just call it "volume-1". We'll need to verify that this doesn't break anything, though, and make sure there aren't other errors related to other places where the migplan name is used.

--- Additional comment from Scott Seago on 2019-11-06 14:17:11 UTC ---

Fix is here: https://github.com/fusor/mig-controller/pull/362

Comment 1 Sergio 2019-12-17 10:55:40 UTC
Verified in version 1.0.1 using osbs images.

Created a migplan with name "snapshots.with.dots" and the migration plan was created properly. The error didn't happen.

Comment 3 errata-xmlrpc 2019-12-19 15:44:27 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:4304