From b40592f2c3e49c6837bd95de26a864063364868b Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:26:49 -0600 Subject: [PATCH 01/17] scaffolding and initial doc update --- content/patterns/hypershift/_index.adoc | 103 ++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 content/patterns/hypershift/_index.adoc diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc new file mode 100644 index 000000000..bd20aa4fa --- /dev/null +++ b/content/patterns/hypershift/_index.adoc @@ -0,0 +1,103 @@ +--- +title: HyperShift +date: 2023-11-15 +validated: true +summary: This pattern is for deploying the Hosted Control Plane (HyperShift) service. +products: +- Red Hat OpenShift Container Platform +- Multi-cluster-Engine +- AWS Controller for Kubernetes (S3) +industries: +- infrastructure +aliases: /hypershift/ +pattern_logo: medical-diagnosis.png +links: + install: getting-started + arch: https://www.redhat.com/architect/portfolio/architecturedetail?ppid=6 + help: https://groups.google.com/g/validatedpatterns + bugs: https://github.com/validatedpatterns/medical-diagnosis/issues +ci: hypershift +--- + +:toc: +:imagesdir: /images +:_content-type: ASSEMBLY +include::modules/comm-attributes.adoc[] + +//Module to be included +//:_content-type: CONCEPT +//:imagesdir: ../../images +[id="about-med-diag-pattern"] += About the {med-pattern} + +Background:: + +This pattern is designed and intended to assist with simplifying the deployment of a HyperShift Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. + +Workflow:: + +* Install multicluster-engine operator +* Create an instance of the multicluster-engine which enables the tech preview feature `hypershift` +* Install the AWS Controller for Kubernetes (ACK) operator for S3 +* Create an S3 bucket to be used by HyperShift for OIDC +* Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. + +This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video]. + +image::medical-edge/dashboard.png[link="/images/medical-edge/dashboard.png"] + +//[NOTE] +//==== +//This pattern is still under development. If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. +//==== + +[id="about-solution-med"] +== About the solution elements + +The solution aids the understanding of the following: + +* How to use a GitOps approach to keep in control of configuration and operations. +* How to deploy AI/ML technologies for medical diagnosis using GitOps. + +The {med-pattern} uses the following products and technologies: + +* {rh-ocp} for container orchestration +* {rh-gitops}, a GitOps continuous delivery (CD) solution +* {rh-amq-first}, an event streaming platform based on the Apache Kafka +* {rh-serverless-first} for event-driven applications +* {rh-ocp-data-first} for cloud native storage capabilities +* {grafana-op} to manage and share Grafana dashboards, data sources, and so on +* S3 storage + +[id="about-architecture-med"] +== About the architecture + +[IMPORTANT] +==== +Presently, the {med-pattern} does not have an edge component. Edge deployment capabilities are planned as part of the pattern architecture for a future release. +==== + +image::medical-edge/edge-medical-diagnosis-marketing-slide.png[link="/images/medical-edge/edge-medical-diagnosis-marketing-slide.png"] + +Components are running on OpenShift either at the data center, at the medical facility, or public cloud running OpenShift. + +[id="about-physical-schema-med"] +=== About the physical schema + +The following diagram shows the components that are deployed with the various networks that connect them. + +image::medical-edge/physical-network.png[link="/images/medical-edge/physical-network.png"] + +The following diagram shows the components that are deployed with the the data flows and API calls between them. + +image::medical-edge/physical-dataflow.png[link="/images/medical-edge/physical-dataflow.png"] + +== Recorded demo + +link:/videos/xray-deployment.svg[image:/videos/xray-deployment.svg[Demo\]] + +[id="next-steps_med-diag-index"] +== Next steps + +* Getting started link:getting-started[Deploy the Pattern] +//We have relevant links on the patterns page From 7244ca2f6345b16ed529436ba7dfd2cf8308ed32 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Wed, 15 Nov 2023 18:35:43 -0600 Subject: [PATCH 02/17] Adding architecture diagram image --- .../hypershift-high-level-architecture.png | Bin 0 -> 123027 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/images/hypershift-high-level-architecture.png diff --git a/static/images/hypershift-high-level-architecture.png b/static/images/hypershift-high-level-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4a87b2797527dc9a7c0b929e32e923be9e9d1cb6 GIT binary patch literal 123027 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 e5NU>4j7biE}f1A67 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�nmP)Ta3pc0i-Hh`lydRDrbW1-(UUDl28tJ&c_=1m%jh< zX758VN(7t%$mQ>5>&=NkZ9gY6_U-*>k9ChBJmE)GW1b=40Q9mi4B&pdMU^%fJChOb8&FW>edLo58CmOwhVKQ0Vo9{+jN_SSUM5jo|&d&019gUizxf@`dJaXM-qZ44uy}jU*iGhP|q3j z;oZ0b;2TxTV8OnxPVkY!@&T0ov6mF*V%^&sq4(Lxf{{21c z1o$f40A8`0h4D0*aOxLvIm06WH8&99M?)#OuE|JLmO=IxeVv_Km z;@x^{rU(*c1$G4exAFHj|HkeI=n4y9u>{3c3oiAt1TWmV4@uwfMtfWin%!7V`*LwE zN^(Ppg|`1LxR2hs1Ox(;WT|$$T+#?ljhO%5@^eWJ=2@;Bdj6NZ_{*nPr({44?6IG*?3? zV7sf5qH8YK*)U?SNdS)mV|u{O7!Owpe5WJisSt=7y~5_to7$@C+55!YR`z%+4C zM|AXVPA-CWUQyd7XR8gOq4ZTw3{uloc8#;x*iI{-N{mmvTX&1g8(zoD7&!<@1b%pF zeCah`UsjOd)%?ojCmwU)BuVpi4MWDGA0%2x@zc)R{U$5dV^i;}-HWMO<4bMn`fdBt z#2EVpNr}MvpT=7hs&zL}%x+bUjX$Os>W8b%mmW8KH!u3q_wTmtAq*`m_QFhyMnHk9J*LP)3(sJ|;xwynHuTS!-Dh_F(DR?>uaevb~v~jwsZRgA}IP^ zWEwEcn(UKE)RpOKyNbx4N=>)?OtHbD^SmD@w;PF#qLa?_XKx_XE$}(ZKA3s zvTsbAI$WWMBG=K&yRn_d%p=R}{2j7o^10I^+XBEl+Au2FNpf}CDy55Z>s77()zGl8 zve93*HLfu%z_@*oUcVgVbTDhT*8&gLYlwZP1A0LYtcV&%_u2ntU>Bvu;$@YVcC?tj zEf1C&Lh4I;F}a5C%KXY**g`3poJMoab(G&``!BS)kEV;`*}fFsw*PifcKX{A`cCBH zldj3KmPCEL>|d9OSBCvsMwSF3-$mYFs~%Hv4qfv$S0igSk~Ya=cFzVnLa$f8lpD^2 zA3WRtu%v&k)cG}dO?kRvLfdJsg9w>ZQ|25rK_YWrD3YHlZp^>B2_X=F%zECSBRxE% zr%qE@zpoQKkma$HGhIvmQRz+!VNo>6s{u;?h^v#6tvmX41H+&S$_@E<=K=wCFS>0d z7yg|DaCh#uUOG*?|EVvt$_ZRJ{_$!wkzu{39;QLw3SC@NUwKHQwGktx%&p^=|SRKszL$EUp^r!yJ zQUV=g<{=_?L?Pjr_&AmremT>-P`Z50Z|C(cvz!%YK-t{O2)PU7+svt1x4~KO{Wyt+ zJc(uAnFV+8!XqQ+`fMPZx*lNB_e9`iGx(jFOrK7-ZU(eyrLEYOHrMPnZ)RlL+CdV3 z(Ln_9?xr4KqjuTUCq366~i^uHSHN4<$HgRK3yp@Xw zQiOYgV+)x}Awb%G4e~O%FD41Ir4S*L>hkKaWp)XX>X=k``RaS&&_Czs!x)T?*E%{Q z>W4h#l8h7u_d|Pd8hhg-j0uneX)_h}vS;HOBf}XVq%F!TrCvEebJ;-O^b4}Qa{OM$ zzgIw#pg-PE6?OZ%J7eW|I2Al?Qg+*pzu4A#W5f05R-Rj za`9BV0G9X|NK3Cgm@fD1=xKR1@9VrQY%t`aEY*4R$aw!`8fjMgiHL8*wzRcH>Z62k zE$y;HmzY&#;sC5y%Ph!O!ZF>(cv_vS9w1&lP|)4#&jTOs)dOcrPv>6%3wI@(c;3_d zyywvddCz1zpf%WSM31}?+fca&gY}VIpSEspxy-G_G}gq4yIt2V7AI?|h7<F#wk8nm9r?Ot6> zn_R|AXCU5j>RfWkZ$C`55QQ2Gjx^^hl3Idqt^%JX}>8eBQiQ4=RiKI|nA zPJaqC!U5wqX9%o)Sl?MzVt40@yLQ(Y^kHb1p3Qe=Ed8A0MbA{^VMW5vxec%pZNJgS zSrazP*kR|U)rNTKk?K&v)Sg#)aP0dnxiL^yI?SGt_6NGgms3VtL%R}-qTX*6y}jX9 zjO*OR`4h#%p04jRJuY7M=&hv*cYFS>G2%C4aDrLMT&pXBCaLbqM-rTI(aN*1pz? z@4b67EQ*J(-1A(2{ zQZH3#$8NoH*y|pIMYMRO)``7rP~N2o zC$sUpD}bcw038DED9yQD@XQHnfJ>f35ooTK z+WT`gH|<7`I`0Y6Y1nJ9ADO1^nt%Nz-O4IGW6CHDHhjg}NeonT_VW%R(u)+j9M#g7 zPOY-uJ50((pDf~g@Pxr`_vGqOKAo9ly?=|v-tF_@LRKgg`1f~&<3z+I@XUf{JpsbY z%LSj)Ewcy4rJ(n=O)xJ1f$qZ4_1~%q?Rkmi1rj;5<_K9Txvv8FUoF6Ba!Z5)Ay(R( zan2Hf+RQ))W2G|(G_uY&@TH=XgOT~ zkKbc7suPqS*ZM-x(~9?QAP)HBG@BM4RC}|-_NEEt z5NSXPir(&=Sw6|yPh+7D*PBr8)OqUcJYxK3uhy{&_lU&t?e-w=dINA*Ci+K8x{F#v z;6d2mvP6Fd#|=LzF|yvC58yTtkwPTYoC6CxnNx~XT99P48|=;mj4Y8_6*p7gz6OaO}LbXLoZ2E1XdNIk+Dg!w!;4}p(;hh@$ zSd56)cbq9aIo8R9RbC$xPz{yjr9Xcq$@F+S0JL)X;n02V3Oyg)ut_7xC;?w?ZZ2Eb z%@KCgBK;_26ZZrp;JzJ0dQUFOxgA9C*}UJT}`hEWY_rsZ#YmkD}{`FrXiC zLw#BIhRow-`*c*yWE`%NAwPvl5%z?`#vVIL47bqev#K^&=!J_|TqPZ>(mA_TpRLun z53)wpiX5<`nA|9wA?6n*A~-HZhfDra6Ag#!S~V6T zfB|Wv@EzU-zFf87&z1wI2$iV&-mtiPp!af?yLk3g)WZyl$9k_o3Tmv$@)sY^b;Cqg zl*cR#7<~QX9hPnYRbnVtPU#3IV0acA^vv?fN7hU}FaF_xzx+{a>ZSXqFGDDCJUru5 zK&yd=W!Ut|Y6}>aC$qynU2(cpb_=A7j120B#5fE{n#`vId8~Vldz-ekwF&Q-*2vzV zv@=YDe5ZYn$5im1JhQ&{qT$~ng{!RUYp7Q^bK(l;p1&JC>*(dMtir=njDm=C(KhSDGvX z<2zE$}{ z&o(1!_AvIPo@<(qW$1Xte#>1O!4%H0Ug-Grg-{gs?OBw)k+ZCQYKp0y9ks6RBuSh? zaBHVSOJL*PkTG*>$fvnPhneQ{;&Xh7;U&VaWRL|v;66d=F`8+b8oa=jP{#BW41W46 z*{y8*-B+bGsE1$crc9s>4IDT}z>Fe37AT3=GR_c#)3=GL-!IBs*JA^AZ&u0NOX@wm z=M`{;dMP%59;1F?yU2gfCjOh_77ew}P#ih9Sktw+_2R?sjJ*JQ%!;&bD`#1Bt3gNh zCALA>cQTt-z=TM!qB*Q@_@ZBDsJ8#E3%v%`k}g4Q=(m~Ff^_yuD;&|c|C+hab5+d| zk>=63&55pmV~-7z&K#&h6Q8#)u)8O4kb8c$#?fCG7E0WlG!D4Q-4i^!LYLi!;>XSi z4qrb8S9Bx4x4(XUIy6Q~2b8(e+oMC8uZ+j8I1T6S)4UK6r^M<*g^kMXJ|dHo+#1K- ztNcFYb~ezJ${N3fZx;ANGzOnbrzROPywS>d`vw;y+#XXjsdz-X9O=6fdcKH%kGzB# zu8qSwiW2Nx?27fA_5>!_yz(Vk75zo4dU@$i?*ueY#Um0q_VcfKrf+LoZJe3^o;HS- zF~?Q$|Zf1_pvTt^OxdN~&TJ4u{2Q(NAnrQ6wFH=no>akG@P{09;+|4q>r3)|G3 z_BR+>8jMVG|t(D#8 zMY$PHP;t_R_R3%hv8{dmIEU&K!s_E}ZYH&~Us=Ab8CG0?S36d!Ya?NwiiW~Tsaifc z+~co&>nJ?#Wk3FR^GtH56+L1s2R4};XUP=4@83?Fs(UNJi$(4f+kB?o^908%9k!Up z$$4}_i+e$W|9N%Lx94Ja>qu0^_gUphTpQ|gf4(k4%I%Wbe8i91{I_m*vTY?eD!Ex2#@fK?7al*w|9ur;-o_Eneb zg{U=i$qTEcUc9?u;~8}+(RUR9Cj3fKuIEP_uOpW(Eo9$v zZroeeIHySX3Cs3DA%iaq?Ked-642X_jNi1ch(x;Q=Rhd@C7;fd<)Fsh^TPzk!${j- zLt&(DB4lziUPX<;2iVeqt_RyCJW3rE*iqu}DQ(EP-?gW7cJo#f+IYI6w;|o^rV^fh z6lXQ_XF|ujD(KRPsz%Gb;Jf|vq6CVz1uA*o#(gJ4@k|81`m-m3tuKH>LOamdOE!!(IMq-h0w})>E8}?;~3~=z>WdSaaKHec*i zPkJ^-P<*S{z1Ur>#-;J7`xvtD6&4autmBiOb_?G>TfJJ`AIkg?_vosBmAQa5xLOhK zYux&T*OISRPpz1}iIBjQ!Z4zI z6n-+X#CQ?9=-VEhti_aV<;Q4d<%B(D6+EyKdT6G>Ytdps-ZTc=YyR_S-hixNVjrx6 zG442UZ~Aas2PrS6W|K*gN_ilUQy~=CO>NT4-?+gTynZEp6>u?878d5ssY$EVFsy#h zt?qU;YR?5X+kPI#PF1>xQ%NXg%wH7XSE5LsR;9p@Au~HH^IMRiN~_8-6xV^+E(}Wx z)PtJcZ*?Y;0LLMQi?73C;zWHvW{|I#{aU{D+RM2rOs4~IP#hmDis!=)+`#Qcf}$IE zK*AWx9OF>x5#(F9B#@YUh+JS|^5TxG_c}j_a_7n(k=lNroFC_5+i6wNJ@hqJzAj7& zHRruFdt&UB-j7#<$r4)y>mODS@$JBwFlS?$=-?605qtBpf07xqTC6et(SY@O`sJR4 zp)H??hC{AP9Tk!rhJ!TI*36MQv%NlXlpR!IYO&CzRuevITh++|gmiI@h%tvs9#Ck7 zGB9#eKi{mqnhqg}8BLJN{^8Q8k04)vPBKNfo?1gh z>sGqmjD+&&tQ~S7u);>APT{g6^L2T{X96%7pHof5mKHNK1#d&89he(T#A`0SloiGD z=YZusT<^I<@kxLcTZr$r|9<*ZaXr1{pSm@5gP{z6|KS88d`Pa1)Y*`TR~;$-@7S}Z zqjwB|THoT)gJ3(e`u4cAJ^gz;}^dGQoiiQ`oehLg6Ha8a09lkzgk$aXk zob;z^WFRYLdMbsTgzYQAL{F3&Em23@>jIWxss4LOh`4*=fg2eGQuEcPN;Z{}_yE48 zqm3--`-_i>7yAFz^_Ed_Ma{M-G>r%M;1=8o?(P->!3l1Sgy8P(3GNakxVvj`*Tw_E zU4q`7^PT(Ny>Gn3pFKu5u-9I@R;{WztL9n*s#;x9sKLaLV#uuW2}P(5z)xlPM~}cw z3R`w&@NXrI_uLw|j*xmIU;*+@l|HKwgAJpXM6U6SBnpBt|?lLS2g=d0vA=-}yhLTvWHM?)q0IsW!%ltDKmdW;9NOa_eTyrs%O2Zw)dO z-ET2drVbu_*WN=nUUD}*qN9~6&<++G0Mail4*DS;Dm@Ya+)6vGhje=QzBdMxIQ2d& zbTlG~Nhqalw|2eye9+;|5yjN9ssn(-6C^h>kHR#_ZKhu*kOhz|x@<@6;Y7_2_U>aL z@WqtBu6spsR`HPQ89n7Ecq2{jk;BCljwBh}-F2pnrqIETECQw4v0)>&i*8-EbnKtC zR$O|KV+{bnhL@+oPxY+{XsYvOVL}O+<5|lJ0)BV^0Q%0PRhD(@;x&mbLMiqguTy@( z=eHFRIw?k{p$#(>!@ZLvEXv$lR;$*987zAUh|X^vypBKjK1I)KacwXie*w%=3e3ly z*8z1>3$(sAKCORws5~1awmn=DqMz?dt~u{V5&?PlxszvzP<#k%N~d zD&woCm&a8J^0Z!V_sFrC<3^rEw@KkjK&|r2N*_~&S?zE+u*rJYNaNm6Hg95mECtUz*)Y@dGh@h;f)(fhi>Oo@Fyqf4-xyRu1}v*51;2sTX3jX zS4ly<#rZc-kK!N-Zp0f@HlZgGUtP}$;ig?^&%3g}3#=%y!BuS&%0}jRvy76cAm=s- zI8@OU0vawl33Q>`PpuJ%yBCUVX>8Lo_zJ>wd?rBIwtVk#Z+|s=6G4y1Y|95f= zHGc6vKt^PHwsT&qQQma#hq5Lwqkf~s9x-Wr_jjb`PZz|4&1yYE=4aovTTdPQ zR(D}|nmIi7x;quD^tUbGa_a8qjyn#^6mZ3zkOC6_ZFrntZ*Hh?yoT1j_Qw<#^(OIm z)A(@@l9A)=c`!in2APgwdxZV?Q9PP^md_81{9M!CB1#B|kf!u3Q}j>WpWCs_t|reg zEu2#A%*4rt0eLb?f70LoFltfeV{qZ>jABOV zbu|w{XCSr+$zb0ES74KZl)ol*&C@(1TtB%QPnl^UVNw*PUl&rCPV=;}`<* z?wG_fGec1Y`vmn--GTekXZ{?AouQ14PlIOE@52c;oa}0!cIo!m$rD3x++_b|vHW27 zY}~>!7HLdU1VmDI1FFUDO---HRB)tMYyHJCj$WqYqWev8hL9@svW+!~oFa`M${Tw%uh<)!KZ)s$H6Xxj6Zk7 zoBr-`UB!?oolVV*AOS)6Q#H`&rQZvw8Hn~jdfgX|y1NNdZNA%Rg7!9|@sdmsbd7^~ zs8w6%*N}iBb1L+nv=CfyW|q|u6?zg4zCKce_tW;z;-MR;Pt(zTKiyb)p-&XcF-*Kt zA!r6oBOS+Wx#P5LFMSN7Z8&0Vq{37vB7K@bs;SdrLoKN_=e71Wo7!W46wRz?^xa?LVx(<+Go(Z^E_WmW3m z>yEp<;osiGK|0pe{9%601ct*{4m*Q7>lB(Y^};*^#VRhs1cs?xyriP*H$b+|uR+V? z3$@h+Tm0MqbtgW#LDgBKmZnU{BR;~{LMQ`b`1A`lQQ%)8cI_dsi3E!*c1qQh5X1>~ zkv(J~-Xlv)-UAER<{$H(E@@ZF?ja$I%Mw(Qq}#qluVKS#SeZL?n}O4;+S z-XcKXhGeIO@rkLnb;Vffyj7(#;E?vF%xcGaDGQ)4|cc}a$ z)Vik}0FC1(CYpR7I>~4|LeSz`(t{d35L!?$Ti_B-V9l zJF%b(SuXY584~32=M=qn(lJX|L+-fedfG%(9_`~6CMIzC4K&DCPhX62$!I8N`T6n! zhZ|SKy#1_S%58&-kvlGoxvATd=@Mp#Z8wXwQN64jyU4DeIQGJAo!?TT^=5%T=3!WM5#TFV zB7Ua+bvf?p!U|B=d}xx!1eE;taybIVLhT=aWV8Y(*0B9PtX93#6K?)Mgo&JYzCgy% zJ+H;igv#@8saep9s2M3Dhw%cWbHA5+!*kS|y5L|iPY^}Im>KYQJjs8wIZyawLoI!` zQ0-ShsHyUpaM33;V(kNrt$<=zMCW#yBzWm#U-=xmc=s;$(5l;-`V>vJ4vA~*vQFC} zG#R!}z&+A;(u{I`r_m%Wwe>SJ_`XCNz{saKtAJTx&pq82HPx3#Ve6RgJ zP;^^2bu1d4S(LYy@%Nny?WNjr?F+EJ2fy(_;mnXOPH+Hf8-B3VMU$=sd3;Y`t|`|V zGS^s;q4p=|U193v<}dZ&Q>z+2aP}Uot?|!cmJ3|}Sv8Th(!8L{e`Tr?Y3D%h+n^!( zN7Z7cYb$imC_ZTk(CSgrf4$|M{Sr!Z3WxzSeQ)2kW(Nal*QlNT&g}a)!|Bg%YoAa0 zl$8217`jfbt+|)+^{4c;`rm%JHwv=jQf{J-8;iMtj}Cj${OUc0mM2UC=7v6frmSOa zp=mD2k;uITVv3)_d-L*66Tz_-acS&hqFtr4x0xzVt=Z3G(AU>8kPby zrIf+m!%f=;Gyw~?%yCDeV0yB=#!o{adx%Ig?sJxxW;j#R7LxI2T}PGEllOf}>^>i@ zJiruSz8-ia|z06(a5iYR^Yy+T_Nb;>^yxmzQF?R>iY0Yye$1W?XcX-jIGiw18= zG?+hro3N|?ebK3Xu}_33X#;uiBuKrKN_O5$J@C%;0ps4DYkbs52roBPGkdQT*FI9(0gl)AZ z!gK@nCavZtTaP(;eMV>@St~%%O}aJXj?g8@$5bHrCQQU^FCRWGq~10sMb4Ey#~x5! zn7o{mZ@v1a=l_}zX$YD z({WC$S(5W|d(?tE6&545iE+T~3o(mdY*)X|l0>L&t)(8Uf7Bj-|2{-*$v8-A8*N+= zT@^`L5yx**unNneZdR%9>RV5}q<#CeYZ*TT&v~{-KIyW(XjM5*EZ4ecyYp->!vLW4 z+A48W*b|!o%!K5fW8-6VS04!e0IN9xVUI#SCjj;+XqFvE-!dyR&3MK+B+;81dqH$O z90s*!g3WK4o19N9fa5Dzd`d3l)&~x8*T6ugdc5`CWU+JEf?vZ4V4BAyF~+eR4&h=n z>!>dyNn$2Nc(z(q_y_W=`%)t(8OF}6hcFGjca+Gk+HbR5Imb5|S(>=FDHlYD6U5+O zdblxhw79pYE8|of$TEeNRaDP9!oQwYYd+95;qfi&(BIZJ1w znuo(Z%j*41XQe*0UbM>=fQX98WhLg~$tzakfd2-d?AE&3=0l}O!D2-JVsW_kR&PAZ zlGz{2_Mo6Q@7`G9vs>j;t#yvFR$hfu>rc|Aq#j@n1=q0;(S$=;Tv6?6227B8RC|pK zwCXs&$H2T4o!eTi7)G(|wZ;n7+5~g12-o@kRkVCY6NNDJ69+;za$d|j>6E5qmQ?OH zuRxZAA@{X%Qn2DXMJb`mM$5{Ui0a}JR!cPUL8j zz{Z`%vUT>Sv{;i;f&wR?=k;j_-#C@{b8NKTtWp4f-s@?b!6P8#Y&{GBjR)+1xwvL6 z7_CqNZMrAcmVTu_7C=Y6E0yUYP@Q=YkvhL~88B||-T1k7D3uQYLhUz!njF*O$mH5B zb?{(w))w~%9$KeQ4rYyh(bvQ4hZSH$-oLY0 zBo#cf%Rp=7c=3C+ge1HKJPF<(*L^2~Lqvo)$31049M7tzB${_ngBkyw{tzjyLx)xK zsn}OaIeSvj(lK?w1=+?j^l%JT!^YngkDfBTqhNl*% zB8)ts#Qm^zEdc#zg#~d)-`#aV5vG5%^dtUEq@>7_F{_|4%F3*1x*g_ZmMp0`4fn^N38Ia?8*P?ZxpY8rt!exqgKbFuYTN=BFwZhwF&*j zNB4_pi)X`|-?{1U{v?*ORX?OTFTsTbK1P891TOx?u9mK*Htx-2PpQTVR5NB6A0eBg ztA(o?GV(^KpG{^%(DkS3Q6qTAWckL+7t&GVz2f~XIt5;z&||bh_GDo$n*dRFgN^r# znrF@@4J|mz(~+z)?Dz)@PiWP>v?SuKK8GKGX4inl%pebeIN=2|&RN#hr^~h8x?Xq2 z))fl>1;@M6;+4GjBzA+JiJ*WUg`{&`AzGAzC9%m#g6y#v@d9|y%U15_`#0K%FG|n#16X)sRjmkQQ6^Be=od@xgtCjqf=)dS$ z``iOR{;IN{Alurh=P-T(5IKOlkTw_r(O|>C?f1%i-OLQTZ3NqzzVA})c?+E*?;3-& z6}Qof$9??%DxwFyI-DuwW-?CF3xeP{aWSPy3r(OlcxqU>(nWLdWuIztb1M|*85b%l zPy^evq{>VN%9wR+p%|MQ)4COM1A*nbg^|DBO_*(@jCc#*y~t-`S-eZ~kT*MjvbYF*=;$7fg!JzmlD?m_d4&TQjp?){8FE542Q?y z9pDa^c5wgw>nJXRj{!F9+PRmi@H{i|Th0IxV z!vfLX)RkP2xlrFdW~`W=C3Z)@X|2W^GK7hTL_c5 z?k>6w?nAM7X8^nWJkjYxd%4(k=|!_csx`x6T5=tN09y~&X6ar;(J8As67N?W|f7l|ElsWAr9dtD+SM+6eHlWK-tS&0*&qTD)ORF$~f zaEQDl_wL3-@?K|m2%M>xw%Icgwh%Zqp!Rq6cyx8bAZO)M4O}!b655wE$dZ>lS&VxL zzK);wS}-8De70T3RGVROP+PT=yx?Q|@q&yqb5L|#R8{&}(E6$4j^^^X4!iwEE0oRO z`=|AWAqlh<89O;&F*!AvzaxD4xcksijCtotDak$vF+-}^TRe$sJ)TO)*q=x?8_z+r zmBrAm5!%^7(eaVIC=Le1XFP`%1*627@M5)GYn{~pdc)?-wfr+Bn9L(MB%@#3C}Gb2 z78rB{i-Ap`47Xg~wWPtU=em_+jqi8R-w`O`kB8qP;;#gmnW>$MPde$-S3 zDy+xvy3F0G+6jJOM~}kD zsn?JIxtd(-a&bx684~7d%!wU{i!SmB(k@CkeN=-zk404B!3}fxcMIN_kS&RYMcSC(K0u*g!Pm zKWTV?wiB|x7t8Y(;gLyD;zK+cQ6`Ua@713Cah99A^Kc_1gQ4IO-k`=IOhhB;-E{sy zSjKaO9;8K)(9-x9t`i1XrixZb#T%640AhRg94=u*h{y3IKfQjCDPSest7VK4%%7&1 ziK6~m9-lM~aDAaUVb!V+MVY0sFfG5D8Z~J<_KZeJ%zDQ$kSTM+)q=1{cKI0qgnG`S=#wL6(f6 zWUa_(u`J=_VSLGcb4C&EV4H|jf zqTB8Ac1igz&vGS(Ev*kd2wn#8nILliKu9NTAu&P(vb~Us2JA0{`m}s1guaJ8R)6?a zS*YVOmD=Oq{cXX05=nuNnn=69b$)Ul9Y*(Bt~LLlLz4^*KO5sBE<1D;Z|4_qF_~wz z>?a;<`waKfn}&3&>*jvP+>7A=CO>CZ;QD&;yCQbxUT>oE9y}jY~N+j z%VkmT9?@}wPj@*E(Rel5L(1JGh>|yc__{8(H8{%a+ipElf2FKRLzUohWmSk##DPS( z|!whl?y{rmL@4}PiaS8C(Lp@Oo+-1E*! z(*(7}q=vLB$2`TG5hJlQ1&y5Gqn6v&n;i{dZE50tn42fF4c3yuF()N29rRdgGZpk0 z8Sp{&34(Ec!#)@WiK7X481k)KK1#H;+ zw|?K!VA<;%tC)>ZDBu!OYT~z%2sHM0tr3c?TTWr-$T+|3-rhMaA+iN zhW#crKr_jpa8nH*KCAsJvm zi>R>jv?1k_VRMb|Ty~9lGAH78*T=_t^HOgwr%S=ZQYPaUv zjth%HVk2Sc6?O<}89TAX0h0DF*o4*SaC6;aB=v z8mQw%@KDAhqUdG}sRUlVGW~0qYSYpiP(-j8!zNG%T;Te%9QPGZn=nL*%K>_@p%x2S z>DQtxFM4SF0y}>)HI^n=0Wx~9dk=rH(A7nRgX^G$;~*CvykgytREI_{ zIU%yD6zfX%{iUcM69yT-^@vp~c#C)d|HIGQ8j*vA;y5V)Ws&sGouB+AeS%UhU_x6* zR{v+Z3X>&0OF(^K^m-#tSHoFEm!7Lz>UREXrv)0R2E*9ZdMEHj_W z$S5*AvE>oo8ht^Q#CGj{TV@p&)R|@{eX@~r0wscHJFe$^4x)-D2BvKkt@75$wy}_y z)h;hS0&fGt`z!3qUcD<^ekJov3Mw?Atzg=2-GT&xVo^_6H*B5xX8CGR^ zohchNmgm%TWDB=I?*-4ogZt3jutQoMKS^*|Ox>ZaqUn3k>isym?wE3%deGyi0^S`z znaiDfG|HhbTE2cNZbDYtVVUzQZmaQcZLpUf%hT}R(gvApL$ z*nH`AJ0j?s!tch1)p=rzt;M* zR-MZrj4fRXtvVi?QMLx>KfyZi8>4>`X%|A5ci~XRoOtXgoRBUtudso4Bt=2g8Q?)H zfyTGdam0$#s_vi?148zm&rJ>PK(3s9qal&1fggo>P&7o&w)J?%Yxw16{+xbzZjPN9 ztqP9vkMIe1s7UEXb9R%fBoHUHktTS@(CN*fDKuGWw$o+NoEP# zn|~=gQ)w#eMD9ti_W@_MY0=N+N|X*;=~n^rrSGFpUFYXMIRTz7kdHJ2rC7txTxt0m zFPS(CB&3nBg;O()-_eaCg`5vS3N?y*Dg&A-XN}gcJcM|O*WoNb)j=W`2LltA&KqkS-iJyzj>zw zSJEkFJt(aUieD9+g}`iP91=id@L#5%>;C$O`r=)bLo<58lAg8!#O|F2yvWxuyS3p3 zwURTvy4*f+BZCr11|I=XF;{FI*tvEzl^~1e3`471;4P`SINZPsV8(($#%kS(bqMFAUq=_! z4{Taj2$8DG#*hz@zONbT_c|=SE|bG?FOZQ3#P@jiZqgF%moP9L2p7lF>?A2K7CMFH z`RI9#HKK@{-jP#?3z4Z>V0)*Hz`-IHCM4p=6SBYy)|r2@jR~X<41?pwEp3 ziUdg|>veSB@tRd0S)2V&CVPHXCT6lN8ZtF=6xLEnt2FV*iLX9HUV=lnNt~nJ2Gc&D zhtbeSRt%tZ+RJ52sbk82e^3LzrSNA>yj#aP8=5VsYNTr)kR#>?81edcKnfZ3=}ciQr{!mXsJ5VeAr?^>#+!l(LV? z9VD;xm?_fBA>3{D$mAj9G}%KxRiNtobx0X`C*XBnH$VAGR)1v_P>5lasPpto%Jr_5|HDMY<7gFEMT&FZw{YhkpE30J%dyDY9MEU^scpE|$;MZoHaz*o_hfquGCf zA%eMae?imX_*%>;!0PC*Tnca* zOw-I$trTtMQeVtzN2*vXE`1rIaAny#Bj?AgMlE6h%3?(pZ!~0mRJ*PVnrNimX^0h4N2t z@{1Ui8)-)b+^wXt{S1+LGqQX=$k7?6&$=dmRTb1GZoQ?S*!@Daw(SGvCq!4=ElMdF z3nozf6X(aB&B9`s)|q#VDK{bS_#Dk*#G3bbw(mmhE0Uc+UD_Llz2SU4-C`sYjrnSx zLKI?g*zWt}6aWey!1P`;Yo^dg+;z5FuB{a;q^;@Wdy!Lb-+Nm&X%I##bE6z}!i)k& z7>solAM^MG*6HdLqn;jLA%&&)vR$kw7zc+C8nj)uk!;7UyuPGV%qN!~n{pT$*@`}Y zlQzGbmaWUeMe!K(+5v<^M_Ejd(W_&tb^&;x0*ua}#ME~OO{u)jhk|JIuZvQmbHIfy z6dQ-55H4EiIob92&i2DW@wVuzcOtA(6*1RfdDn}lB8)0DWJWr7;>etnApAY!;!4Bl zu>}&%(rFu4qY!XFre;%-nu)?;z4hRZ;}nJOsmAN*HBk;5=1M^62Y4yH^xe@-8MMd` zcN{}<=X)8-y1J%PUO$4S7x6?v@(p^JodG@%=X-1qYtGkAwWAXkg62CiWkRGKUbBeE zEQ{lfUaRJaUr8DzVfqoi4PD?dmEZ>HGP8|(oz;{iowA3^&^{dg{Bgn%Wb5uDfo>yQ z4-tnH#%)Xav%LJ&im>cQDubRs>$iC}P?~?p)^uHcKej`S<>@F+8gqr|j8Z>(D2Zi- z0vj9@VmXPwm@6*i;Ev&WToXw1rJivy?>+9m@I;N$8Nr9DkS~OHKbHmr;WL8-nV3q= z5T*&*Pk3e*R_0)C{3898fhit;hnWAd4~7B%jRpcbf3s;5bPSYeye*|7MmYpga~cl* z+9!?i!eGeuvoae;1v4IEwd(I7G+z1P`LSXJ)~AjtUKZ?l>i4%uD%(Q_)8mv>SU27? zcvAT}gB;UHjj=iG4c5l)h~}1;}~8|%5QjoXrF$x3Y0$In_k3{t1`jdXZ0KU zLEX#E1TMz$gw7G5)jhaQp0{RE+(I?q97pjs&1(%a7wH9z4FgR~JMrzauN{&#vA1RO46-7^`&yASlOrYELqtva|BK5_@Wf=%aQK+yJV7C?OS}91$AU zyuWcgi-QPFPmgnjt#*OJ(X6buWe!V1*OT-%lXfDrG1aL z>VdOAY6d`C$kW<}92y?=w!F7;&|{qok8aE5-`l~U&q!7o5}XV}?|lSfF8ZAJHRJ#SM0m(mH>`@4b_gE!r|7cE|2evEs*K3hkD9t);A?i9>kygOMRE=QHJ2DyZyfuyJh#EXKl zUSpc36vGd~ueaH`3cA}S!?*Fs;@Z6+Jo=#<5jrKq)Gdv{m`y4OW^tsL`NJ^N zDNN@~F`gTImFb>;Kfy2SsBT8vs7!3QWc-V)`BLE`$1U64_sP`B=dMjtu6n*g5>Xr# zQ;Ex3i|Ebaz=TYgVVDUlNS=+1Uhp%vE%7|sARdaklY$W;guG$XIAw$}5%QxZ1ofa{ z`_FpT2CAAx?MkKtVeT(ifl_vONUOFNfGh9bahnEb?qAp0FN2ipczjVU$#@+mTD=sehK0M# zj@WZ25=d|k*b3}jo;MkLcgb>MRX|zH0#098oj;beoTN(wWih0_O#oM#;={ju5VzFC z!=QGh+bnJVC#{ery50`O#c%lX{N9p{Ru}5LJ+WT|E5rh>++90orHh*_vKU(X6u;4g zuQ74RbOPp)Ki6bp38+YmVbNQH9k0$VssqQ)0#2dU+~j(-{qdvs6T?8aC2>QJ-vm3R zR^{VeN_WHJTTy(?@|!%QZ`dG;_O1E9Ij>WUFbZ_<$`71sW1&eWd$2Q zv3BW#H@sr|2!VK1sv-;l8?V{hXiKePIuV#$^xNleFr@Aiye9dAO6UG?i$`(k$~mcM zEdRL6rgcgGwmLz7pmiuKgwN%3;m|>whe&4JCH&3)+^hfvkR+ji=7t{4$!B(W)@=J< zvjx8kww%CS%bb5X^BcrrRpqrR^8NJn6&Dtmk6}8{IjYpCTI>ARdq?rdF91HA<%3c| zLb%dwYf}<``~0;3qo}@2Vag)Vk?g@vcJ?V(oXFEc!qA;&QN0JWj{LL!{cxzYCK}ghJVv1MRG|^ZG+wh71=>2=GD0uWTkO^T>$_EocqN{gDt&ps_xt{^y;9S^6nZ94v8ZVr z`_Qlrn$@<6d8$djHNvenp`!3Sc^qk#J|A=G;^cmu5Oifus@_8TRpjUQ<93=2snk?~ zb7}AVNbJ9F_}`byAmF}#dzQ)cb$z#61K!j{AYaKHekn!ut>C# z{GVF#o5^~qc87mvWo-n$vRg-G32;oWeEdjzN*#*{gmK|s_l{2FF1V6zVwFJkv-}dN zKzMAz+r11s;Tz>lIna2+>&td|8TP)&W4QBK zN0-hmR9hbok@NesphYyeSUKs>_5ij~N4hlW{ZMHu3*wNXcIkg!@PDj}N{t%{@E6=+ zWjAmkwJeUmzi$iN8zWCPfI5*wYS_5&%gg?nE$Mn z0CdqT-?m;GvV~GZt4MRXn}qFqE{;5z$*|>h_WitE=ZP$WRk#0Ix^S~+Q8|BldqtbH z;=c|1e_!Gy|9NrBW>-BIAa@*aUULHWCj$~;Pxi)jLC^ZRdh5O}#9~zfnq_`Q#(rVD z)c%*hs%>>m$zUttgwlu*50Czoz5Yd>n^Ft zpsN_fyI~hyjT3>rBoBrE&!Yd&iu=FU0ZJIK4nq1m9rZ#3(GI?{63qS)k_=V*n_N=4 zw;_#ZA0o)pYW_d{IX&_}1R4}`Cj1P?o{^chO P@FOp+B2_729QeNg6S Date: Wed, 15 Nov 2023 20:11:53 -0600 Subject: [PATCH 03/17] Added initial content for hypershift --- content/patterns/hypershift/_index.adoc | 57 +++++------------- .../hypershift-high-level-architecture.png | Bin 2 files changed, 14 insertions(+), 43 deletions(-) rename static/images/{ => hypershift}/hypershift-high-level-architecture.png (100%) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index bd20aa4fa..0a95db28d 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -13,9 +13,8 @@ aliases: /hypershift/ pattern_logo: medical-diagnosis.png links: install: getting-started - arch: https://www.redhat.com/architect/portfolio/architecturedetail?ppid=6 help: https://groups.google.com/g/validatedpatterns - bugs: https://github.com/validatedpatterns/medical-diagnosis/issues + bugs: https://github.com/validatedpatterns-sandbox/hypershift/issues ci: hypershift --- @@ -42,62 +41,34 @@ Workflow:: * Create an S3 bucket to be used by HyperShift for OIDC * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. -This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video]. +//This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video]. -image::medical-edge/dashboard.png[link="/images/medical-edge/dashboard.png"] +image::hypershift/hypershift-high-level-architecture.png[link="/images/hypershift/hypershift-high-level-architecture.png"] //[NOTE] //==== -//This pattern is still under development. If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. +//If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. //==== -[id="about-solution-med"] +[id="about-solution-hyp"] == About the solution elements -The solution aids the understanding of the following: +The solution enables the rapid provisioning of hosted controlplane clusters. -* How to use a GitOps approach to keep in control of configuration and operations. -* How to deploy AI/ML technologies for medical diagnosis using GitOps. - -The {med-pattern} uses the following products and technologies: +The {hyp-pattern} uses the following products and technologies: * {rh-ocp} for container orchestration * {rh-gitops}, a GitOps continuous delivery (CD) solution -* {rh-amq-first}, an event streaming platform based on the Apache Kafka -* {rh-serverless-first} for event-driven applications -* {rh-ocp-data-first} for cloud native storage capabilities -* {grafana-op} to manage and share Grafana dashboards, data sources, and so on +* {rh-mce}, the multicluster-engine provider * S3 storage -[id="about-architecture-med"] -== About the architecture - -[IMPORTANT] -==== -Presently, the {med-pattern} does not have an edge component. Edge deployment capabilities are planned as part of the pattern architecture for a future release. -==== - -image::medical-edge/edge-medical-diagnosis-marketing-slide.png[link="/images/medical-edge/edge-medical-diagnosis-marketing-slide.png"] - -Components are running on OpenShift either at the data center, at the medical facility, or public cloud running OpenShift. - -[id="about-physical-schema-med"] -=== About the physical schema - -The following diagram shows the components that are deployed with the various networks that connect them. - -image::medical-edge/physical-network.png[link="/images/medical-edge/physical-network.png"] - -The following diagram shows the components that are deployed with the the data flows and API calls between them. - -image::medical-edge/physical-dataflow.png[link="/images/medical-edge/physical-dataflow.png"] - -== Recorded demo +// All commented out by jrickard +//== Recorded demo -link:/videos/xray-deployment.svg[image:/videos/xray-deployment.svg[Demo\]] +//link:/videos/xray-deployment.svg[image:/videos/xray-deployment.svg[Demo\]] -[id="next-steps_med-diag-index"] -== Next steps +//[id="next-steps_med-diag-index"] +//== Next steps -* Getting started link:getting-started[Deploy the Pattern] +//* Getting started link:getting-started[Deploy the Pattern] //We have relevant links on the patterns page diff --git a/static/images/hypershift-high-level-architecture.png b/static/images/hypershift/hypershift-high-level-architecture.png similarity index 100% rename from static/images/hypershift-high-level-architecture.png rename to static/images/hypershift/hypershift-high-level-architecture.png From eb498a4b84c1ae794710ebe2363e1b4513fc9cc4 Mon Sep 17 00:00:00 2001 From: jrickard Date: Thu, 16 Nov 2023 11:11:21 -0600 Subject: [PATCH 04/17] Updated attributes to allow for hypershift module usage --- modules/comm-attributes.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/comm-attributes.adoc b/modules/comm-attributes.adoc index 17063577f..028256454 100644 --- a/modules/comm-attributes.adoc +++ b/modules/comm-attributes.adoc @@ -13,6 +13,8 @@ //Patterns :aeg-pattern: Ansible Edge GitOps pattern :aeg: Ansible Edge GitOps +:hyp: HyperShift +:hyp-pattern: HyperShift pattern :ie-pattern: Industrial Edge pattern :ie: Industrial Edge :mcg-pattern: Multicloud GitOps pattern @@ -81,6 +83,7 @@ //ACM :rh-rhacm-first: Red{nbsp}Hat Advanced Cluster Management (RHACM) :rh-rhacm: RHACM +:rh-mce: Multicluster Engine //:rh-rhacm-version: 2.5 //ACS :rh-acs-first: Red{nbsp}Hat Advanced Cluster Security for Kubernetes @@ -121,6 +124,8 @@ :quay-short: Quay // Red Hat Quay Container Security Operator :rhq-cso: Red{nbsp}Hat Quay Container Security Operator +// OpenSource/Community Operators +:ack-s3: AWS Kubernetes Controller for S3 //Cloud platforms :AWS: Amazon Web Services (AWS) :GCP: Google Cloud Platform (GCP) From ac1b7377a2d6152334abb7cba75339ffc742eae4 Mon Sep 17 00:00:00 2001 From: day0hero Date: Thu, 16 Nov 2023 11:13:39 -0600 Subject: [PATCH 05/17] updated hypershift front page --- content/patterns/hypershift/_index.adoc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 0a95db28d..33ef0b5ce 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -1,12 +1,10 @@ --- title: HyperShift date: 2023-11-15 -validated: true +validated: false summary: This pattern is for deploying the Hosted Control Plane (HyperShift) service. products: - Red Hat OpenShift Container Platform -- Multi-cluster-Engine -- AWS Controller for Kubernetes (S3) industries: - infrastructure aliases: /hypershift/ @@ -26,12 +24,12 @@ include::modules/comm-attributes.adoc[] //Module to be included //:_content-type: CONCEPT //:imagesdir: ../../images -[id="about-med-diag-pattern"] -= About the {med-pattern} +[id="about-hyp-pattern"] += About the {hyp-pattern} Background:: -This pattern is designed and intended to assist with simplifying the deployment of a HyperShift Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. +This pattern is designed and intended to assist with simplifying the deployment of an {hyp} Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. Workflow:: @@ -60,7 +58,7 @@ The {hyp-pattern} uses the following products and technologies: * {rh-ocp} for container orchestration * {rh-gitops}, a GitOps continuous delivery (CD) solution * {rh-mce}, the multicluster-engine provider -* S3 storage +* {ack-s3}, a S3 storage controller // All commented out by jrickard //== Recorded demo From ed22b8126cae6572063059731de6308bce7a300c Mon Sep 17 00:00:00 2001 From: day0hero Date: Thu, 16 Nov 2023 16:13:12 -0600 Subject: [PATCH 06/17] Updated attributes and _index Moved most hypershift references to hosted control plane in both attributes configs and the _index.adoc file. --- content/patterns/hypershift/_index.adoc | 18 ++++++++++-------- modules/comm-attributes.adoc | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 33ef0b5ce..8282e00bf 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -5,6 +5,8 @@ validated: false summary: This pattern is for deploying the Hosted Control Plane (HyperShift) service. products: - Red Hat OpenShift Container Platform +- Red Hat MultiCluster Engine +- AWS Controller for Kubernetes industries: - infrastructure aliases: /hypershift/ @@ -24,12 +26,12 @@ include::modules/comm-attributes.adoc[] //Module to be included //:_content-type: CONCEPT //:imagesdir: ../../images -[id="about-hyp-pattern"] -= About the {hyp-pattern} +[id="about-hcp-pattern"] += About the {hcp-pattern} ({hcp}) Background:: -This pattern is designed and intended to assist with simplifying the deployment of an {hyp} Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. +This pattern is designed and intended to assist with simplifying the deployment of an {hcp} Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. Workflow:: @@ -40,20 +42,20 @@ Workflow:: * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. //This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video]. - -image::hypershift/hypershift-high-level-architecture.png[link="/images/hypershift/hypershift-high-level-architecture.png"] +//[#fig:001] +image::hypershift/hypershift-high-level-architecture.png[link="/images/hypershift/hypershift-high-level-architecture.png",title="source: https://hypershift-docs.netlify.app/", align="center"] //[NOTE] //==== //If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. //==== -[id="about-solution-hyp"] +[id="about-solution-hcp"] == About the solution elements -The solution enables the rapid provisioning of hosted controlplane clusters. +The solution enables the rapid provisioning of {hcp}. -The {hyp-pattern} uses the following products and technologies: +The {hcp-pattern} uses the following products and technologies: * {rh-ocp} for container orchestration * {rh-gitops}, a GitOps continuous delivery (CD) solution diff --git a/modules/comm-attributes.adoc b/modules/comm-attributes.adoc index 028256454..d5a03a6dc 100644 --- a/modules/comm-attributes.adoc +++ b/modules/comm-attributes.adoc @@ -13,8 +13,8 @@ //Patterns :aeg-pattern: Ansible Edge GitOps pattern :aeg: Ansible Edge GitOps -:hyp: HyperShift -:hyp-pattern: HyperShift pattern +:hcp: Hosted Control Plane +:hcp-pattern: HyperShift pattern :ie-pattern: Industrial Edge pattern :ie: Industrial Edge :mcg-pattern: Multicloud GitOps pattern From f0873d01ebcb3095c20e3c54ae9be092a1220036 Mon Sep 17 00:00:00 2001 From: day0hero Date: Thu, 16 Nov 2023 16:15:59 -0600 Subject: [PATCH 07/17] Added NOTE section back in --- content/patterns/hypershift/_index.adoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 8282e00bf..021ba2248 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -42,13 +42,13 @@ Workflow:: * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. //This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video]. -//[#fig:001] + image::hypershift/hypershift-high-level-architecture.png[link="/images/hypershift/hypershift-high-level-architecture.png",title="source: https://hypershift-docs.netlify.app/", align="center"] -//[NOTE] -//==== -//If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. -//==== +[NOTE] +==== +If you have any questions or concerns contact mailto:jrickard@redhat.com[Jonny Rickard]. +==== [id="about-solution-hcp"] == About the solution elements From d566a96e85fcfbea615dab67246b81682435af9f Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:32:16 -0600 Subject: [PATCH 08/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 021ba2248..987c6ebd4 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -8,7 +8,7 @@ products: - Red Hat MultiCluster Engine - AWS Controller for Kubernetes industries: -- infrastructure +- Infrastructure aliases: /hypershift/ pattern_logo: medical-diagnosis.png links: From dc60b215826f1c31d2e657aee8bd0c3cabee61f7 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:34:17 -0600 Subject: [PATCH 09/17] Update modules/comm-attributes.adoc Co-authored-by: Avani Bhatt --- modules/comm-attributes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/comm-attributes.adoc b/modules/comm-attributes.adoc index d5a03a6dc..aa4bf24c9 100644 --- a/modules/comm-attributes.adoc +++ b/modules/comm-attributes.adoc @@ -13,7 +13,7 @@ //Patterns :aeg-pattern: Ansible Edge GitOps pattern :aeg: Ansible Edge GitOps -:hcp: Hosted Control Plane +:hcp: hosted control plane :hcp-pattern: HyperShift pattern :ie-pattern: Industrial Edge pattern :ie: Industrial Edge From 57c77a27aeac3e44da61ffecf6d8e6b5f2471ae4 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:35:03 -0600 Subject: [PATCH 10/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 987c6ebd4..de4fd98ea 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -31,7 +31,7 @@ include::modules/comm-attributes.adoc[] Background:: -This pattern is designed and intended to assist with simplifying the deployment of an {hcp} Hosting cluster. When this pattern is deployed, users will be be able to create hostedclusters of their own. +This pattern simplifies the deployment of an {hcp} or hosted control plane cluster. Use this pattern to create hosted control plane clusters. Workflow:: From 84f52ddfe9a81b9e76c7c0d2239fbf3c4a01a08e Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:35:11 -0600 Subject: [PATCH 11/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index de4fd98ea..ecd78beed 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -12,7 +12,7 @@ industries: aliases: /hypershift/ pattern_logo: medical-diagnosis.png links: - install: getting-started + help: https://groups.google.com/g/validatedpatterns bugs: https://github.com/validatedpatterns-sandbox/hypershift/issues ci: hypershift From c3db49e5326cbe39799b9f1fbe0015f72dee76c2 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:35:39 -0600 Subject: [PATCH 12/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index ecd78beed..2b3dbbcd7 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -35,7 +35,7 @@ This pattern simplifies the deployment of an {hcp} or hosted control plane clust Workflow:: -* Install multicluster-engine operator +* Install multicluster engine for Kubernetes Operator * Create an instance of the multicluster-engine which enables the tech preview feature `hypershift` * Install the AWS Controller for Kubernetes (ACK) operator for S3 * Create an S3 bucket to be used by HyperShift for OIDC From 6c62ac191818e5667d906108eca68673a3a290a8 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:35:47 -0600 Subject: [PATCH 13/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 2b3dbbcd7..d09c792c1 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -36,7 +36,7 @@ This pattern simplifies the deployment of an {hcp} or hosted control plane clust Workflow:: * Install multicluster engine for Kubernetes Operator -* Create an instance of the multicluster-engine which enables the tech preview feature `hypershift` +* Create an instance of the `MultiClusterEngine` to enable `hypershift`, which is a [technology preview feature](https://access.redhat.com/support/offerings/techpreview). * Install the AWS Controller for Kubernetes (ACK) operator for S3 * Create an S3 bucket to be used by HyperShift for OIDC * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. From e89343f46da5fbeb10c2d86f1461938e4327728d Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:36:19 -0600 Subject: [PATCH 14/17] Update modules/comm-attributes.adoc Co-authored-by: Avani Bhatt --- modules/comm-attributes.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/comm-attributes.adoc b/modules/comm-attributes.adoc index aa4bf24c9..4b5da080c 100644 --- a/modules/comm-attributes.adoc +++ b/modules/comm-attributes.adoc @@ -83,7 +83,8 @@ //ACM :rh-rhacm-first: Red{nbsp}Hat Advanced Cluster Management (RHACM) :rh-rhacm: RHACM -:rh-mce: Multicluster Engine +:rh-mce: multicluster engine for Kubernetes +:mce-short: multicluster engine //:rh-rhacm-version: 2.5 //ACS :rh-acs-first: Red{nbsp}Hat Advanced Cluster Security for Kubernetes From 47831e5e9d987f15b72c099693936d2f9bf99b54 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:36:25 -0600 Subject: [PATCH 15/17] Update modules/comm-attributes.adoc Co-authored-by: Avani Bhatt --- modules/comm-attributes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/comm-attributes.adoc b/modules/comm-attributes.adoc index 4b5da080c..add9e6eb6 100644 --- a/modules/comm-attributes.adoc +++ b/modules/comm-attributes.adoc @@ -126,7 +126,7 @@ // Red Hat Quay Container Security Operator :rhq-cso: Red{nbsp}Hat Quay Container Security Operator // OpenSource/Community Operators -:ack-s3: AWS Kubernetes Controller for S3 +:ack-s3-op: AWS Controllers for Kubernetes - Amazon S3 Operator //Cloud platforms :AWS: Amazon Web Services (AWS) :GCP: Google Cloud Platform (GCP) From 080f4ab7d8e2edc7becaef043b64a98930b81a42 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:37:56 -0600 Subject: [PATCH 16/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index d09c792c1..86772ec65 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -37,7 +37,7 @@ Workflow:: * Install multicluster engine for Kubernetes Operator * Create an instance of the `MultiClusterEngine` to enable `hypershift`, which is a [technology preview feature](https://access.redhat.com/support/offerings/techpreview). -* Install the AWS Controller for Kubernetes (ACK) operator for S3 +* Install the AWS Controllers for Kubernetes - Amazon S3 Operator * Create an S3 bucket to be used by HyperShift for OIDC * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. From e6043845451b6bc3b5d16f0c119720d8819d6368 Mon Sep 17 00:00:00 2001 From: jonny <65790298+day0hero@users.noreply.github.com> Date: Fri, 17 Nov 2023 09:38:03 -0600 Subject: [PATCH 17/17] Update content/patterns/hypershift/_index.adoc Co-authored-by: Avani Bhatt --- content/patterns/hypershift/_index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/patterns/hypershift/_index.adoc b/content/patterns/hypershift/_index.adoc index 86772ec65..ccc4c7bfa 100644 --- a/content/patterns/hypershift/_index.adoc +++ b/content/patterns/hypershift/_index.adoc @@ -38,7 +38,7 @@ Workflow:: * Install multicluster engine for Kubernetes Operator * Create an instance of the `MultiClusterEngine` to enable `hypershift`, which is a [technology preview feature](https://access.redhat.com/support/offerings/techpreview). * Install the AWS Controllers for Kubernetes - Amazon S3 Operator -* Create an S3 bucket to be used by HyperShift for OIDC +* Create an S3 bucket that hosted control plane will use for OpenID Connect (OIDC) * Create a buildconfig and imagestream that provide the HyperShift cli (`hypershift`) as an imagestream to be used in further automation if desired. //This pipeline is showcased link:https://www.youtube.com/watch?v=zja83FVsm14[in this video].