{
    "componentChunkName": "component---src-templates-mdx-js",
    "path": "/community/core/docs/adr/0004-naming-convention-images.md",
    "result": {"data":{"site":{"siteMetadata":{"title":"Thoth Station Help"}},"mdx":{"id":"3d99fcb6-47b7-5052-8894-343c9a053a8c","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Project Thoth Naming Convention Schema for Images\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Status: proposed\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Date: 2021-Jun-17\")), mdx(\"p\", null, \"Technical Story: As Thoth goal to provide curated stack and images, it would be nice to have a convention for naming of the images.\"), mdx(\"h2\", null, \"Context and Problem Statement\"), mdx(\"p\", null, \"Image names are important for branding and let others identify easily a specific image they need. For example \\u201CI want to work on computer vision project with Tensorflow, what stack and image should I use?\\u201D Having a trusted well maintained source of images with clean naming convention can help on that.\"), mdx(\"h2\", null, \"Considered Options\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", {\n    parentName: \"li\",\n    \"className\": \"language-text\"\n  }, \"s2i-{application}\"), \" standard name currently, but not everyone knows what S2I is.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", {\n    parentName: \"li\",\n    \"className\": \"language-text\"\n  }, \"odh-{application}\"), \" for branding/marketing having ODH in front seems to be the best solution, in this way the name will be shorter as well.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"code\", {\n    parentName: \"li\",\n    \"className\": \"language-text\"\n  }, \"ps-{application}\"), \" as it shows what our intention is: we want to provide a curated/predictable software stack, it might be used by ODH or RHODS or others, it might use S2I or other technology. Moreover helps from pipeline creation point of view, because the length of repo name on quay can crate issues.\")), mdx(\"p\", null, \"These names are for the core repository name, then \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"overlays\"), \" will allow for combinations of libraries based on other criteria, for example \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"ml_framework\"), \" and/or \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"hardware\"), \":\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"text\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-text\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-text\"\n  }, \"`ps-nlp`\\n\\u251C\\u2500\\u2500 overlays                    # Overlays structure for builds\\n\\u2502   \\u251C\\u2500\\u2500 ps-nlp-tensorflow          # NLP image with TensorFlow ML framework\\n\\u2502   \\u251C\\u2500\\u2500 ps-nlp-tensorflow-gpu      # NLP image with TensorFlow ML framework for GPU\\n\\u2502   \\u251C\\u2500\\u2500 ps-nlp-pytorch             # NLP image with Pytorch ML framework\\n\\u2502   \\u251C\\u2500\\u2500 ps-nlp-pytorch-gpu         # NLP image with Pytorch ML framework for GPU\\n\\u2502   \\u2514\\u2500\\u2500 ps-nlp-scikit-learn        # NLP image with Scikit-learn ML framework\\n\\u2514\\u2500\\u2500 ...\"))), mdx(\"h2\", null, \"Decision Outcome\"), mdx(\"p\", null, \"Selected option: \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"ps-{application}\"), \" as it shows what our intention is: we want to provide a curated/predictable software stack, it might be used by ODH or RHODS or others, it might use S2I or other technology. Moreover helps from pipeline creation point of view, because the length of repo name on quay can crate issues.\"), mdx(\"h3\", null, \"Positive Consequences \"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"users can immediately select an image based on the application they want.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"using overlays we can have a variety of combination, not just for ml_framework\")), mdx(\"h3\", null, \"Negative Consequences \"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"N/A\")));\n}\n;\nMDXContent.isMDXComponent = true;","fields":{"srcLink":"https://github.com/thoth-station/core/blob/master/docs/adr/0004-naming-convention-images.md"},"frontmatter":{"title":"","description":null}}},"pageContext":{"id":"3d99fcb6-47b7-5052-8894-343c9a053a8c"}},
    "staticQueryHashes": ["1276261476","2902925331","3000541721","489485899"]}