Bug 1368573

Summary: Routing data structure is backward incompatible
Product: OKD Reporter: Rajat Chopra <rchopra>
Component: DocumentationAssignee: Vikram Goyal <vigoyal>
Status: CLOSED CURRENTRELEASE QA Contact: Vikram Goyal <vigoyal>
Severity: high Docs Contact: Vikram Goyal <vigoyal>
Priority: unspecified    
Version: 3.xCC: aos-bugs, bmeng, eparis, jliggitt, mmccomas
Target Milestone: ---Keywords: Documentation
Target Release: ---   
Hardware: Unspecified   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-05-30 12:49:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Rajat Chopra 2016-08-19 19:48:47 UTC
Description of problem:
The routing data structure for template expansion is incompatible with the previous version. The old templates come crashing if used against the new version of openshift.

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

How reproducible:
Always

Steps to Reproduce:
1. Take the haproxy router template from 1.2 release
2. Use the template for an image that runs on 1.3 release
3.

Actual results:
Failure to expand the template

Expected results:
Backward compatibility should be respected

Additional info:
See bz#1362094

Comment 1 Rajat Chopra 2016-08-19 22:52:33 UTC
While we investigate how to make the template backwards compatible. This document describes the differences that exist, why they exist and how can one make changes to an older template by understanding the new data structure.

https://github.com/rajatchopra/routing_data_structure_changes/blob/master/README.md

Comment 2 Jordan Liggitt 2016-08-26 14:32:46 UTC
The struct fed into the template needs to contain identical fields to 1.2

It can contain additional fields, which new templates can use

Comment 3 Rajat Chopra 2016-08-26 18:09:54 UTC
This is what it would entail in response to Jordan's suggestion(Comment#2), primarily because we removed some fields from the original struct (if we do, then we will have to populate that field too - precisely its a map of routes that exist for a service).

1. Create duplicate structures for services/routes
2. Maintain two sets of watch/populate/delete functions to manage the two structures
3. Have the top level template point to the two sets simultaneously
4. Change the current template to start using the new structures only

The decision at this point is to allow the incompatibility and mention it conspicuously in the Release Notes.

Comment 4 Eric Paris 2016-09-02 12:36:04 UTC
You are going to mention the incompatibility in the release note and point to a longer form document discussing the incompatibility and what users should do about it. The longer document will be in openshift-docs. You have until this morning, your time, to get an openshift-docs PR opened.

Comment 5 Rajat Chopra 2016-09-02 20:20:34 UTC
Docs PR: https://github.com/openshift/openshift-docs/pull/2784
Release Note update comment: https://github.com/openshift/openshift-docs/pull/2774#issuecomment-244440648

Kind help needed from the docs team to get this to closure.

Comment 7 Rajat Chopra 2016-10-31 18:44:29 UTC
Fixed with https://github.com/openshift/openshift-docs/pull/2935

Comment 8 Meng Bo 2017-02-15 10:20:44 UTC
The docs look good to me.