Apply patches to ruby 101 docker image during upload script, for
compatibility tests.
diff --git a/tools/interop_matrix/client_matrix.py b/tools/interop_matrix/client_matrix.py
index c9a4996..7b02f51 100644
--- a/tools/interop_matrix/client_matrix.py
+++ b/tools/interop_matrix/client_matrix.py
@@ -23,6 +23,18 @@
       # all other languages use the grpc.git repo.
   }.get(lang, 'git@github.com:grpc/grpc.git')
 
+def get_release_tags(lang):
+  return map(lambda r: get_release_tag_name(r), LANG_RELEASE_MATRIX[lang])
+
+def get_release_tag_name(release_info):
+  assert len(release_info.keys()) == 1
+  return release_info.keys()[0]
+
+def should_build_docker_interop_image_from_release_tag(lang):
+  if lang in ['go', 'java', 'node']:
+    return False
+  return True
+
 # Dictionary of runtimes per language
 LANG_RUNTIME_MATRIX = {
     'cxx': ['cxx'],             # This is actually debian8.
@@ -39,81 +51,84 @@
 # a release tag pointing to the latest build of the branch.
 LANG_RELEASE_MATRIX = {
     'cxx': [
-        'v1.0.1',
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        'v1.7.2',
+        {'v1.0.1': None},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        {'v1.7.2': None},
     ],
     'go': [
-        'v1.0.5',
-        'v1.2.1',
-        'v1.3.0',
-        'v1.4.2',
-        'v1.5.2',
-        'v1.6.0',
-        'v1.7.0',
-        'v1.7.1',
-        'v1.7.2',
-        'v1.7.3',
-        'v1.8.0',
+        {'v1.0.5': None},
+        {'v1.2.1': None},
+        {'v1.3.0': None},
+        {'v1.4.2': None},
+        {'v1.5.2': None},
+        {'v1.6.0': None},
+        {'v1.7.0': None},
+        {'v1.7.1': None},
+        {'v1.7.2': None},
+        {'v1.7.3': None},
+        {'v1.8.0': None},
     ],
     'java': [
-        'v1.0.3',
-        'v1.1.2',
-        'v1.2.0',
-        'v1.3.1',
-        'v1.4.0',
-        'v1.5.0',
-        'v1.6.1',
-        'v1.7.0',
-        'v1.8.0',
+        {'v1.0.3': None},
+        {'v1.1.2': None},
+        {'v1.2.0': None},
+        {'v1.3.1': None},
+        {'v1.4.0': None},
+        {'v1.5.0': None},
+        {'v1.6.1': None},
+        {'v1.7.0': None},
+        {'v1.8.0': None},
     ],
     'python': [
-        'v1.0.x',
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        'v1.7.2',    
+        {'v1.0.x': None},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        {'v1.7.2': None},
     ],
     'node': [
-        'v1.0.1',
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        #'v1.7.1',  Failing tests.
+        {'v1.0.1': None},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        #{'v1.7.1': None}, Failing tests
     ],
     'ruby': [
-        # Ruby v1.0.x doesn't have the fix #8914, therefore not supported.
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        'v1.7.2',
+        {'v1.0.1': {'patch': [
+            'tools/dockerfile/interoptest/grpc_interop_ruby/Dockerfile',
+            'tools/dockerfile/interoptest/grpc_interop_ruby/build_interop.sh',
+        ]}},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        {'v1.7.2': None},
     ],
     'php': [
-        'v1.0.1',
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        'v1.7.2',
+        {'v1.0.1': None},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        {'v1.7.2': None},
     ],
    'csharp': [
-        #'v1.0.1',
-        'v1.1.4',
-        'v1.2.5',
-        'v1.3.9',
-        'v1.4.2',
-        'v1.6.6',
-        'v1.7.2',
+        #{'v1.0.1': None},
+        {'v1.1.4': None},
+        {'v1.2.5': None},
+        {'v1.3.9': None},
+        {'v1.4.2': None},
+        {'v1.6.6': None},
+        {'v1.7.2': None},
     ],
 }