diff --git a/.gitignore b/.gitignore index 8481cb68c5..934d633ebb 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,8 @@ linkchecker-out.html .local .yarnrc yarn.lock + +.DS_Store + +# Do not commit diagrams generated for downstream +crw* diff --git a/.vale/styles/CheDocs/Attributes.yml b/.vale/styles/CheDocs/Attributes.yml index 43991c2a60..afa216c4b7 100644 --- a/.vale/styles/CheDocs/Attributes.yml +++ b/.vale/styles/CheDocs/Attributes.yml @@ -9,6 +9,9 @@ scope: sentence swap: '\s[^[:punct:]]keycloak[^[:punct:]\.]': "{identity-provider}" '\s[^[:punct:]]kubectl[^[:punct:]]': "{orch-cli}" + '\s[Dd]ev[Ww]orkspace[^\}]': "{devworkspace}" + '\s[Dd]ev[Ww]orkspaces': "{devworkspace}" + '\s[Dd]ev [Ww]orkspace': "{devworkspace}" '\s[^[:punct:]]kubernetes[^[:punct:]]': "{orch-name}, {platforms-name}, or {kubernetes}" '\sche[^-] ': "{prod-short}" '\skubernetes[ ]': "{orch-name}, {platforms-name}, or {kubernetes}" diff --git a/.vale/styles/CheDocs/Spelling.yml b/.vale/styles/CheDocs/Spelling.yml index 9bf7f1a883..d655cb15fd 100644 --- a/.vale/styles/CheDocs/Spelling.yml +++ b/.vale/styles/CheDocs/Spelling.yml @@ -21,6 +21,7 @@ filters: - "[cC]onfig" # to enable "config map" - "[dD]evfile" - "[dD]evfiles" + - "[dD]ev[wW]orkspace" - "[dD]ownstream" - "[dD]ownstreaming" - "[eE]xposal" @@ -196,6 +197,7 @@ filters: - SVG - Telekom - Tensorflow + - Traefik - Uber - URI - URIs diff --git a/.vale/styles/Vocab/Che/accept.txt b/.vale/styles/Vocab/Che/accept.txt index a47daf658b..dfdeeb1e95 100644 --- a/.vale/styles/Vocab/Che/accept.txt +++ b/.vale/styles/Vocab/Che/accept.txt @@ -120,6 +120,7 @@ Sharding SonarLint Spring Boot SVG +Traefik Uber URI|URIs URL|url|URLs diff --git a/Dockerfile b/Dockerfile index 8c6da42e09..4110db152d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -76,7 +76,7 @@ RUN apk add --no-cache --update \ tar \ xmlstarlet \ yarn \ - && pip3 install --no-cache-dir --no-input jinja2-cli linkchecker yq \ + && pip3 install --no-cache-dir --no-input diagrams jinja2-cli yq \ && yarnpkg global add --ignore-optional --non-interactive @antora/cli@latest @antora/site-generator-default@latest asciidoctor gulp gulp-connect \ && rm -rf $(yarnpkg cache dir)/* \ && rm -rf /tmp/* \ diff --git a/antora.yml b/antora.yml index 925f14824d..fc043e5b06 100644 --- a/antora.yml +++ b/antora.yml @@ -26,7 +26,7 @@ asciidoc: che-devfile-registry-directory: che-devfile-registry che-plugin-registry-container-image: quay.io/eclipse/che-plugin-registry che-plugin-registry-directory: che-plugin-registry - devworkspace: Dev Workspace + devworkspace: DevWorkspace identity-provider-docs-url: https://www.keycloak.org/docs/ identity-provider-id: keycloak identity-provider-image-url: quay.io/eclipse/che-keycloak @@ -59,7 +59,6 @@ asciidoc: link-identity-provider-oidc: "https://www.keycloak.org/docs/15.0/server_admin/#_oidc" link-identity-provider-saml: "https://www.keycloak.org/docs/15.0/server_admin/#saml-v2-0-identity-providers" link-installing-an-instance: xref:installation-guide:installing-che.adoc[] - link-postgres-dockerfile-location: https://github.com/eclipse-che/che-server/tree/main/dockerfiles/postgres link-server-identity-provider-dockerfile-location: https://github.com/eclipse-che/che-server/tree/main/dockerfiles/keycloak link-viewing-the-state-of-the-cluster-deployment-using-openshift-4-cli-tools: xref:overview:installing-che-on-openshift-4-using-operatorhub.adoc[] namespace: namespace # In context: API namespace diff --git a/modules/administration-guide/examples/snip_che-architecture-overview-with-devworkspace-additional-resources.adoc b/modules/administration-guide/examples/snip_che-architecture-overview-with-devworkspace-additional-resources.adoc new file mode 100644 index 0000000000..14ec7e0c06 --- /dev/null +++ b/modules/administration-guide/examples/snip_che-architecture-overview-with-devworkspace-additional-resources.adoc @@ -0,0 +1 @@ +* link:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Kubernetes documentation - Custom Resources] \ No newline at end of file diff --git a/modules/administration-guide/examples/snip_che-che-server-additional-resources.adoc b/modules/administration-guide/examples/snip_che-che-server-additional-resources.adoc new file mode 100644 index 0000000000..d7384de94c --- /dev/null +++ b/modules/administration-guide/examples/snip_che-che-server-additional-resources.adoc @@ -0,0 +1,2 @@ +* link:https://quay.io/repository/eclipse/che-server?tab=history[`quay.io/eclipse/che-server` container image] +* link:https://github.com/eclipse-che/che-server[{prod} server repository] \ No newline at end of file diff --git a/modules/administration-guide/examples/snip_che-dashboard-additional-resources.adoc b/modules/administration-guide/examples/snip_che-dashboard-additional-resources.adoc new file mode 100644 index 0000000000..b6d998f998 --- /dev/null +++ b/modules/administration-guide/examples/snip_che-dashboard-additional-resources.adoc @@ -0,0 +1,2 @@ +* link:https://quay.io/repository/eclipse/che-dashboard?tab=history[`quay.io/eclipse/che-dashboard` container image] +* link:https://github.com/eclipse-che/che-dashboard[{prod-short} Dashboard repository] diff --git a/modules/administration-guide/examples/snip_che-devfile-registry-additional-resources.adoc b/modules/administration-guide/examples/snip_che-devfile-registry-additional-resources.adoc new file mode 100644 index 0000000000..a760f93cd6 --- /dev/null +++ b/modules/administration-guide/examples/snip_che-devfile-registry-additional-resources.adoc @@ -0,0 +1 @@ +* link:https://github.com/eclipse/che-devfile-registry[{prod-short} devfile registry repository] diff --git a/modules/administration-guide/examples/snip_che-devworkspace-additional-resources.adoc b/modules/administration-guide/examples/snip_che-devworkspace-additional-resources.adoc new file mode 100644 index 0000000000..eb18be23c3 --- /dev/null +++ b/modules/administration-guide/examples/snip_che-devworkspace-additional-resources.adoc @@ -0,0 +1,2 @@ +* link:https://quay.io/repository/devfile/devworkspace-controller?tab=history[`quay.io/devfile/devworkspace-controller` container image] +* link:https://github.com/devfile/devworkspace-operator[{devworkspace} Operator repository] diff --git a/modules/administration-guide/examples/snip_che-keycloak-additional-resources.adoc b/modules/administration-guide/examples/snip_che-keycloak-additional-resources.adoc new file mode 100644 index 0000000000..882bdcb43f --- /dev/null +++ b/modules/administration-guide/examples/snip_che-keycloak-additional-resources.adoc @@ -0,0 +1,2 @@ +* link:https://quay.io/repository/eclipse/che-keycloack?tab=history[`quay.io/eclipse/che-keycloak` container image] +* link:https://github.com/eclipse-che/che-server/tree/main/dockerfiles/keycloak[{prod-short} {identity-provider} repository] diff --git a/modules/administration-guide/examples/snip_plugin-registry-build-output.adoc b/modules/administration-guide/examples/snip_che-plugin-registry-build-output.adoc similarity index 100% rename from modules/administration-guide/examples/snip_plugin-registry-build-output.adoc rename to modules/administration-guide/examples/snip_che-plugin-registry-build-output.adoc diff --git a/modules/administration-guide/examples/snip_che-postgresql-additional-resources.adoc b/modules/administration-guide/examples/snip_che-postgresql-additional-resources.adoc new file mode 100644 index 0000000000..73941daa40 --- /dev/null +++ b/modules/administration-guide/examples/snip_che-postgresql-additional-resources.adoc @@ -0,0 +1,2 @@ +* link:https://quay.io/repository/eclipse/che-postgres?tab=history[`quay.io/eclipse/che-postgres` container image] +* link:https://github.com/eclipse-che/che-server/tree/main/dockerfiles/postgres[{prod-short} Postgres repository] diff --git a/modules/administration-guide/examples/snip_using-devworkspace-warning.adoc b/modules/administration-guide/examples/snip_using-devworkspace-warning.adoc new file mode 100644 index 0000000000..65ab7e647f --- /dev/null +++ b/modules/administration-guide/examples/snip_using-devworkspace-warning.adoc @@ -0,0 +1,10 @@ +[WARNING] +.Technology preview feature +==== +Managing workspaces with the {devworkspace} engine is an experimental feature. Don't use this workspace engine in production. + +.Known limitations + +Workspaces are not secured. Whoever knows the URL of a workspace can have access to it and leak the user credentials. +==== + diff --git a/modules/administration-guide/images/architecture/che-architecture-with-che-server-engine.png b/modules/administration-guide/images/architecture/che-architecture-with-che-server-engine.png new file mode 100644 index 0000000000..6066c14103 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-architecture-with-che-server-engine.png differ diff --git a/modules/administration-guide/images/architecture/che-architecture-with-devworkspace.drawio b/modules/administration-guide/images/architecture/che-architecture-with-devworkspace.drawio new file mode 100644 index 0000000000..380d4d50ba --- /dev/null +++ b/modules/administration-guide/images/architecture/che-architecture-with-devworkspace.drawio @@ -0,0 +1 @@ +7V1bd6M4Ev41OWf3wRxxx4+xk8z2ds9OzvTOdM+8zMEg22ww8oKcy/z6kUDiJiWQDNjEkbv7tCmEMF99VSqpytaFudw9/pD6++2PKITxhQHCxwvz6sIwdGPukf+o5KmQuI5TCDZpFLJGleBr9CdkQsCkhyiEWaMhRijG0b4pDFCSwAA3ZH6aoodmszWKm3fd+xsoCL4GfixKv0Uh3hZSz3Ar+b9gtNnyO+vOvDiz83lj9iTZ1g/RQ01kXl+YyxQhXLzbPS5hTMHjuBTX3TxztvxgKUxwnwt+f3j49A1/T51//wGC+0/fZ+Z/r2esl3s/PrAHZh8WP3EEYBJeUiDJ0SpGwd2FudjiXUwOdfKW3Dx9+k4OgGbzw9/oIT+4emwcPZVH4U0Ul708RrjWCTn6rXam6oIe8B7E52cPk6FDGsAXHpo9I/bTDcQvgcM6hGGDIwzeHyDaQfJIpMFDxQybaXtbIwWXpTD2cXTfZJbPCLopuyvvcIsi8mgGYMZk6eyDP3GucSPhfRRPzi6rU6GzJ7PVU4GN0BN5U3vwSpRT7RW0MwTafUPpXbb3A2LrhuPv9kTBySrb53p2YgLkYpWSdxv67itM72EqEDVFhySEISPOwzbC8CvtkQgeiHNq8nZNyLdEMUrza83Qhl5oEXmGU3QHa2c8Y2USn/UC38hnwfDxRYKws4YLGrjPuW+oEahsU2eQA54nS0M3r1WEJ7F3wvav7BCleIs2KPHj60q6qICmdli1+YLQnsH7P4jxE/Pm/gGjltN4g7m/1dGsUYJr6gT562+5D+4WOv2H4fX0H70dw9/StS5z9m1bA1MVfT6sYJpATB0EuLz9NKz5+9BbBzLzdwIPrtbkjB9Hm4TIYrjGQ3kDwQvbJ3YHuuiYBZxDP9uWxs/CLn+VnwUvgmzrnnVjCiAnKKFOhYRHe9rH7nFDI0ltE+wN7a5U+h8x8TGkGUEcs+5jfwXjW5RFOEJUM2kB0IJqICIR3JfW+V0Uhrn/aqmSt79k4rIdHY+iZPMlb3Zli85knr+YnHk7AuEw7PDa7LBsDQBrXr4Erli2SBXL1Bz7tZGG3bizqzmuDapXyz+h9TqDo0QJuimw8Qrel5GCGBigPUx9jN5jaGCZrqBuQcE6kDgDazRnYHU7gz0lTn5je0H+Ao26sCXI/9mkwTIX0kngkozbekOeH2mu3mrsECCWLWHRcm5LpE4pJH+fN/4VwhjtmopuGz6m4cvCz/bFRHIdPVLKlO4iINolYSfxQfShYXp9D4tn1yXuK4iyAOlz7ZDll0hdXotoNzeLweikW2aTTubcEej00lxleDZ53WziIEa7fFberatObedjxMIP7ja5C6ihvc5fpEl+s0uudCBjAPs8V1uM6bLDJUXCuAnCBGgRGQHXEXEuqRaQOxo3oY998h+Vk0jl5k+UhPw9jWtuAhRCMs562j7ZiBxYLrvC01dwwG1xwDJEDugSDrSnlYNxgKu8GYHmTpx49KS63Pn/gS6LLEIUZLPc2Mj0YkbXgmaOb64s6AQzl6hv5oC1PrNdAGdeGDqrtQ4NaMOqAz4y8Nvs6VJUlDZuEuO0fkGNkGWLKIEzjhDRPtA1+hhF8x2ZBkTJLCckPQf2uH2O07E8/dzHYyiIn4AGGLO1v4vip6KbMkImpDGtnEipT++IEiScy9sv2Vk2drJPGBTco12mm9U/dDpnYY1B9e6fZftVaUuz2qU49ZOMkZW35LY5Y/7zMr86gxRMEQF/H/0K0yxCHApCsAKNqSFkG6dBqGgwbXBITFQ2br0fH6DisSaNz7xsqpMr+XvvCOAYmq51wUPE+7asCq6VC524CyXxx54EljQmnbgZnMyHdrtQmQ0oxk/a68vTBYr7LaBmU0dGBQ8THVgSfwcnD85Jh5TJcwdIwDFse3x4NmhG6zW6QhI17L47fykMu13HkzaQE0btCfbJmVTFpspIlBG9DehigX7q6Ex31ntybFTsP9n4LfZpoupS13RrluEU4mB7fuOUuMwpe4gwup8cM07mc1+E7hlaSAAUGrdzwnnmnNde0+KaWla4nXVfx+gh2Pop1kIUHHbk4egFsnqPrKjWAZohqespiwTr2VmWtB++DsxpVYW6PAdfLwPjBbqNPO1oyXpDrLxpEV4laj+o2atErUrUnn+8pRK1yoWqRO2Up6zvcJJxcnVObTFMcV8las8weFCJ2imalUrUvgiPStSeq79UOaZBgFSJWmUkyohUonbsEGXa2KjYf7Lxm0rUljKVqO0LnUrUvj1RO/dOn6iVfUdfJWqV2atErUrUfoR4SyVqlQtVidopT1nf4STj5Oqc2mKY4r5K1J5h8KAStVM0K5WofREelag9V3+pckyDAKkStcpIlBGpRO3YIcq0sVGx/2TjN5WoLWUqUdsXOpWofXuiVtfnPTO14/2aOv9R/VqmNoT3BA6oPfkE/raWyKPipmqE3yF/duOCFBJl1PZkaP5KO/2ZdLonC1NYrnXpz5O/dueU/gry9KaCXFPUjydTz2jacQTtNLcaAMtDRh2fAX6GbIeYD6Uxt6WxuSOxKNn2BOOpzBVUdovCrPDWtzTznWHyvL+imLgtJqY7R0X5HlOAjLqapn0sJYp+0e3rF0fTYo9tAd68ewdDtNyxRh8GRqO9fZoJRBjNuQTGsuHwOM4HxnEAnExenVTh5Ak46bYn4mSbI8HEuV2DaYlC6t+vw2jonWPWNv0j2Dk54+Qv0diL10DoW22W6pYm2VPGkPB0tCjINLppykPQ4CnON9boxn1VKOnLqhSUEfpPB5wH21IFQT20oUs9N8I+2zoEPOeXB1CJxTdtqlQiiXscifsdrYCQW9r0NwAcfiM/7jO7N/JjDSeykZ8tFn1C5r1AtfjdHdl0bkrUmqB1R0AyO22S5dl5Id1BjX1YYwjv5+ktU3MM0fcdNWC1xRngBIZoW2vu9qZbkmBGOkjro21DaIuzsbMamEEbcUcyMBueJtvPbzTMxekUSzMrn1L6FLNtLLZkGnxcr+KIEe052YorQD4Ja3F6bJz+flG3gDtFzHvMHd4x5haYJtNlPwV5NqiLY7FsXfPIiPfYd/UdIy7x6BPAfOjYfFKYi/58AoifdYwv8+YTwFyM8c8Ic9NqTfltyerasREfM71xesRdS5gQTQDzoVMhk8Lc4jmUCSHunvUc1LL0CbLcFaNEnsIC+/iwieiW429brjnK2kxLw3w39iG8ktMeeXXZPIovEB9llcYV48svfrI5+Ju8GCE9JDjKqxQ+psasdnwqqUvQdcka9HgKE0Ol5ZdPRMAWRT+mnlyz5QcNUU+OLH85mprEsX5flv5cVFXIVUnlfV4P9FYFnslKtjVvGVzvdWxzLE16shiiT0UwE9PS2gSlOz8WC2t5wV6bC0Fe+tGvavZjEcTWhchePora8yNau9djLfJ41SPErRpBcHG06pFahDmd+hFPDGyyssjyQ5sQOf/mbOF4Xla26jaQl/0GV9IR99PV9cBO9vh0GDWsMoRKPUvkiczRmmXxxvBEkS0VDkSUn+EOYVpzeQVXh82G1hW8lR5DM+FkGpd8QUWqcW8sfcsWKgfS9y8ZVTEo/MPlfh8TBeXj5YdXu2X1janGU3yP1VKYhJdpih4qD1xfq3vGgTaq7glm6ROt+JwBDegul9CqT6CZc5MLqtLP/OipfnQL04g8M9X31YuFn931nCyO7KznrCtFMkxzWe+yT3aHW/rFkNpsrPXdGh20Vw2LCQy7rFK40JPjdPVUYCP0lFOnfPC3s2neYyV4YDaBeZNNBvCOzCZrWmxqJwiENejebLK7ehqOTTj7ZWEsPv/nM1h8z+i85nfvp1mPIqsamVYxCu6abCqJwgrNS5Z0MiS8ieLOOtvJaLz5tQKvPQHvq/B2R/N2RyPr2zi7oWgqDGmNMB73Wa8fYDwNePPq1erW1Ob2QJQhhymicWTVnH4j/UcUQtriLw==7Vxbd5s4EP41eawPCMTl0ddszqZdt8k2aV96ZJAxDUZekB27v34lEBgQtZ0EGx83ND1Bgy7mm29Go5GcK60/X19HaDH7SFwcXAHFXV9pgysAVGBb7BeXbFKJaRipwIt8V1TaCu78X1gIFSFd+i6OSxUpIQH1F2WhQ8IQO7QkQ1FEnsvVpiQoj7pAHpYEdw4KZOmD79JZKrWAuZX/hX1vlo2sGnb6ZI6yyuJN4hlyyXNBpA2vtH5ECE3v5us+Djh4GS7KR+DcPfa0a3eyubmDcPmJoA9pZ6OXNMlfIcIhfXXXXz+P6fXq/tZd3nzu3ns/fz7Yq6zrmG4yvLDL4BNFEtEZ8UiIguFW2ovIMnQx71VhpW2dW0IWTKgy4U9M6UZwAS0pYaIZnQfiKV779FE05/ff+H0HitJgXXg02GSFkEabx6wDXii04sVts6SUtTsQugwHsowcAcSD/vipd/1BGf7r3o+JNdbt0bWAWKEo8jDdUU/0x8Es0FAo5hqTOWYfklWIcICovypzFQnKe3m9rVrZjdBsvZZ3feoVCpZipP4MM8EAxbMJQZErsWCrY47388yn+G6BEmiemZ8o63PqB0GfBCRK2mouxJarM3lMI/KEC08sMNGY+3ipVlY4oni9E0fxVIPiVYWzArYoP29NX83seVYwe0N5O/S1BmZcuoElpTGOfIYXjo5jddm8UbC6WrCVs7K6jL1Vq7vDEWP0pZicasH2TK4WdyDhPsArBhjH/gv2/DgbpCn0p5aDHacO/YkFdfhygzgcfaCVHZ5qtI2+JqE/DpaeH14g+Do8N/BtCXx5+gndLg+rWWkSEOfpNzNHx4TFyWPP1OGO/CDrImZummZDhCTEmUzUKU02SgfA4nyj7plt2grn7ANnloLmYY3iM9nBE5AYYUx89r7bMMcoE0/TKoRKX1y0Kq4Jqh0pezpKkZE6SsiZv/Ybpkg5Mn01YcFLCJvTz3wR/cpMb4uM5lmRUbcaIiPUWyaj/mYyluixpWaRmepOZh6HUmfKFGC+kim6WmGKqZ+WKYbElEsOMfVKlKO3HOVkDnAX/D6OL0cBVkUBVtsKsCQFXHCQX6U/bBt9Ocqvon9B7Ndhhf1m24ssIAetDyR6ihMwG0Ud8n91qBvJxVuQkBbk6XXMbI+ulrShG2bb2pDTbH+MNoB1dtqQk29/jDZ0cHbakJNxf4w2oHF22njZ+tIJUBz7TnWFmWcuSomLbaqi6byZOv86v9bJ0+Dx+2f3sfctJP8tsyTv3lQFOK8FaL43kXFCfeUCVK10BE+cqgCwASrl6Qlbtw5OULyWgLyT5nYJ30ZK7axICbWGSAnUqsc7MSnlrMjF+zdwVlTSzQqVwCupZGgtU0nO8Fw8lQ49MnSiLSbYFJWqK8Zq0rc5Ku3Cv8QkA815PBtO4kWicOVcRX8vJzgK2ZQZs0J3fCMZwZsOjSBsTWuTOoZj4cmUPUGB74VMFuApPeY6tuK3NFPOseV1mo7Va1lzQKjuoniWH9ISp1fRJHmq7MQdqpY+0iTcs63yGVrwPuZrjx/I7XjOAnSech78CIjHT3sxJVDRfYAmOBiT2Kc+4cqKUnx6HH/fQcFt5fncd93knFlFu1n9rhDn9fh60Q+926TaAMqLOTu5hFycSlPBURMfFcJYsKMoup1f8haFDmX66Fony+a+IF4rjWx2DBMq26viaMl0GuOj+DV5BTDAq8Lq3gi4TicRu/P4HVngCFGmsUZdSHvnznQNVikg6VxVanyG3oDP2HX6sKCRBYmpF9Xk4jMjdzaBz8CPtP3IT1I13U5yAXKevER5/ywp6wYLeSzsDx4RfNssYZ+bYwF7owZ661jQy1lHCfIFt+JkXNhjP0qH86evJP8hq9BPhPzbDn0WMKoleVLqmGqlMs8o9SvCtKYNa6RGLmQ/v3fPE0IpmZeVX3XNlB8E7qF4kX5jYuqvuQHnDt1h6uar7F7y0jgarnD67mrNBOP4sUNUu7OMkya1k1LF7Eej3pEPlVaMG6oywXYFv40TrC6KfCfY0QhmDrvG8Kh76pWdk9YJdkDA+U6w5gimKLatHHXbGpwZwQ7IGL8TrDmC9ft8NXDC/a1TEuzmNgbU3JgGUMwf37+Mh/fLm5rw97dhrz9PvrS5X317CZCsfXt5JFzckkwuViUZrJvxQKkjhfg8gxml/FupXQ4EGDluqHR8trKfJjF6x2EjgpGLKGK/uJzF9aNfJHSze57CGTnExR9UYHUWodcCLfLjSRktdJkWag0tqpsOjdFCPp7xTovT00JT7Aot1HZpccCK7Z0WR6eFrlvnRYsD1lnvtDh+bGGdzFuw4vYvKKS50e3fodCG/wM=7Zpbb6s4EIB/TR6LuF8eU5J0d0+r7aqr0/bpyIADVglGxrm0v35tMITbSZM2NNE2NFXwYAY88zEZjxlp7mJzQ0Aa3eEAxiNVDjYjbTJSVUV1bPbFJa+FxDLNQhASFIhOW8EDeoNCKAvpEgUwa3SkGMcUpU2hj5ME+rQhA4TgdbPbHMfNq6YghB3Bgw/irvQRBTQqpLZqbeV/QBRG5ZUV0ymOLEDZWYwki0CA1zWRNh1pLsGYFnuLjQtjbrzSLrIWPabhryd3Zf20H+/Vv/6era8KZbNDTqmGQGBCP6x6/GBMXXgTe3eZM35Sbu8mr/9cKXqhewXipTCYGCx9LS0Ik2DMHcFaXoz9l5F2HdFFzJoK22W3RF6fWEOWjLL5zJtlY7JptF6rVjBDcaVlg2hNCWs9145sVfBGqWFPqwjrZXhJfLjDFKoAnQISQqEwffKenrOHzb/yj4jevt141uruSvABgwZ4wug3EC8gGyfrsN7iZgiEohpppYzAGFC0auIKBPVhpa66wj1GbLyqLJ5QvXzQxPOplXpLFcXAxVl1Pt5TZLUUFYbpKGI7tWFvRTl+B6BY2r+GohtB7jlIVpDkIWKR4oR5O+swSvAyCWAgmFlHiMKHFOT+XrO41kR2zrhzcYxJfq4WGNAOdCbPKMEvsHbEVj2NhbtDUWN3S+FmJxviqKYbDZurjrB5jR1F7YHHlH/PScMxO7zQC7fSccIjJi9ZbstjGn1u8L8+o5v5xs/ACa3Ji21AZyi60nCGblondob6fZ2h2ufmDO37OkNXz80Z3bTl2zjDMM/NGUbHGR0f1HJIPwZZhvzjZJGHGbmeA+5K7d5NAYW+M0kBq6yhJEL5YAqotBQZ2mApYK9ZzSOAVE0kHN3eeyrx4UkMU3IPCWIDh+S0SOpnhWRFzmeRZBPyVrT7WiStbxfbtLMCSbdaIKkfBMnUTgtSd3b7fwdJPSuQqrrIp0FqTxOHq5PsMn8DJBMseB6beFma+1s+V9GPpQdJwn4tM9YY3//ZeQY+VcgB0J77vcm6b0Nvzo6AGIUJk8VwToecvbailmaJHLnGetXna+o68vvxJwBZlJueBw1RjwdeflTeaXhDsfWZ1jF8ghPIhRFIuY7FJuRLDFLop6r0UoHwK8YhZt2YF6hQHwMPxvc4QxRh7i1SGOiaOwD5IL5tHV+gIOC32XZv2X8sxFU/PlFESXibd5sY3Vmck29CLhY1FHXQekeLGNuQZFl3qk3vAFTWDuv86JpkGgcna40rW5JpGfJ2a0VaPJ9ncJDAVmZ6NUQncFWb15sxd6pH2F7I93AKCaDMZUcNIqerBuua0Wag43RF7oka+mBRo1uB7Bg75TDlFzau2UeW+ChcOf83WAc3F/JlRJflLUpDnrckS2l15hUNtyUsejpGj9SshOzz+yjhYUrxoun8doSgmNMBsrRYipyjDceoiis+8zif6F3ng4ZkuoLF2JWeOOejzMeKIy2z/JTe2NiCbza7HhYxpYWYUf4u7JmEHZ+wbln1QtiAhFnTsTk9fFLw8cL96QnbY4n7QtjxCJNlx5GHJKy9GnF6wvYogF8IOx5hrsvz0i9cYjk9YXtUxkvDokX+RtT7/nuXgHwadg38lzBPqOvLYvnGuuQXG5cgyH1UiPuZRJTyV77G3BLqzA8SWUJskjlHLFUnks+uqM4CQAH74vKMfb/hJCj3eTlh5uMAsqTUltIkPAEXitnKnvQuF0oPF+3i9/G42KM8feFicC402WlxoZyYiz2qzRcuBudC1+0z46KveHzh4svzC/vL4gVrbt9QLip12/e8tel/ diff --git a/modules/administration-guide/images/architecture/che-dashboard-interactions.png b/modules/administration-guide/images/architecture/che-dashboard-interactions.png new file mode 100644 index 0000000000..76332e435e Binary files /dev/null and b/modules/administration-guide/images/architecture/che-dashboard-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-deployments-interacting-with-devworkspace.png b/modules/administration-guide/images/architecture/che-deployments-interacting-with-devworkspace.png new file mode 100644 index 0000000000..107bce3ec0 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-deployments-interacting-with-devworkspace.png differ diff --git a/modules/administration-guide/images/architecture/che-devfile-registry-interactions.png b/modules/administration-guide/images/architecture/che-devfile-registry-interactions.png new file mode 100644 index 0000000000..e11a7bb91c Binary files /dev/null and b/modules/administration-guide/images/architecture/che-devfile-registry-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-gateway-interactions.png b/modules/administration-guide/images/architecture/che-gateway-interactions.png new file mode 100644 index 0000000000..953d76179f Binary files /dev/null and b/modules/administration-guide/images/architecture/che-gateway-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-high-level.png b/modules/administration-guide/images/architecture/che-high-level.png deleted file mode 100644 index 1fce82841b..0000000000 Binary files a/modules/administration-guide/images/architecture/che-high-level.png and /dev/null differ diff --git a/modules/administration-guide/images/architecture/che-interacting-with-devworkspace.png b/modules/administration-guide/images/architecture/che-interacting-with-devworkspace.png new file mode 100644 index 0000000000..9ec7675930 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-interacting-with-devworkspace.png differ diff --git a/modules/administration-guide/images/architecture/che-plugin-registry-interactions.png b/modules/administration-guide/images/architecture/che-plugin-registry-interactions.png new file mode 100644 index 0000000000..77c4dd4b79 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-plugin-registry-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-postgresql-interactions.png b/modules/administration-guide/images/architecture/che-postgresql-interactions.png new file mode 100644 index 0000000000..1db96b51a4 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-postgresql-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-server-interactions.png b/modules/administration-guide/images/architecture/che-server-interactions.png new file mode 100644 index 0000000000..5f2a4355e6 Binary files /dev/null and b/modules/administration-guide/images/architecture/che-server-interactions.png differ diff --git a/modules/administration-guide/images/architecture/che-user-workspaces-interactions.png b/modules/administration-guide/images/architecture/che-user-workspaces-interactions.png new file mode 100644 index 0000000000..3a66b8666d Binary files /dev/null and b/modules/administration-guide/images/architecture/che-user-workspaces-interactions.png differ diff --git a/modules/administration-guide/images/architecture/workspace-components-with-dw.png b/modules/administration-guide/images/architecture/workspace-components-with-dw.png new file mode 100644 index 0000000000..aecab7ffec Binary files /dev/null and b/modules/administration-guide/images/architecture/workspace-components-with-dw.png differ diff --git a/modules/administration-guide/nav.adoc b/modules/administration-guide/nav.adoc index 0c275c6fe8..f638e6d110 100644 --- a/modules/administration-guide/nav.adoc +++ b/modules/administration-guide/nav.adoc @@ -1,8 +1,20 @@ .Administration Guide * xref:che-architecture-overview.adoc[] -** xref:che-workspace-controller.adoc[] -** xref:che-workspaces-architecture.adoc[] +** xref:architecture-overview-with-che-server.adoc[] +*** xref:server-components-with-che-server.adoc[] +*** xref:che-workspaces-architecture-with-che-server.adoc[] +** xref:architecture-overview-with-devworkspace.adoc[] +*** xref:server-components.adoc[] +**** xref:che-operator.adoc[] +**** xref:devworkspace-operator.adoc[] +**** xref:gateway.adoc[] +**** xref:dashboard.adoc[] +**** xref:devfile-registries.adoc[] +**** xref:che-server.adoc[] +**** xref:postgresql.adoc[] +**** xref:plug-in-registry.adoc[] +*** xref:user-workspaces.adoc[] * xref:calculating-che-resource-requirements.adoc[] diff --git a/modules/administration-guide/pages/architecture-overview-with-che-server.adoc b/modules/administration-guide/pages/architecture-overview-with-che-server.adoc new file mode 100644 index 0000000000..d75ce5cfa1 --- /dev/null +++ b/modules/administration-guide/pages/architecture-overview-with-che-server.adoc @@ -0,0 +1,6 @@ +[id="che-architecture-overview-with-che-server"] +// = Che architecture with Che server as workspace engine +:navtitle: Che server based +:keywords: administration-guide, che-architecture-overview +:page-aliases: .:che-architecture-overview-with-che-server, .:high-level-che-architecture-with-che-server, overview:high-level-che-architecture-with-che-server, administration-guide:high-level-che-architecture-with-che-server +include::partial$con_architecture-overview-with-che-server.adoc[] diff --git a/modules/administration-guide/pages/architecture-overview-with-devworkspace.adoc b/modules/administration-guide/pages/architecture-overview-with-devworkspace.adoc new file mode 100644 index 0000000000..1225376596 --- /dev/null +++ b/modules/administration-guide/pages/architecture-overview-with-devworkspace.adoc @@ -0,0 +1,7 @@ +[id="che-architecture-overview-with-devworkspace"] +// = Che architecture with {devworkspace} +:navtitle: {devworkspace} based +:keywords: administration-guide, che-architecture-overview, devworkspace +:page-aliases: .:che-architecture-overview-with-devworkspace, .:high-level-che-architecture-with-devworkspace, overview:high-level-che-architecture-with-devworkspace, administration-guide:high-level-che-architecture-with-devworkspace + +include::partial$con_architecture-overview-with-devworkspace.adoc[] diff --git a/modules/administration-guide/pages/che-architecture-overview.adoc b/modules/administration-guide/pages/architecture-overview.adoc similarity index 63% rename from modules/administration-guide/pages/che-architecture-overview.adoc rename to modules/administration-guide/pages/architecture-overview.adoc index a4b069f1c8..98a2638921 100644 --- a/modules/administration-guide/pages/che-architecture-overview.adoc +++ b/modules/administration-guide/pages/architecture-overview.adoc @@ -1,7 +1,7 @@ [id="che-architecture-overview"] // = Che architecture overview -:navtitle: Che architecture +:navtitle: Architecture overview :keywords: administration-guide, che-architecture-overview -:page-aliases: .:che-architecture-overview, .:high-level-che-architecture, overview:high-level-che-architecture, administration-guide:high-level-che-architecture +:page-aliases: .:che-architecture-overview, .:high-level-che-architecture, overview:high-level-che-architecture, administration-guide:high-level-che-architecture, che-architecture-overview -include::partial$con_che-architecture-overview.adoc[] +include::partial$con_architecture-overview.adoc[] diff --git a/modules/administration-guide/pages/che-operator.adoc b/modules/administration-guide/pages/che-operator.adoc new file mode 100644 index 0000000000..73e4dece92 --- /dev/null +++ b/modules/administration-guide/pages/che-operator.adoc @@ -0,0 +1,6 @@ +[id="{prod-id-short}-operator"] +:navtitle: {prod-short} operator +:keywords: administration-guide, architecture, operator +// :page-aliases: + +include::partial$con_che-operator.adoc[] diff --git a/modules/administration-guide/pages/che-server.adoc b/modules/administration-guide/pages/che-server.adoc new file mode 100644 index 0000000000..43b7c535aa --- /dev/null +++ b/modules/administration-guide/pages/che-server.adoc @@ -0,0 +1,6 @@ +[id="{prod-id-short}-server"] +:navtitle: {prod-short} server +:keywords: administration-guide, architecture, server, devworkspace +// :page-aliases: + +include::partial$con_che-server-with-devworkspace.adoc[] diff --git a/modules/administration-guide/pages/che-workspace-controller.adoc b/modules/administration-guide/pages/che-workspace-controller.adoc deleted file mode 100644 index 7f86780ec0..0000000000 --- a/modules/administration-guide/pages/che-workspace-controller.adoc +++ /dev/null @@ -1,7 +0,0 @@ -[id="che-workspace-controller"] -// = Che workspace controller -:navtitle: Che workspace controller -:keywords: administration-guide, che-workspace-controller -:page-aliases: .:che-workspace-controller - -include::partial$assembly_understanding-che-workspace-controller.adoc[] diff --git a/modules/administration-guide/pages/che-workspaces-architecture-with-che-server.adoc b/modules/administration-guide/pages/che-workspaces-architecture-with-che-server.adoc new file mode 100644 index 0000000000..1f3b20030a --- /dev/null +++ b/modules/administration-guide/pages/che-workspaces-architecture-with-che-server.adoc @@ -0,0 +1,7 @@ +[id="che-workspaces-architecture-with-che-server"] +// = Che workspaces architecture +:navtitle: Workspace side components +:keywords: administration-guide, che-workspaces-architecture, che-server +:page-aliases: .:che-workspaces-architecture-with-che-server, .:che-workspaces-architecture, che-workspaces-architecture + +include::partial$assembly_understanding-che-workspaces-architecture-with-che-server.adoc[] diff --git a/modules/administration-guide/pages/che-workspaces-architecture.adoc b/modules/administration-guide/pages/che-workspaces-architecture.adoc deleted file mode 100644 index 028814c983..0000000000 --- a/modules/administration-guide/pages/che-workspaces-architecture.adoc +++ /dev/null @@ -1,7 +0,0 @@ -[id="che-workspaces-architecture"] -// = Che workspaces architecture -:navtitle: Che workspaces architecture -:keywords: administration-guide, che-workspaces-architecture -:page-aliases: .:che-workspaces-architecture - -include::partial$assembly_understanding-che-workspaces-architecture.adoc[] diff --git a/modules/administration-guide/pages/dashboard.adoc b/modules/administration-guide/pages/dashboard.adoc new file mode 100644 index 0000000000..ce686998c4 --- /dev/null +++ b/modules/administration-guide/pages/dashboard.adoc @@ -0,0 +1,6 @@ +[id="dashboard"] +:navtitle: User dashboard +:keywords: administration-guide, architecture, server, devworkspace, user, dashboard +// :page-aliases: + +include::partial$con_dashboard.adoc[] diff --git a/modules/administration-guide/pages/devfile-registries.adoc b/modules/administration-guide/pages/devfile-registries.adoc new file mode 100644 index 0000000000..3a7209478a --- /dev/null +++ b/modules/administration-guide/pages/devfile-registries.adoc @@ -0,0 +1,6 @@ +[id="devfile-registries"] +:navtitle: Devfile registries +:keywords: administration-guide, architecture, server, devworkspace, devfile, registry +// :page-aliases: + +include::partial$con_devfile-registries.adoc[] diff --git a/modules/administration-guide/pages/devworkspace-operator.adoc b/modules/administration-guide/pages/devworkspace-operator.adoc new file mode 100644 index 0000000000..f39f8f9e2c --- /dev/null +++ b/modules/administration-guide/pages/devworkspace-operator.adoc @@ -0,0 +1,7 @@ +[id="devworkspace-operator"] +:navtitle: {devworkspace} operator +:keywords: administration-guide, workspace operator, devworkspace +:page-aliases: .:devworkspace-operator + + +include::partial$con_devworkspace-operator.adoc[] diff --git a/modules/administration-guide/pages/gateway.adoc b/modules/administration-guide/pages/gateway.adoc new file mode 100644 index 0000000000..435535745b --- /dev/null +++ b/modules/administration-guide/pages/gateway.adoc @@ -0,0 +1,6 @@ +[id="gateway"] +:navtitle: Gateway +:keywords: administration-guide, architecture, server, devworkspace, gateway +// :page-aliases: + +include::partial$con_gateway.adoc[] diff --git a/modules/administration-guide/pages/plug-in-registry.adoc b/modules/administration-guide/pages/plug-in-registry.adoc new file mode 100644 index 0000000000..63ced1f6d2 --- /dev/null +++ b/modules/administration-guide/pages/plug-in-registry.adoc @@ -0,0 +1,6 @@ +[id="plug-in-registry"] +:navtitle: Plug-in registry +:keywords: administration-guide, architecture, server, devworkspace, plug-in, registry +// :page-aliases: + +include::partial$con_plug-in-registry.adoc[] diff --git a/modules/administration-guide/pages/postgresql.adoc b/modules/administration-guide/pages/postgresql.adoc new file mode 100644 index 0000000000..46fe96ba39 --- /dev/null +++ b/modules/administration-guide/pages/postgresql.adoc @@ -0,0 +1,6 @@ +[id="postgresl"] +:navtitle: PostgreSQL +:keywords: administration-guide, architecture, server, devworkspace, postgresql, database +// :page-aliases: + +include::partial$con_postgresql.adoc[] diff --git a/modules/administration-guide/pages/server-components-with-che-server.adoc b/modules/administration-guide/pages/server-components-with-che-server.adoc new file mode 100644 index 0000000000..e231e60072 --- /dev/null +++ b/modules/administration-guide/pages/server-components-with-che-server.adoc @@ -0,0 +1,8 @@ +[id="che-workspace-controller-with-che-server"] +// = Che server side components +:navtitle: Server side components +:keywords: administration-guide, che-workspace-controller, che-server +:page-aliases: .:che-workspace-controller-with-che-server, .:che-workspace-controller, che-workspace-controller + + +include::partial$assembly_server-components-with-che-server.adoc[] diff --git a/modules/administration-guide/pages/server-components.adoc b/modules/administration-guide/pages/server-components.adoc new file mode 100644 index 0000000000..3ee4234777 --- /dev/null +++ b/modules/administration-guide/pages/server-components.adoc @@ -0,0 +1,7 @@ +[id="server-components-with-the-devworkspace-engine"] +:navtitle: Server components +:keywords: administration-guide, architecture, server, devworkspace +// :page-aliases: + +include::partial$con_che-server-components.adoc[] + diff --git a/modules/administration-guide/pages/user-workspaces.adoc b/modules/administration-guide/pages/user-workspaces.adoc new file mode 100644 index 0000000000..ae8e6de428 --- /dev/null +++ b/modules/administration-guide/pages/user-workspaces.adoc @@ -0,0 +1,6 @@ +[id="user-workspaces"] +:navtitle: User workspaces +:keywords: administration-guide, architecture, workspace, devworkspace +// :page-aliases: + +include::partial$con_user-workspaces.adoc[] diff --git a/modules/administration-guide/partials/assembly_understanding-che-workspace-controller.adoc b/modules/administration-guide/partials/assembly_server-components-with-che-server.adoc similarity index 71% rename from modules/administration-guide/partials/assembly_understanding-che-workspace-controller.adoc rename to modules/administration-guide/partials/assembly_server-components-with-che-server.adoc index e7e292b7b7..0761752fbf 100644 --- a/modules/administration-guide/partials/assembly_understanding-che-workspace-controller.adoc +++ b/modules/administration-guide/partials/assembly_server-components-with-che-server.adoc @@ -2,18 +2,18 @@ :parent-context-of-understanding-che-workspace-controller: {context} -[id="understanding-{prod-id-short}-workspace-controller_{context}"] -= Understanding {prod-short} workspace controller +[id="understanding-{prod-id-short}-server_{context}"] += Understanding {prod-short} server This chapter describes the {prod-short} controller and the services that are a part of the controller. :context: understanding-{prod-id-short}-workspace-controller -include::partial$con_che-workspace-controller.adoc[leveloffset=+1] +include::partial$con_che-workspace-controller-with-che-server.adoc[leveloffset=+1] include::partial$con_che-server.adoc[leveloffset=+1] -include::partial$con_che-user-dashboard.adoc[leveloffset=+1] +include::partial$con_che-dashboard.adoc[leveloffset=+1] include::partial$con_che-devfile-registry.adoc[leveloffset=+1] diff --git a/modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture.adoc b/modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture-with-che-server.adoc similarity index 86% rename from modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture.adoc rename to modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture-with-che-server.adoc index 17dddd6740..d8b19060af 100644 --- a/modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture.adoc +++ b/modules/administration-guide/partials/assembly_understanding-che-workspaces-architecture-with-che-server.adoc @@ -9,7 +9,7 @@ This chapter describes the architecture and components of {prod-short}. -include::partial$con_che-workspaces-architecture.adoc[leveloffset=+1] +include::partial$con_che-workspaces-architecture-with-che-server.adoc[leveloffset=+1] include::partial$assembly_che-workspace-components.adoc[leveloffset=+1] diff --git a/modules/administration-guide/partials/con_architecture-overview-with-che-server.adoc b/modules/administration-guide/partials/con_architecture-overview-with-che-server.adoc new file mode 100644 index 0000000000..f5660cdd1a --- /dev/null +++ b/modules/administration-guide/partials/con_architecture-overview-with-che-server.adoc @@ -0,0 +1,22 @@ +[id="{prod-id-short}-architecture-overview-with-che-server_{context}"] += {prod-short} architecture with {prod-short} server + +{prod-short} server is the default workspace engine. + +.High-level {prod-short} architecture with the {prod-short} server engine +image::administration-guide:architecture/{project-context}-architecture-with-che-server-engine.png[] + +{prod} components are: + +{prod-short} server:: + +An always-running service that manages user workspaces with the {orch-name} API. + +User workspaces:: + +Container-based IDEs running on user requests. + +.Additional resources + +* xref:administration-guide:server-components-with-che-server.adoc[] +* xref:administration-guide:che-workspaces-architecture-with-che-server.adoc[] diff --git a/modules/administration-guide/partials/con_architecture-overview-with-devworkspace.adoc b/modules/administration-guide/partials/con_architecture-overview-with-devworkspace.adoc new file mode 100644 index 0000000000..f8513420e2 --- /dev/null +++ b/modules/administration-guide/partials/con_architecture-overview-with-devworkspace.adoc @@ -0,0 +1,36 @@ +[id="{prod-id-short}-architecture-overview-with-devworkspace{context}"] += {prod-short} architecture with {devworkspace} + +include::example$snip_using-devworkspace-warning.adoc[] + +.High-level {prod-short} architecture with the {devworkspace} operator +image::architecture/che-interacting-with-devworkspace.png[] + +When {prod-short} is running with the {devworkspace} operator, it runs on three groups of components: + +{prod-short} server components:: +Manage User {orch-namespace} and workspaces. The main component is the User dashboard, from which users control their workspaces. + +{devworkspace} operator:: +Creates and controls the necessary {orch-name} objects to run User workspaces. Including `Pods`, `Services`, and `PeristentVolumes`. + +User workspaces:: +Container-based development environments, the IDE included. + +The role of these {orch-name} features is central: + +{devworkspace} Custom Resources:: +Valid {orch-name} objects representing the User workspaces and manipulated by {prod-short}. It is the communication channel for the three groups of components. + +{orch-name} role-based access control (RBAC):: +Controls access to all resources. + +.Additional resources + +* xref:server-components.adoc[] +* xref:devworkspace-operator.adoc[] +* xref:user-workspaces.adoc[] +* xref:installation-guide:enabling-dev-workspace-operator.adoc[] +* link:https://github.com/devfile/devworkspace-operator[{devworkspace} Operator repository] +include::example$snip_che-architecture-overview-with-devworkspace-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_architecture-overview.adoc b/modules/administration-guide/partials/con_architecture-overview.adoc new file mode 100644 index 0000000000..f85c89366d --- /dev/null +++ b/modules/administration-guide/partials/con_architecture-overview.adoc @@ -0,0 +1,32 @@ +[id="assembly_architecture-overview_{context}"] += Architecture overview + + +{prod-short} needs a workspace engine to manage the lifecycle of the workspaces. +Two workspace engines are available. +The choice of a workspace engine defines the architecture. + +xref:administration-guide:architecture-overview-with-che-server.adoc[]:: + +{prod-short} server is the default workspace engine. ++ +.High-level {prod-short} architecture with the {prod-short} server engine +image::administration-guide:architecture/{project-context}-architecture-with-che-server-engine.png[High-level {prod-short} architecture with the {prod-short} server engine] + + +xref:administration-guide:architecture-overview-with-devworkspace.adoc[]:: + +The {devworkspace} Operator is a new workspace engine. ++ +include::example$snip_using-devworkspace-warning.adoc[] ++ +.High-level {prod-short} architecture with the {devworkspace} operator +image::administration-guide:architecture/che-interacting-with-devworkspace.png[High-level {prod-short} architecture with the {devworkspace} operator] + +.Additional resources + +* xref:administration-guide:architecture-overview-with-che-server.adoc[] +* xref:administration-guide:architecture-overview-with-devworkspace.adoc[] +* xref:installation-guide:enabling-dev-workspace-operator.adoc[] +* https://github.com/devfile/devworkspace-operator[{devworkspace} Operator GitHub repository] + diff --git a/modules/administration-guide/partials/con_che-architecture-overview.adoc b/modules/administration-guide/partials/con_che-architecture-overview.adoc deleted file mode 100644 index 5eea5f5f0a..0000000000 --- a/modules/administration-guide/partials/con_che-architecture-overview.adoc +++ /dev/null @@ -1,17 +0,0 @@ -[id="{prod-id-short}-architecture-overview_{context}"] -= {prod-short} architecture overview - -{prod} components are: - -* A central workspace controller: an always-running service that manages user workspaces through the {orch-name} API. -* User workspaces: container-based IDEs that the controller stops when the user stops coding. - -.High-level {prod-short} architecture -image::administration-guide:architecture/{project-context}-high-level.png[] - -When {prod-short} is installed on a {platforms-name} cluster, the workspace controller is the only component that is deployed. A {prod-short} workspace is created immediately after a user requests it. - -.Additional resources - -* xref:administration-guide:che-workspace-controller.adoc[] -* xref:administration-guide:che-workspaces-architecture.adoc[] diff --git a/modules/administration-guide/partials/con_che-dashboard.adoc b/modules/administration-guide/partials/con_che-dashboard.adoc new file mode 100644 index 0000000000..1ca23fe1af --- /dev/null +++ b/modules/administration-guide/partials/con_che-dashboard.adoc @@ -0,0 +1,17 @@ +// Module included in the following assemblies: +// +// {prod-id-short}-workspace-controller-with-che-server + +[id="{prod-id-short}-dashboard_{context}"] += {prod-short} user dashboard + +The user dashboard is the landing page of {prod}. +It is a React application. +{prod-short} users navigate the user dashboard from their browsers to create, start, and manage {prod-short} workspaces. + +.Additional resources + +* xref:end-user-guide:navigating-che.adoc[] + +include::example$snip_{project-context}-dashboard-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_che-devfile-registry.adoc b/modules/administration-guide/partials/con_che-devfile-registry.adoc index 50cc033433..a101c80184 100644 --- a/modules/administration-guide/partials/con_che-devfile-registry.adoc +++ b/modules/administration-guide/partials/con_che-devfile-registry.adoc @@ -1,22 +1,15 @@ // Module included in the following assemblies: // -// {prod-id-short}-workspace-controller +// {prod-id-short}-workspace-controller-with-che-server [id="{prod-id-short}-devfile-registry_{context}"] -= {prod-short} Devfile registry += {prod-short} devfile registry -The {prod-short} devfile registry is a service that provides a list of {prod-short} stacks to create ready-to-use workspaces. This list of stacks is used in the *Dashboard* -> *Create Workspace* window. The devfile registry runs in a container and can be deployed wherever the user dashboard can connect. +The {prod-short} devfile registry is a service that provides a list of {prod-short} samples to create ready-to-use workspaces. This list of samples is used in the *Dashboard* -> *Create Workspace* window. The devfile registry runs in a container and can be deployed wherever the user dashboard can connect. -// TODO: add link to "Customizing devfile registry" -For more information about devfile registry customization, see the Customizing devfile registry section. -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:{url-devfile-registry-repo}[{prod-short} Devfile registry] -endif::[] +.Additional resources -| Container image -| `{che-devfile-registry-container-image}` -|=== +* xref:end-user-guide:creating-a-workspace-from-a-code-sample.adoc[] + +include::example$snip_che-devfile-registry-additional-resources.adoc[] diff --git a/modules/administration-guide/partials/con_che-keycloak.adoc b/modules/administration-guide/partials/con_che-keycloak.adoc index 70879e65c8..2dee164239 100644 --- a/modules/administration-guide/partials/con_che-keycloak.adoc +++ b/modules/administration-guide/partials/con_che-keycloak.adoc @@ -10,13 +10,7 @@ The {prod-short} server uses {identity-provider} as an OpenID Connect (OIDC) provider to authenticate {prod-short} users and secure access to {prod-short} resources. -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:{link-server-identity-provider-dockerfile-location}[{prod-short} {identity-provider}] -endif::[] +.Additional resources + +include::example$snip_che-keycloak-additional-resources.adoc[] -| Container image -| `{identity-provider-image-url}` -|=== diff --git a/modules/administration-guide/partials/con_che-operator.adoc b/modules/administration-guide/partials/con_che-operator.adoc new file mode 100644 index 0000000000..37cfd94aba --- /dev/null +++ b/modules/administration-guide/partials/con_che-operator.adoc @@ -0,0 +1,23 @@ +[id="{prod-id-short}-operator_{context}"] += {prod-short} operator + +// .{prod-short} operator +// image::architecture/{project-context}-operator.png[] + +The {prod-short} operator ensure full lifecycle management of the {prod-short} server components. +It introduces: + +`CheCluster` custom resource definition (CRD):: +Defines the `CheCluster` {orch-name} object. + +{prod-short} controller:: + +Creates and controls the necessary {orch-name} objects to run a {prod-short} instance, such as pods, services, and persistent volumes. + +`CheCluster` custom resource (CR):: +On a cluster with the {prod-short} operator, it is possible to create a `CheCluster` custom resource (CR). The {prod-short} operator ensure full lifecycle management of the {prod-short} server components on this {prod-short} instance. + +.Additional resources + +* xref:installation-guide:configuring-the-che-installation.adoc[] +* xref:installation-guide:installing-che.adoc[] diff --git a/modules/administration-guide/partials/con_che-plug-in-registry.adoc b/modules/administration-guide/partials/con_che-plug-in-registry.adoc index 5480a3fd95..5e08432db3 100644 --- a/modules/administration-guide/partials/con_che-plug-in-registry.adoc +++ b/modules/administration-guide/partials/con_che-plug-in-registry.adoc @@ -1,25 +1,12 @@ // Module included in the following assemblies: // -// {prod-id-short}-workspace-controller +// {prod-id-short}-workspace-controller-with-che-server [id="{prod-id-short}-plug-in-registry_{context}"] = {prod-short} plug-in registry -The {prod-short} plug-in registry is a service that provides the list of plug-ins and editors for the {prod-short} workspaces. A devfile only references a plug-in that is published in a {prod-short} plug-in registry. It runs in a container and can be deployed wherever {prod-short} server connects. +The {prod-short} plug-in registry is a service that provides the list of plug-ins and editors for {prod-short} workspaces. A devfile only references a plug-in that is published in a {prod-short} plug-in registry. It runs in a container and can be deployed wherever {prod-short} server connects. -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:{url-plug-in-registry-repo}[{prod-short} plug-in registry] -endif::[] - -| Container image -| `{che-plugin-registry-container-image}` -|=== - -ifeval::["{project-context}" == "che"] .Additional resources -* xref:building-and-running-a-custom-registry-image.adoc[] -endif::[] +include::example$snip_che-plugin-registry-additional-resources.adoc[] diff --git a/modules/administration-guide/partials/con_che-postgresql.adoc b/modules/administration-guide/partials/con_che-postgresql.adoc index 07ba77e19d..717c354fac 100644 --- a/modules/administration-guide/partials/con_che-postgresql.adoc +++ b/modules/administration-guide/partials/con_che-postgresql.adoc @@ -1,21 +1,28 @@ // Module included in the following assemblies: // -// {prod-id-short}-workspace-controller +// {prod-id-short}-workspace-controller-with-che-server [id="{prod-id-short}-postgresql_{context}"] = {prod-short} and PostgreSQL -The PostgreSQL database is a prerequisite to configure {prod-short}. The {prod-short} administrator can choose to connect {prod-short} to an existing PostgreSQL instance or let the {prod-short} deployment start a new dedicated PostgreSQL instance. +The PostgreSQL database is a prerequisite for {prod-short} server and {identity-provider}. -The {prod-short} server uses the database to persist user configurations (workspaces metadata, Git credentials). {identity-provider} uses the database as its back end to persist user information. +The {prod-short} administrator can choose to: -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:{link-postgres-dockerfile-location}[{prod-short} Postgres] -endif::[] +* Connect {prod-short} to an existing PostgreSQL instance. +* Let the {prod-short} deployment start a new dedicated PostgreSQL instance. + +Services use the database for the following purposes: + +{prod-short} server:: +Persist user configurations such as workspaces metadata and Git credentials. + +{identity-provider}:: +Persist user information. + +.Additional resources + +* xref:administration-guide:external-database-setup.adoc[] + +include::example$snip_che-postgresql-additional-resources.adoc[] -| Container image -| `{postgresql-image-url}` -|=== diff --git a/modules/administration-guide/partials/con_che-server-components.adoc b/modules/administration-guide/partials/con_che-server-components.adoc new file mode 100644 index 0000000000..13bf27be0f --- /dev/null +++ b/modules/administration-guide/partials/con_che-server-components.adoc @@ -0,0 +1,20 @@ +[id="{prod-id-short}-server-components_{context}"] += {prod-short} server components + +include::example$snip_using-devworkspace-warning.adoc[] + +The {prod-short} server components ensure multi-tenancy and workspaces management. + +.{prod-short} server components interacting with the {devworkspace} operator +image::architecture/{project-context}-deployments-interacting-with-devworkspace.png[] + +.Additional resources + +* xref:che-operator.adoc[] +* xref:devworkspace-operator.adoc[] +* xref:gateway.adoc[] +* xref:dashboard.adoc[] +* xref:devfile-registries.adoc[] +* xref:che-server.adoc[] +* xref:postgresql.adoc[] +* xref:plug-in-registry.adoc[] diff --git a/modules/administration-guide/partials/con_che-server-with-devworkspace.adoc b/modules/administration-guide/partials/con_che-server-with-devworkspace.adoc new file mode 100644 index 0000000000..eb47b3bb80 --- /dev/null +++ b/modules/administration-guide/partials/con_che-server-with-devworkspace.adoc @@ -0,0 +1,30 @@ +// Module included in the following assemblies: +// +// {prod-id-short}-workspace-controller-with-devworkspace + + +[id="{prod-id-short}-server-with-devworkspace_{context}"] += {prod-short} server + + +The {prod-short} server main functions are: + +* Creating user namespaces. +* Provisioning user namespaces with required secrets and config maps. +* Integrating with Git services providers, to fetch and validate devfiles and authentication. + +The {prod-short} server is a Java web service exposing an HTTP REST API and needs access to: + +* xref:postgresql.adoc[] +* Git service providers +* {orch-name} API + +.{prod-short} server interactions with other components +image::architecture/{project-context}-server-interactions.png[{prod-short} server interactions with other components] + +.Additional resources + +* xref:installation-guide:advanced-configuration-options-for-the-che-server-component.adoc[] + +include::example$snip_{project-context}-che-server-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_che-server.adoc b/modules/administration-guide/partials/con_che-server.adoc index 619d6319e2..2cbac86402 100644 --- a/modules/administration-guide/partials/con_che-server.adoc +++ b/modules/administration-guide/partials/con_che-server.adoc @@ -1,25 +1,17 @@ // Module included in the following assemblies: // -// {prod-id-short}-workspace-controller +// {prod-id-short}-workspace-controller-che-server [id="{prod-id-short}-server_{context}"] = {prod-short} server -The {prod-short} server is the central service of the workspaces controller. It is a Java web service that exposes an HTTP REST API to manage {prod-short} workspaces and {prod-short} users. - -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:https://github.com/eclipse-che/che-server[{prod} server repository] -endif::[] - -| Container image -| `eclipse/che-server` - -|=== +The {prod-short} server is the central service of {prod-short} server-side components. +It is a Java web service exposing an HTTP REST API to manage {prod-short} workspaces and users. +It is the default workspace engine. .Additional resources * xref:installation-guide:advanced-configuration-options-for-the-che-server-component.adoc[] + +include::example$snip_{project-context}-che-server-additional-resources.adoc[] diff --git a/modules/administration-guide/partials/con_che-user-dashboard.adoc b/modules/administration-guide/partials/con_che-user-dashboard.adoc deleted file mode 100644 index 4947a6ac13..0000000000 --- a/modules/administration-guide/partials/con_che-user-dashboard.adoc +++ /dev/null @@ -1,19 +0,0 @@ -// Module included in the following assemblies: -// -// {prod-id-short}-workspace-controller - -[id="{prod-id-short}-user-dashboard_{context}"] -= {prod-short} user dashboard - -The user dashboard is the landing page of {prod}. It is an Angular front-end application. {prod-short} users create, start, and manage {prod-short} workspaces from their browsers through the user dashboard. - -[cols=2*] -|=== -ifeval::["{project-context}" == "che"] -| Source code -| link:https://github.com/eclipse-che/che-dashboard[{prod-short} Dashboard] -endif::[] - -| Container image -| `eclipse/che-server` -|=== diff --git a/modules/administration-guide/partials/con_che-workspace-controller.adoc b/modules/administration-guide/partials/con_che-workspace-controller-with-che-server.adoc similarity index 84% rename from modules/administration-guide/partials/con_che-workspace-controller.adoc rename to modules/administration-guide/partials/con_che-workspace-controller-with-che-server.adoc index 44fe3b1555..d9f59b2b2a 100644 --- a/modules/administration-guide/partials/con_che-workspace-controller.adoc +++ b/modules/administration-guide/partials/con_che-workspace-controller-with-che-server.adoc @@ -1,6 +1,6 @@ -[id="{prod-id-short}-workspace-controller_{context}"] -= {prod-short} workspace controller +[id="{prod-id-short}-workspace-controller-with-che-server_{context}"] += {prod-short} server The workspaces controller manages the container-based development environments: {prod-short} workspaces. To secure the development environments with authentication, the deployment is always multiuser and multitenant. diff --git a/modules/administration-guide/partials/con_che-workspaces-architecture.adoc b/modules/administration-guide/partials/con_che-workspaces-architecture-with-che-server.adoc similarity index 95% rename from modules/administration-guide/partials/con_che-workspaces-architecture.adoc rename to modules/administration-guide/partials/con_che-workspaces-architecture-with-che-server.adoc index bd4bebedfd..14b2d8bb1b 100644 --- a/modules/administration-guide/partials/con_che-workspaces-architecture.adoc +++ b/modules/administration-guide/partials/con_che-workspaces-architecture-with-che-server.adoc @@ -1,4 +1,4 @@ -[id="{prod-id-short}-workspaces-architecture_{context}"] +[id="{prod-id-short}-workspaces-architecture-with-che-server_{context}"] = {prod-short} workspaces architecture A {prod-short} deployment on the cluster consists of the {prod-short} server component, a database for storing user profile and preferences, and several additional deployments hosting workspaces. The {prod-short} server orchestrates the creation of workspaces, which consist of a deployment containing the workspace containers and enabled plug-ins, plus the related components, such as: diff --git a/modules/administration-guide/partials/con_controller-requirements.adoc b/modules/administration-guide/partials/con_controller-requirements.adoc index a2db91a43d..0c0a09c7b4 100644 --- a/modules/administration-guide/partials/con_controller-requirements.adoc +++ b/modules/administration-guide/partials/con_controller-requirements.adoc @@ -43,4 +43,4 @@ These default values are sufficient when the {prod-short} Workspace Controller m .Additional resources -* xref:administration-guide:che-workspace-controller.adoc[]. +* xref:administration-guide:server-components-with-che-server.adoc[]. diff --git a/modules/administration-guide/partials/con_dashboard.adoc b/modules/administration-guide/partials/con_dashboard.adoc new file mode 100644 index 0000000000..58aa524e2d --- /dev/null +++ b/modules/administration-guide/partials/con_dashboard.adoc @@ -0,0 +1,40 @@ +// Module included in the following assemblies: +// +// {prod-id-short}-workspace-controller-with-devworkspace + +[id="dashboard_{context}"] += User dashboard + +The user dashboard is the landing page of {prod}. +{prod-short} end-users browse the user dashboard to access and manage their workspaces. +It is a React application. +The {prod-short} deployment starts it in the `{prod-deployment}-dashboard` Deployment. + +It need access to: + +* xref:devfile-registries.adoc[] +* xref:che-server.adoc[] +* xref:plug-in-registry.adoc[] +* {orch-name} API + +.User dashboard interactions with other components +image::architecture/{project-context}-dashboard-interactions.png[User dashboard interactions with other components] + +When the user requests the user dashboard to start a workspace, the user dashboard executes this sequence of actions: + +. Collects the devfile from the xref:devfile-registries.adoc[], when the user is xref:end-user-guide:creating-a-workspace-from-a-code-sample.adoc[]. +. Sends the repository URL to xref:che-server.adoc[] and expects a devfile in return, when the user is xref:end-user-guide:creating-a-workspace-from-remote-devfile.adoc[]. +. Reads the devfile describing the workspace. +. Collects the additional metadata from the xref:plug-in-registry.adoc[]. +. Converts the information into a {devworkspace} Custom Resource. +. Creates the {devworkspace} Custom Resource in the user {orch-namespace} using the {orch-name} API. +. Watches the {devworkspace} Custom Resource status. +. Redirects the user to the running workspace IDE. + + +.Additional resources + +* xref:end-user-guide:navigating-che.adoc[] + +include::example$snip_{project-context}-dashboard-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_devfile-registries.adoc b/modules/administration-guide/partials/con_devfile-registries.adoc new file mode 100644 index 0000000000..0d9a2fd5da --- /dev/null +++ b/modules/administration-guide/partials/con_devfile-registries.adoc @@ -0,0 +1,20 @@ +[id="devfile-registries_{context}"] += Devfile registries + +The {prod-short} devfile registries are services providing a list of sample devfiles to create ready-to-use workspaces. +The xref:dashboard.adoc[] displays the samples list on the *Dashboard* -> *Create Workspace* page. +Each sample includes a Devfile v2. +The {prod-short} deployment starts one devfile registry instance in the `devfile-registry` deployment. + +.Devfile registries interactions with other components +image::architecture/{project-context}-devfile-registry-interactions.png[] + +.Additional resources + +* xref:end-user-guide:creating-a-workspace-from-a-code-sample.adoc[] +* link:https://devfile.io/docs/[Devfile v2 documentation] +* xref:building-and-running-a-custom-registry-image.adoc[] +* link:https://eclipse-che.github.io/che-devfile-registry/main/devfiles/[devfile registry latest community version online instance] + +include::example$snip_che-devfile-registry-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_devworkspace-operator.adoc b/modules/administration-guide/partials/con_devworkspace-operator.adoc new file mode 100644 index 0000000000..ce8a4b4fcd --- /dev/null +++ b/modules/administration-guide/partials/con_devworkspace-operator.adoc @@ -0,0 +1,25 @@ +[id="devworkspace-operator_{context}"] += {devworkspace} operator + +include::example$snip_using-devworkspace-warning.adoc[] + +The {devworkspace} operator extends {orch-name} to provide {devworkspace} support. It introduces: + +{devworkspace} custom resource definition:: + +Defines the {devworkspace} {orch-name} object from the Devfile v2 specification. + +{devworkspace} controller:: + +Creates and controls the necessary {orch-name} objects to run a {devworkspace}, such as pods, services, and persistent volumes. + +{devworkspace} custom resource:: + +On a cluster with the {devworkspace} operator, it is possible to create {devworkspace} custom resources (CR). A {devworkspace} CR is a {orch-name} representation of a Devfile. It defines a User workspaces in a {orch-name} cluster. + + +.Additional resources + +* xref:installation-guide:enabling-dev-workspace-operator.adoc[] +* link:https://github.com/devfile/api[Devfile API repository] +include::example$snip_{project-context}-devworkspace-additional-resources.adoc[] diff --git a/modules/administration-guide/partials/con_gateway.adoc b/modules/administration-guide/partials/con_gateway.adoc new file mode 100644 index 0000000000..622bcaa53c --- /dev/null +++ b/modules/administration-guide/partials/con_gateway.adoc @@ -0,0 +1,20 @@ +[id="gateway_{context}"] += Gateway + +The {prod-short} gateway is a Traefik instance applying {orch-name} Role based access control (RBAC) policies to control access to any {prod-short} resource. +The {prod-short} operator manages it as the `che-gateway` Deployment. + +It controls access to: + +* xref:dashboard.adoc[] +* xref:devfile-registries.adoc[] +* xref:che-server.adoc[] +* xref:plug-in-registry.adoc[] +* xref:user-workspaces.adoc[] + +.{prod-short} gateway interactions with other components +image::architecture/{project-context}-gateway-interactions.png[{prod-short} gateway interactions with other components] + +.Additional resources + +* xref:managing-identities-and-authorizations.adoc[] diff --git a/modules/administration-guide/partials/con_plug-in-registry.adoc b/modules/administration-guide/partials/con_plug-in-registry.adoc new file mode 100644 index 0000000000..8e41c25470 --- /dev/null +++ b/modules/administration-guide/partials/con_plug-in-registry.adoc @@ -0,0 +1,23 @@ +// Module included in the following assemblies: +// +// {prod-id-short}-workspace-controller-with-devworkspace + +[id="plug-in-registry_{context}"] += Plug-in registry + +Each {prod-short} workspace starts with a specific editor and set of associated extensions. +The {prod-short} plug-in registry provides the list of available editors and editor extensions. +A Devfile v2 describes each editor or extension. + +The xref:dashboard.adoc[] is reading the content of the registry. + +.Plug-in registries interactions with other components +image::architecture/{project-context}-plugin-registry-interactions.png[Plug-in registries interactions with other components] + +.Additional resources + +* xref:building-and-running-a-custom-registry-image.adoc[] +* link:https://github.com/eclipse-che/che-plugin-registry/blob/main/che-editors.yaml[Editors definitions in the {prod-short} plug-in registry repository] +* link:https://github.com/eclipse-che/che-plugin-registry/blob/main/che-theia-plugins.yaml[Plug-ins definitions in the {prod-short} plug-in registry repository] +* link:https://eclipse-che.github.io/che-plugin-registry/main/index.json[Plug-in registry latest community version online instance] + diff --git a/modules/administration-guide/partials/con_postgresql.adoc b/modules/administration-guide/partials/con_postgresql.adoc new file mode 100644 index 0000000000..7a0d7ab000 --- /dev/null +++ b/modules/administration-guide/partials/con_postgresql.adoc @@ -0,0 +1,21 @@ +// Module included in the following assemblies: +// +// {prod-id-short}-workspace-controller-with-devworkspace + +[id="postgresql_{context}"] += PostgreSQL + +{prod-short} server uses the PostgreSQL database to persist user configurations such as workspaces metadata. + +The {prod-short} deployment starts a dedicated PostgreSQL instance in the `postgres` Deployment. +You can use an external database instead. + +.PostgreSQL interactions with other components +image::architecture/{project-context}-postgresql-interactions.png[PostgreSQL interactions with other components] + +.Additional resources + +* xref:administration-guide:external-database-setup.adoc[] + +include::example$snip_che-postgresql-additional-resources.adoc[] + diff --git a/modules/administration-guide/partials/con_user-workspaces.adoc b/modules/administration-guide/partials/con_user-workspaces.adoc new file mode 100644 index 0000000000..378febfe4e --- /dev/null +++ b/modules/administration-guide/partials/con_user-workspaces.adoc @@ -0,0 +1,41 @@ +[id="user-workspaces_{context}"] += User workspaces + +.User workspaces interactions with other components +image::architecture/{project-context}-user-workspaces-interactions.png[User workspaces interactions with other components] + +User workspaces are web IDEs running in containers. + +A User workspace is a web application. It consists of microservices running in containers providing all the services of a modern IDE running in your browser: + +* Editor +* Language auto-completion +* Language server +* Debugging tools +* Plug-ins +* Application runtimes + +A workspace is one {orch-name} Deployment containing the workspace containers and enabled plug-ins, plus related {orch-name} components: + +* Containers +* ConfigMaps +* Services +* Endpoints +* Ingresses or Routes +* Secrets +* Persistent Volumes (PVs) + +A {prod-short} workspace contains the source code of the projects, persisted in a {platforms-name} Persistent Volume (PV). Microservices have read-write access to this shared directory. + +Use the devfile v2 format to specify the tools and runtime applications of a {prod-short} workspace. + +The following diagram shows one running {prod-short} workspace and its components. + +.{prod-short} workspace components +image::architecture/workspace-components-with-dw.png[] + +In the diagram, there is one running workspaces. + + +.Additional resources + diff --git a/modules/administration-guide/partials/proc_building-a-custom-plug-in-registry-image.adoc b/modules/administration-guide/partials/proc_building-a-custom-plug-in-registry-image.adoc index 49e610569d..31e7044271 100644 --- a/modules/administration-guide/partials/proc_building-a-custom-plug-in-registry-image.adoc +++ b/modules/administration-guide/partials/proc_building-a-custom-plug-in-registry-image.adoc @@ -42,7 +42,7 @@ To display full options for the `build.sh` script, use the `--help` parameter. To include the plug-in binaries in the registry image, add the `--offline` parameter. ==== -include::example$snip_plugin-registry-build-output.adoc[] +include::example$snip_che-plugin-registry-build-output.adoc[] .Additional resources diff --git a/modules/administration-guide/partials/proc_workspaces-requirements.adoc b/modules/administration-guide/partials/proc_workspaces-requirements.adoc index ad3089c734..55fbd7c479 100644 --- a/modules/administration-guide/partials/proc_workspaces-requirements.adoc +++ b/modules/administration-guide/partials/proc_workspaces-requirements.adoc @@ -155,5 +155,5 @@ The referenced manifest may define the memory requirements and limits. .Additional resources -* xref:administration-guide:che-workspaces-architecture.adoc[]. +* xref:administration-guide:che-workspaces-architecture-with-che-server.adoc[]. diff --git a/modules/end-user-guide/partials/assembly_authoring-devfiles-version-2.adoc b/modules/end-user-guide/partials/assembly_authoring-devfiles-version-2.adoc index 7db5456826..d6280d20b9 100644 --- a/modules/end-user-guide/partials/assembly_authoring-devfiles-version-2.adoc +++ b/modules/end-user-guide/partials/assembly_authoring-devfiles-version-2.adoc @@ -9,7 +9,7 @@ When you author or edit a devfile for configuring a workspace, the devfile must meet the latest devfile 2 specification. .Prerequisites -* An instance of {prod-short} with the xref:installation-guide:enabling-dev-workspace-engine.adoc[DevWorkspace Operator] enabled. See xref:installation-guide:installing-che.adoc[Installing {prod-short}]. +* An instance of {prod-short} with the xref:installation-guide:enabling-dev-workspace-operator.adoc[{devworkspace} Operator] enabled. See xref:installation-guide:installing-che.adoc[Installing {prod-short}]. .Procedure diff --git a/modules/end-user-guide/partials/assembly_configuring-a-workspace-to-use-an-ide-based-on-the-intellij-platform.adoc b/modules/end-user-guide/partials/assembly_configuring-a-workspace-to-use-an-ide-based-on-the-intellij-platform.adoc index daa1cf4886..2c3def6605 100644 --- a/modules/end-user-guide/partials/assembly_configuring-a-workspace-to-use-an-ide-based-on-the-intellij-platform.adoc +++ b/modules/end-user-guide/partials/assembly_configuring-a-workspace-to-use-an-ide-based-on-the-intellij-platform.adoc @@ -16,7 +16,7 @@ When the {prod-short} instance is running the {prod-short} Server workspaces eng .Workarounds * In the IDE, click btn:[Get from VCS] to checkout a repository. -* To enable the automatic initial checkout of the code repositories in the devfile, use the {devworkspace} engine. +* To enable the automatic initial checkout of the code repositories in the devfile, use the {devworkspace} operator. ==== include::partial$proc_configuring-a-workspace-to-use-intellij-idea-community.adoc[leveloffset=+1] diff --git a/modules/installation-guide/examples/checluster-properties.adoc b/modules/installation-guide/examples/checluster-properties.adoc index c2defd0422..e6b10757e1 100644 --- a/modules/installation-guide/examples/checluster-properties.adoc +++ b/modules/installation-guide/examples/checluster-properties.adoc @@ -118,7 +118,7 @@ identityProviderRoute: Route custom settings. identityProviderSecret: The secret that contains `user` and `password` for Identity Provider. When the secret is defined, the `identityProviderAdminUserName` and `identityProviderPassword` are ignored. When the value is omitted or left blank, the one of following scenarios applies\: 1. `identityProviderAdminUserName` and `identityProviderPassword` are defined, then they will be used. 2. `identityProviderAdminUserName` or `identityProviderPassword` are not defined, then a new secret with the name `che-identity-secret` will be created with default value `admin` for `user` and with an auto-generated value for `password`. identityProviderURL: Public URL of the Identity Provider server (Keycloak / RH-SSO server). Set this ONLY when a use of an external Identity Provider is needed. See the `externalIdentityProvider` field. By default, this will be automatically calculated and set by the Operator. initialOpenShiftOAuthUser: For operating with the OpenShift OAuth authentication, create a new user account since the kubeadmin can not be used. If the value is true, then a new OpenShift OAuth user will be created for the HTPasswd identity provider. If the value is false and the user has already been created, then it will be removed. If value is an empty, then do nothing. The user's credentials are stored in the `openshift-oauth-user-credentials` secret in 'openshift-config' namespace by Operator. Note that this solution is Openshift 4 platform-specific. -nativeUserMode: Enables native user mode. Currently works only on OpenShift and DevWorkspace engine. Native User mode uses OpenShift OAuth directly as identity provider, without Keycloak. +nativeUserMode: Enables native user mode. Currently works only on OpenShift and DevWorkspace operator. Native User mode uses OpenShift OAuth directly as identity provider, without Keycloak. oAuthClientName: Name of the OpenShift `OAuthClient` resource used to setup identity federation on the OpenShift side. Auto-generated when left blank. See also the `OpenShiftoAuth` field. oAuthSecret: Name of the secret set in the OpenShift `OAuthClient` resource used to setup identity federation on the OpenShift side. Auto-generated when left blank. See also the `OAuthClientName` field. openShiftoAuth: Enables the integration of the identity provider (Keycloak / RHSSO) with OpenShift OAuth. Empty value on OpenShift by default. This will allow users to directly login with their OpenShift user through the OpenShift login, and have their workspaces created under personal OpenShift namespaces. WARNING\: the `kubeadmin` user is NOT supported, and logging through it will NOT allow accessing the Che Dashboard. diff --git a/modules/installation-guide/examples/proc_che-preparing-a-private-registry.adoc b/modules/installation-guide/examples/proc_che-preparing-a-private-registry.adoc index 5bfa011529..539990790a 100644 --- a/modules/installation-guide/examples/proc_che-preparing-a-private-registry.adoc +++ b/modules/installation-guide/examples/proc_che-preparing-a-private-registry.adoc @@ -20,11 +20,11 @@ Running any workspace requires these _essential_ images: | {identity-provider} Pod for user authentication | `quay.io/eclipse/che-jwtproxy` -| JWT proxy image for enabling authentication between services. See xref:administration-guide:che-workspaces-architecture.adoc#che-workspace-jwt-proxy_{context}[Che workspace JWT proxy]. +| JWT proxy image for enabling authentication between services. See xref:administration-guide:che-workspaces-architecture-with-che-server.adoc#che-workspace-jwt-proxy_{context}[Che workspace JWT proxy]. | `quay.io/eclipse/che-plugin-artifacts-broker` + `quay.io/eclipse/che-plugin-metadata-broker` -| Images for adding plug-ins to workspaces. See xref:administration-guide:che-workspaces-architecture.adoc#che-plug-in-broker_{context}[Che plug-ins broker]. +| Images for adding plug-ins to workspaces. See xref:administration-guide:che-workspaces-architecture-with-che-server.adoc#che-plug-in-broker_{context}[Che plug-ins broker]. | `quay.io/eclipse/che-plugin-registry` | Plug-in registry that store information about plugins and the runtime containers they require. See xref:building-an-offline-plug-in-registry-image_{context}[]. diff --git a/modules/installation-guide/nav.adoc b/modules/installation-guide/nav.adoc index ae87fb4a45..99814d8ad4 100644 --- a/modules/installation-guide/nav.adoc +++ b/modules/installation-guide/nav.adoc @@ -48,7 +48,7 @@ ** xref:configuring-communication-between-che-components.adoc[] ** xref:setting-up-the-keycloak-che-username-readonly-theme-for-the-eclipse-che-login-page.adoc[] ** xref:mounting-a-secret-as-a-file-or-an-environment-variable-into-a-container.adoc[] -** xref:enabling-dev-workspace-engine.adoc[] +** xref:enabling-dev-workspace-operator.adoc[] * xref:upgrading-che.adoc[] diff --git a/modules/installation-guide/pages/enabling-dev-workspace-engine.adoc b/modules/installation-guide/pages/enabling-dev-workspace-engine.adoc deleted file mode 100644 index 65456336e3..0000000000 --- a/modules/installation-guide/pages/enabling-dev-workspace-engine.adoc +++ /dev/null @@ -1,7 +0,0 @@ -[id="enabling-dev-workspace-engine"] -// = Configuring Labels -:navtitle: Enabling Dev Workspace engine -:keywords: installation-guide, Dev Workspace -:page-aliases: .:enabling-dev-workspace-engine - -include::partial$proc_enabling-dev-workspace-engine.adoc[] diff --git a/modules/installation-guide/pages/enabling-dev-workspace-operator.adoc b/modules/installation-guide/pages/enabling-dev-workspace-operator.adoc new file mode 100644 index 0000000000..7c510eb5d6 --- /dev/null +++ b/modules/installation-guide/pages/enabling-dev-workspace-operator.adoc @@ -0,0 +1,7 @@ +[id="enabling-dev-workspace-operator"] +// = Configuring Labels +:navtitle: Enabling {devworkspace} operator +:keywords: installation-guide, {devworkspace} +:page-aliases: .:enabling-dev-workspace-operator + +include::partial$proc_enabling-dev-workspace-operator.adoc[] diff --git a/modules/installation-guide/partials/assembly_advanced-configuration.adoc b/modules/installation-guide/partials/assembly_advanced-configuration.adoc index db38af886c..844f7febcc 100644 --- a/modules/installation-guide/partials/assembly_advanced-configuration.adoc +++ b/modules/installation-guide/partials/assembly_advanced-configuration.adoc @@ -42,6 +42,6 @@ The next sections describe some specific user stories. * xref:mounting-a-secret-as-a-file-or-an-environment-variable-into-a-container.adoc[] -* xref:enabling-dev-workspace-engine.adoc[] +* xref:enabling-dev-workspace-operator.adoc[] :context: {parent-context-of-configuring-che} diff --git a/modules/installation-guide/partials/proc_enabling-dev-workspace-engine.adoc b/modules/installation-guide/partials/proc_enabling-dev-workspace-operator.adoc similarity index 77% rename from modules/installation-guide/partials/proc_enabling-dev-workspace-engine.adoc rename to modules/installation-guide/partials/proc_enabling-dev-workspace-operator.adoc index e6e01d5a0c..8468f91652 100644 --- a/modules/installation-guide/partials/proc_enabling-dev-workspace-engine.adoc +++ b/modules/installation-guide/partials/proc_enabling-dev-workspace-operator.adoc @@ -1,8 +1,8 @@ -[id="enabling-dev-workspace-engine_{context}"] -= Enabling {devworkspace} engine +[id="enabling-dev-workspace-operator_{context}"] += Enabling {devworkspace} operator -This procedure describes how to enable the {devworkspace} engine to support the Devfile 2.0.0 file format and mentions how to do so on existing instances or those about to be installed. +This procedure describes how to enable the {devworkspace} operator to support the Devfile 2.0.0 file format and mentions how to do so on existing instances or those about to be installed. .Prerequisites @@ -57,7 +57,7 @@ $ {orch-cli} patch checluster/{prod-checluster} -n {prod-namespace} --type=json ifeval::["{project-context}" == "che"] [WARNING] ==== -* Before enabling {devworkspace} engine on existed Kubernetes-based {prod-short} installation, install cert-manager. +* Before enabling {devworkspace} operator on existed Kubernetes-based {prod-short} installation, install cert-manager. ==== endif::[] diff --git a/modules/overview/nav.adoc b/modules/overview/nav.adoc index 16c1a3d75c..2aa7ab5dae 100644 --- a/modules/overview/nav.adoc +++ b/modules/overview/nav.adoc @@ -1,2 +1,2 @@ * xref:introduction-to-eclipse-che.adoc[] -** xref:che-architecture.adoc[] +** xref:architecture-overview.adoc[] diff --git a/modules/overview/pages/architecture-overview.adoc b/modules/overview/pages/architecture-overview.adoc new file mode 100644 index 0000000000..aed9d3ad22 --- /dev/null +++ b/modules/overview/pages/architecture-overview.adoc @@ -0,0 +1,7 @@ +[id="{prod-id-short}-architecture"] +// = {prod-short} architectural elements +:navtitle: Architecture overview +:keywords: overview, che-architecture, che-architectural-elements +:page-aliases: che-architecture + +include::administration-guide:partial$con_architecture-overview.adoc[] diff --git a/modules/overview/pages/che-architecture.adoc b/modules/overview/pages/che-architecture.adoc deleted file mode 100644 index 953f53eeaa..0000000000 --- a/modules/overview/pages/che-architecture.adoc +++ /dev/null @@ -1,7 +0,0 @@ -[id="{prod-id-short}-architecture"] -// = {prod-short} architectural elements -:navtitle: {prod-short} architecture -:keywords: overview, che-architecture, che-architectural-elements -:page-aliases: .:che-architecture - -include::administration-guide:partial$con_che-architecture-overview.adoc[] diff --git a/modules/overview/partials/assembly_introduction-to-eclipse-che.adoc b/modules/overview/partials/assembly_introduction-to-eclipse-che.adoc index 0e96bf4191..ec4c453ad6 100644 --- a/modules/overview/partials/assembly_introduction-to-eclipse-che.adoc +++ b/modules/overview/partials/assembly_introduction-to-eclipse-che.adoc @@ -145,10 +145,6 @@ video::HbTKDlOL1eo[youtube] .Additional resources -* xref:administration-guide:che-architecture-overview.adoc[] - -* xref:administration-guide:che-workspace-controller.adoc[] - -* xref:administration-guide:che-workspaces-architecture.adoc[] +* xref:architecture-overview.adoc[] :context: {parent-context-of-introduction-to-eclipse-che} diff --git a/tools/che-icon.png b/tools/che-icon.png new file mode 100644 index 0000000000..7bbe1cce40 Binary files /dev/null and b/tools/che-icon.png differ diff --git a/tools/create_architecture_diagrams.py b/tools/create_architecture_diagrams.py new file mode 100755 index 0000000000..53862106e9 --- /dev/null +++ b/tools/create_architecture_diagrams.py @@ -0,0 +1,185 @@ +#!/bin/env python +# +# Copyright (c) 2021 Red Hat, Inc. +# This program and the accompanying materials are made +# available under the terms of the Eclipse Public License 2.0 +# which is available at https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# + +from diagrams import * +import diagrams +from diagrams.custom import Custom +from diagrams.k8s.controlplane import APIServer +from diagrams.k8s.rbac import User +from diagrams.onprem.database import PostgreSQL +from diagrams.onprem.network import Traefik +from diagrams.onprem.vcs import Git +from diagrams.outscale.compute import Compute +from diagrams.outscale.storage import SimpleStorageService +import os + + +def ArchitectureDiagrams(prod_short, project_context, orch_name): + script_path = os.path.dirname(os.path.realpath(__file__)) + file_path = script_path + \ + '/../modules/administration-guide/images/architecture/' + project_context + '-' + prod_icon = script_path + '/' + project_context + '-icon.png' + graph_attr = { + "bgcolor": "white", + "layout": "dot", + "overlap": "false", + # "splines": "curved" + } + + filename = file_path + 'architecture-with-che-server-engine' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + edge_attr={"constraint": "false"}, + graph_attr=graph_attr): + devfile = Git('Devfile v1') + dashboard = Custom('User dashboard', prod_icon) + che_host = Custom(prod_short + ' server', prod_icon) + with Cluster(orch_name + ' API'): + workspace = Compute('User workspace') + devfile >> dashboard >> che_host >> workspace + + filename = file_path + 'interacting-with-devworkspace' + with Diagram(filename=filename, + show=False, + direction="LR", + outformat="png", + graph_attr=graph_attr): + devfile = Git('Devfile v2') + dashboard = Custom('User dashboard', prod_icon) + with Cluster(orch_name + ' API'): + devworkspace_operator = Compute('DevWorkspace') + workspace = Compute('User workspace') + devfile >> dashboard >> devworkspace_operator >> workspace + + filename = file_path + 'deployments-interacting-with-devworkspace' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr + ): + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + che_gateway = Traefik('Gateway') + devfile_registries = SimpleStorageService('Devfile registries') + che_host = Custom(prod_short + ' server', icon_path=prod_icon) + git = Git('Git provider') + postgres = PostgreSQL('PostgreSQL') + plugin_registry = SimpleStorageService('Plug-in registry') + kubernetes_api = APIServer(orch_name + ' API') + user = User('User browser') + user >> che_gateway + che_gateway >> [che_dashboard, devfile_registries, che_host, + plugin_registry, kubernetes_api] + che_host >> [postgres, git] + + filename = file_path + 'gateway-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + user = User('User') + che_gateway = Traefik('Gateway') + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + devfile_registries = SimpleStorageService('Devfile registry') + che_host = Custom(prod_short + ' server', icon_path=prod_icon) + plugin_registry = SimpleStorageService('Plug-in registry') + user_workspace = Compute('User workspaces') + user >> che_gateway >> [ + che_dashboard, che_host, devfile_registries, plugin_registry, user_workspace] + + filename = file_path + 'dashboard-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + devfile_registry = SimpleStorageService('Devfile registries') + che_host = Custom(prod_short + ' server', icon_path=prod_icon) + plugin_registry = SimpleStorageService('Plug-in registry') + crd_workspace = APIServer(orch_name + ' API') + che_dashboard >> che_host, + che_dashboard >> [ + devfile_registry, plugin_registry] + che_dashboard >> crd_workspace + + filename = file_path + 'server-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_host = Custom(prod_short + ' server', icon_path=prod_icon) + postgres = PostgreSQL('PostgreSQL') + git_provider = Git('Git provider') + crd_workspace = APIServer('API') + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + che_dashboard >> che_host + che_host >> [git_provider] + che_host >> crd_workspace + che_host >> postgres + + filename = file_path + 'postgresql-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_host = Custom(prod_short + ' server', icon_path=prod_icon) + postgres = PostgreSQL('PostgreSQL') + che_host >> postgres + + filename = file_path + 'devfile-registry-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + devfile_registry = SimpleStorageService('Devfile registries') + che_dashboard >> devfile_registry + + filename = file_path + 'plugin-registry-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_dashboard = Custom('User dashboard', icon_path=prod_icon) + plugin_registry = SimpleStorageService('Plug-in registry') + che_dashboard >> plugin_registry + + filename = file_path + 'user-workspaces-interactions' + with Diagram(filename=filename, + show=False, + direction="TB", + outformat="png", + graph_attr=graph_attr): + che_gateway = Traefik('Gateway') + git = Git('Git provider') + container_registries = SimpleStorageService('Container registries') + artifact_management = SimpleStorageService('Dependency provider') + + user = User('User') + user_workspace = Compute('User workspaces') + user >> che_gateway >> user_workspace + user_workspace >> [git, container_registries, artifact_management] + + +ArchitectureDiagrams(project_context='che', + prod_short='Che', + orch_name='Kubernetes') + +ArchitectureDiagrams(project_context='crw', + prod_short='CodeReady Workspaces', + orch_name='OpenShift')