From 6d6ed8315cf213956fbec39ebd2784877e3aa343 Mon Sep 17 00:00:00 2001 From: "(Bit-Mage)" Date: Mon, 21 Oct 2024 08:49:52 +0530 Subject: [PATCH] updates Signed-off-by: (Bit-Mage) --- Content/20241014204106-operators_k8s.org | 4 + Content/20241021084553-operator.org | 142 +++++++++++++++++++++++ Content/bib/references.bib | 17 ++- Content/images/plant-uml.png | Bin 6865 -> 6642 bytes Content/images/plantuml-seq.png | Bin 6457 -> 6125 bytes Content/index.org | 2 + 6 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 Content/20241021084553-operator.org diff --git a/Content/20241014204106-operators_k8s.org b/Content/20241014204106-operators_k8s.org index 8672e3e..9eaf400 100644 --- a/Content/20241014204106-operators_k8s.org +++ b/Content/20241014204106-operators_k8s.org @@ -4,6 +4,10 @@ #+title: Operators-K8S #+filetags: :k8s: +* Whitepaper + - https://github.com/cncf/tag-app-delivery/blob/163962c4b1cd70d085107fc579e3e04c2e14d59c/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md + - is about [[id:fbf4b86f-9f3b-4fc7-aa76-1112c755eb1a][operators]] in general + - exploring in a dedicated node * OperatorHub.io - https://operatorhub.io/ * Resources diff --git a/Content/20241021084553-operator.org b/Content/20241021084553-operator.org new file mode 100644 index 0000000..65123a5 --- /dev/null +++ b/Content/20241021084553-operator.org @@ -0,0 +1,142 @@ +:PROPERTIES: +:ID: fbf4b86f-9f3b-4fc7-aa76-1112c755eb1a +:END: +#+title: Operator +#+filetags: :tool:cs: + +* CNCF Operator White Paper +** Table of Contents + - Executive Summary + - Introduction + - Document Goal + - Target Audience + - Foundation + - Operator Design Pattern + - Operator Characteristics + - Operator Components in Kubernetes + - Operator Capabilities + - Security + - Operator Developer + - Application Developer (Operator-"Users") + - Operator Frameworks for Kubernetes + - CNCF Operator Framework + - Kopf + - kubebuilder + - Metacontroller + - Operator Lifecycle Management + - Upgrading the Operator + - Upgrading Declarative State + - Managing CRD Relations + - Use Cases for an Operator + - Prometheus Operator + - GitOps Operator + - Successful Patterns + - Single Application Management + - Operator of Operators + - One CRD per Controller + - Publishing and Finding Operators + - Further Reading + - Designing Operators + - Requirement Analysis + - Custom or Third-party Operator + - Tool Selection + - Programming Language + - Design Considerations + - References + - Emerging Patterns + - Operator Lifecycle Management + - Policy-Aware Operators + - References + - Conclusion + - Related Work + - Acknowledgements + - Contributors + - Reviewers + +** Executive Summary + - Application infrastructure maintenance requires repetitive tasks. + - Operators encapsulate activities, checks, and state management. + - In Kubernetes, operators extend API functionality for automation. + - Operators enhance development speed, reduce errors, and increase autonomy. + - Document serves as a reference for implementing operator best practices. + +** Introduction + - Defines operators beyond Kubernetes, outlining characteristics and patterns. + - Highlights difference from controllers and provides best practices. + +** Document Goal + - Defines operators for cloud-native applications in Kubernetes. + +** Target Audience + - For application developers, Kubernetes operators, and service providers. + - Assumes basic Kubernetes knowledge (Pods, Deployments). + +** Foundation + - Operators automate state management leveraging Kubernetes features. + - Extend automation to highly capable offerings across platforms. + - Export automation concepts beyond Kubernetes. + +** Operator Design Pattern + - Manages resources using domain-specific knowledge and declarative state. + - Reduces manual work by coding management knowledge. + - User defines desired state; operators adjust to match real state. + +** Operator Characteristics + - Extends API with domain knowledge, like Prometheus object management. + - Dynamic configuration via custom objects enhances validation and autonomy. + - Automation for operational tasks ensures reliability and consistency. + +** Operator Components in Kubernetes + - Combines Kubernetes controllers and watched objects. + - Desired state defined in custom resources; reconciled with current state. + - Control Loop ensures specified state matches real state. + +** Operator Capabilities + - Capabilities include installation, upgrades, backup, recovery, scaling, etc. + - Operators create, upgrade, and manage resources automatically. + - Advanced functions include auto-scaling, remediation, and configuration tuning. + +** Security + - Security considerations for developers and users. + - Developers should focus on transparency, documentation, and scope. + - Users manage namespaces and RBAC carefully for secure deployment. + +** Operator Frameworks for Kubernetes + - Frameworks like CNCF Operator Framework, Kopf, kubebuilder for ease of use. + - Provide features like dependency management, discoverability, and stability. + +** Operator Lifecycle Management + - Manage operator versioning, maintain managed resource states during upgrades. + - Oversee complex relations and dependencies among multiple CRDs. + +** Use Cases for an Operator + - Examples like Prometheus Operator and GitOps highlight practical implementations. + - Operators can manage applications and non-application configurations declaratively. + +** Successful Patterns + - Focus on managing single applications, utilizing operator-of-operators architecture. + - Ensure clear separation of concerns and efficient resource management. + +** Designing Operators + - Analyze requirements, choose between custom and third-party Operators. + - Use appropriate tooling and programming languages for development. + - Design operators to suit operational needs and ensure backward compatibility. + +** Emerging Patterns + - Trends like dynamic authorization and Operator reuse provide new capabilities. + - Policy-aware operators and maintenance transparency are evolving considerations. + +** Conclusion + - Operators enhance orchestration capabilities but introduce complexities. + - Critical to weigh benefits against implementation challenges. + +** Related Work + - Expands on initial CoreOS blog post defining Operator roles. + - References various documents for deepened understanding and context. + +** Acknowledgements + - Community-driven effort of CNCF TAG App-Delivery Operator Working Group. + - Recognition of contributors and reviewers. +* Resources + - https://github.com/cncf/tag-app-delivery/blob/163962c4b1cd70d085107fc579e3e04c2e14d59c/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md + diff --git a/Content/bib/references.bib b/Content/bib/references.bib index e7715c0..5b38907 100644 --- a/Content/bib/references.bib +++ b/Content/bib/references.bib @@ -9,7 +9,7 @@ @inproceedings{foster_cloud_2008 author = {Foster, Ian and Zhao, Yong and Raicu, Ioan and Lu, Shiyong}, month = nov, year = {2008}, - keywords = {A.1, and Cluster Computing, C.2.4, Computer Science - Distributed, Parallel}, + keywords = {and Cluster Computing, Computer Science - Distributed, Parallel, A.1, C.2.4}, pages = {1--10}, annote = {arXiv:0901.0131 [cs]}, } @@ -697,3 +697,18 @@ @article{zhang_poisson-gaussian_2019 annote = {Comment: Camera-ready version for CVPR 2019. The Fluorescence Microscopy Denoising (FMD) dataset is available at https://drive.google.com/drive/folders/1aygMzSDdoq63IqSk-ly8cMq0\_owup8UM}, file = {arXiv Fulltext PDF:/home/rp152k/Zotero/storage/Z8F3K8VP/Zhang et al. - 2019 - A Poisson-Gaussian Denoising Dataset with Real Flu.pdf:application/pdf;arXiv.org Snapshot:/home/rp152k/Zotero/storage/QV8H6RY4/1812.html:text/html}, } + +@misc{saraswathi_exposition_2024, + title = {An {Exposition} of {Pathfinding} {Strategies} {Within} {Lightning} {Network} {Clients}}, + url = {http://arxiv.org/abs/2410.13784}, + doi = {10.48550/arXiv.2410.13784}, + abstract = {The Lightning Network is a peer-to-peer network designed to address Bitcoin's scalability challenges, facilitating rapid, cost-effective, and instantaneous transactions through bidirectional, blockchain-backed payment channels among network peers. Due to a source-based routing of payments, different pathfinding strategies are used in practice, trading off different objectives for each other such as payment reliability and routing fees. This paper explores differences within pathfinding strategies used by prominent Lightning Network node implementations, which include different underlying cost functions and different constraints, as well as different greedy algorithms of shortest path-type. Surprisingly, we observe that the pathfinding problems that most LN node implementations attempt to solve are NP-complete, and cannot be guaranteed to be optimally solved by the variants of Dijkstra's algorithm currently deployed in production. Through comparative analysis and simulations, we evaluate efficacy of different pathfinding strategies across metrics such as success rate, fees, path length, and timelock. Our experiments indicate that the strategies used by LND tend to be advantageous in terms of payment reliability, Eclair tends to result in paths with low fees, and that LDK exhibits average reliability with larger fee levels for smaller payment amounts; furthermore, CLN stands out for its minimal timelock paths. Additionally, we investigate the impact of Lightning node connectivity levels on routing efficiency. The findings of our analysis provide insights towards future improvements of pathfinding strategies and algorithms used within the Lightning Network.}, + urldate = {2024-10-20}, + publisher = {arXiv}, + author = {Saraswathi, Sindura and Kümmerle, Christian}, + month = oct, + year = {2024}, + note = {arXiv:2410.13784}, + keywords = {Computer Science - Computational Engineering, Finance, and Science, Computer Science - Cryptography and Security, Computer Science - Networking and Internet Architecture, Computer Science - Social and Information Networks}, + file = {Preprint PDF:/home/rp152k/Zotero/storage/D93TB9XV/Saraswathi and Kümmerle - 2024 - An Exposition of Pathfinding Strategies Within Lightning Network Clients.pdf:application/pdf;Snapshot:/home/rp152k/Zotero/storage/84R97B25/2410.html:text/html}, +} diff --git a/Content/images/plant-uml.png b/Content/images/plant-uml.png index 4ce7b317fc003e13a5237cc4ad6aec13c48789ad..0202fd5129ba772b5a468f0a35f4bcd9e324377c 100644 GIT binary patch literal 6642 zcma)BbyyT_yB86WUb;iNTtK=-Kw<@C0qJJxW@!OI1nFi~T4GrxBve>Zx};kKX_oGe zGrsS4-t&FupL6!Qc4wcN*?aDJ=6-&0Z`3nQ6(W2({9Ctf5vi#vL4oZ%;JtqDHt;F; z#yt$!@WPc1;MQ*L{?0I4_$?KfE6mdp4zppg@@KJ!!`;241O(ijEnVT>F3wUSH~00Tufg?XKI=6OFM(Hd)Z$MhP|%r$72%v{M=lmdO?g=r_LNYgBX}+Tx$FA zD9)NMLS?b$_@@KTOo=6u?~PDhSq%3SC7wbu4S9az%k(E~YJwC)9J~?{t@jpaqZE{*)Sn7E zLOB0E7JF7B;f>AhT8VMEb`C6Oq3(dNvJ~H4ZeqI{h1S{N0)r(}F>!G_TiYTevV7$&M_O81wJ-<5(9lr7+-%INk1|VB|Jk!g zhAF;y2XL48cS%V}3Wkf|FFo%?ow%K53ZD$%P@WkrKs=5cFrzimnxN9&icwFg!vg#0cT z7Jy(JP4BwYINLiL><)zZX)x5uTri&M7$r*kEYxsxL*BoCzXmeBMO5SL?EK=mb{9oD zA}9ZxDN8fk`&dK&Go_2JS&SijR-?P^OY&WoBlEj*hO4#|5oxSdt>- zgsACjUP~pb#q?%oHw1j(VZ@c@Y{R? ztmaXJRcLmUm~w)HU`f`NodFdhn&k$Wi<@`j8v(+Zm03*H@CT7 zga84L(r_HT_`<@%^&wK8h(^$2s&ZW7W{#x#5mc~WT~l*=uBoZC)aB_@LSFpW(&SY> zv>=AhUw>ow4F0xM9DF19y%Fj^8iv+EY8JkVW?3mSYml;Pd(+mYbpLhDQ&m-WU*EZ= zkPrn0toUCf@|TIDA3uHiSz(PEoh9iNQNV9l*)}rbHP;xV63;*@A1qTp8xpD6USb;0 zBrJ6@_`D*!oieDNkw(MKDMzrRTTyqtn=M*`S~>| z*{$)6(^;GHb?Zb&hwaX613SU{NJ3iH)Xk@T(}h(r!b?#{o5kaXK2^FHGH+886Cl_f zgaHX5VQh3X8M~gozV-4#drX0inp#v^nx2t<`}efXFMtJAVWt zIQXN#pNcm*pUTeA^YVdFwf*nrP*BMFDC+d|G&h$e&&JMb96S^sjHRVcQZv~m0qG62 z)4+1(EW4!Eb5y(>0a4SVP^i)|qsF#-cz6|6RdqoZVq$K; z&^UYC5ec^g!n{`dqX>NIY`4fXs3^$zuV!(3du9&tbm}i84>v~22f|-Qx!E>pP8dcV|^7NEtE7!33s1Iw@*)dU3^Cto~f{KW9sw|2A`k;FKpyc~U zD(M1_zU2cyUzSmF)a9x+JU1b8ziwUgQ2(7;*qb7MZgr4e{`I^0byApC%mGxNp8%iu zv8%qcO7u`NB&fHGikhs(k&u9ZUfeY^C57CqBA%ka7p47)BCd9c=H=h02|%cQWN&?a z{TPGSa@ByGQzYcvx>-p0KcJNg zWI%`CzI&|X1o|5)w|8#MctuyLXR}u%x)S7=@au_dj@vg*{$s%(Vn{)7UF6 zdY6%@vI6D#gbj9ba?)OoWDW*F#aw6BHaGd5c^ke6&ZQAab#uJ4R34P)?t7HJ=|wke zws(1UPz;4aSqnxdCYWXX5=(kJ%qwl88XAIJUCVZT3@WOt+bB#I(@FnEj2>0W!#XStI=b>r_%VOF7O_wAAFtNT>8ED($& zkwZBRJ$=kqvwA-d7>py0gFd7`Qxd6}73Nt1DS7%<(DLT`>N5=)*+Y*7B{HnpD_cLmrNC)m;~eqr!#nZ#83roR+)b1YujqWHDpp0}nPlH5 zCf*|AdtL$}gDu7YzaBP~@>sa@9Bfj?FFubLmnYm%C0+hDZ2JmoxSlgo z6MQA*7`1w81A|FQNZiY)+-o;mL-s*&cah#!jJPdRipCA(0EckVn!+U z0tzZBs~YwMwE z4L@8P5@y+#U)|_AB`lqMxHot);cqBX41TKD0}fDfv*}k27Z(>Lr8{?ZG&MCrJXb|6 zPybsmK<~!Q5{&`nI`+8JUO4Q@PJ|~yWV(TVS`EDCkR|Sx4U`l>19k)18o@8(3m_q0 z+b{P^l?X`Lm5-T_=l6!qwCj8orMnAvFL(j2@L!1H`jDTmhTe4RPohd{NGsm|wl+%l_2;zhy_pR-O;_W&sW6O7-uV&QXNtz-_evS&F4>=g~mY95gi=9kvxb)a><1|WrydGXa$y2oe~ zJV7Vu4iAvOV+lm`k~7IK8+S$dpVe=)GRageoR#h&Cxtl-(OH8eRMK%-Zy$r1`orac-^Gs#O8Lr2*;n z)dErNT&D0KD8Rc(87X%g@>kaSLh;LQ{QZ0tHGU_LfSG20J=?CV`ZKQmccC^tpM2Ap zAlVu+7s>My2rOQH8rKItPKBnPuNrK*SlnmZ_i$S{E&Tl`9e!es}Ko~ zi<}+07+lufy*inbmX>Cg_KEGUN$4;c|H9H2&X&+6&0I;uX=iV)?%rox?$elM~9e^ zi{mXPH#cTd())e*O#w&ieeZ-zOG{;CWYWQ=yqDkAF?R}!v;(LMG3|14avKxn)F0$4U`qX{^2v$hc|^+d4TUaQxjT7cyazi zd`?$S&vJ)LR;u$v5hSr84< zh*k4>Yg20c&2_0OsZ?8uW@CSZy!~n}=KYOwkMYHv8n=HdOru11^=M<_WcwFi-(F}Q zlWc&9m>85igpZfEt(0GbD-GJ3{Cv%81(VoT9@m-2ARiSR;6pbuR zJ8Nsjah_OjOe6T%tf&AbqPKUYM#{1U7_5~Fq=a(%$;0rL2hTW4P4gOQ5Uz~fEK zY(w3q;gkWwb;GKy6XrSPi1AS4OwE=L$#%Ay=?eB}JFS zPzzWs0}r?KK2v7r%PEHwb z-=1!Lo1>znjH469msaT~KUn#}MjkS>7{ztXTS#t`(a~JTts%f9Vn5iQCEc#jcJNjj z^sKuWvJmzGIJMpWZ+5|-!I z-sxfj5{V>`E=|=;bfIh5{}Z*teJ@Slj8r9;6Z(zMB5S7FAq?e16CM$F*GooKhoa&Dg+v2@9G%n?)E>&Ac-z7mcaAFg8F49d1X)g z$W3C!L_`KrtiZDE>goAV!h=p_%=73AhakXtsPEQYARClp!}) zzETvERad2=TwQ?eQZ?1Mi+S}Vh+!1uk zEw2dxi;Im*91fwTMy#!^nTK4Z)s6D{?#vz?931TK8hmx8RhtKYQGfEJBSxTca&S-( zzBahNzAj$_+1j7Gxjq3Z+29O=%;~Bc{9oDsUpam(tgV$478aJ34H88v>OOxy>@pqv zbnzh{U(6-MQ?qjr1INL^fmeMcAE`0z}Eo`r$qQ} z&+zaFXs8;A@c8W)3*`%PxAToBg~7$H89fp1wVw`SxR5d!+3wXH)SeT8e3xtuY+?#p zZ^g)?ssipA9IL*&2+nx_o{EbjK1;&K|5$n#S<{@H%%!PPhozP4KK1fya|WFUwDXU#KNRWLaf5VI$z6#K4Ttoi}<;G z$4$-q-Wrj6_96_ksE7VLOc%P|V=*E>pN%5;;D@-Lo?fDq!!Ua?B|SYrRnN`Lf&mKJ zTkM2v(BWl(Wg9w{n5KEhbqsXE*~orSO9~kACKx@VCSA)Vv-z_+f&d%bBAZiLS@|~~ zwRiyL5itLn!66RMMN%)-KLe=Aw(kKXCO`1R0Arb@Z5)Dyk&22qWd`@OA^B;Ts4 z6cf~YG9^52^HGCMSYWB^bl4f-PStn_f4t(hY}NL^+^w8c*B&S=6cI$l}x^9VVI`?MF%(iJ-EWPeSt!Z_|-IaQgEYniEVZD_<{g;Z92 z!GYZK2M!Jncn(pid7?NQb>15hRB)Q58WCZRAjnFUkZ?qelpE?YlQ#2DXGBzL=ld+2%s~V#LCLbR*w4Y ztl}|B(oumnRmng2X4rr!0umIX$zUhfD7WKg#&*QT-=$2OI$EYGdjQ6hxOp8Oe&;Su zQT@?$r*h8q#iy;^NT9ifgXs!VUG3^GfYgkBi*@$E3;opb`SWLw#g6&d*MA)+u^yd1 z18~C>>!0r6_gIsa<>k^9c8iaex{2 z^z>XK!yg?Rt3{*VFF};HhehrHue*1j>*@mc?L1rW-~18_&?@AfX|^e#r`~KSbs|{6 z3_RnIak}-7iLG^ZbuEI%hTB-)c zz$ktEsl1W3)Xl|ZYiB3Hs31T`M+e9Ru$q92v9_}6!eZZ|9LSL;(E|Ygv3gL@70`R> zM*Dqyd)+v}0ZF$&czSttuY7TuAiSjHWmXz`*_&lY92io4I`AofH`-h3B6#Cp-u3iC z@$q9$&CFu`;ObYYA=hWCNvB5>=J|o)AAkS0C}EZjpcn(_QPrlp28mp447%tdXW3OB zE^M%JcIKZB*js1^`m4I>rx>}bE8iRd#85iOT$4@carxkEl^zr^QAYeecqF zPO}Q|n3|D--z90MO1W9XU=WY&v_g+{_2XfH(kuM8XCy60dV283?h|6uDzRX8g>1S& zm0+A@ap%dG*o=AZ7BD-z7_asq{-fKQIz;|NSVFM@Ta&A%O%RpA}Z1A?Y;Ef4BtnY9)Mtf>B9ex*CQE z;MFea;C#24PCEQWR5SYb{I2UISi_7JfC|E1M*RR>zyp&S&;+}Lp=O3yTx^0n1u?x? z?7A~O9bLMB`S$j9{K-GII&kORn?z7%mD^n7gNyA5(~mDe%Gh8@pkU^~qAz=JwQC?m zx%&zf|16>TD^ivQ38K!5#TH2%dgZPUdpUL9;!|28E>QQS#dDDDqf zQ&Uk5OLu8^z9yhfe_;Ga4h{iC|8$XT4URsMWL#KGkZ%k;0sqR~>a+n%CNTW_Wg~B} ZE0ChpEzE7Sz@IO-)RZ-q${t&U{TK5^5jy|? literal 6865 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 bt0$O!*$oa~9r1zxmhLDkXvi1Kng;wI=uxU_ diff --git a/Content/images/plantuml-seq.png b/Content/images/plantuml-seq.png index 76d71ba5814d8bbb32d763696c55c7f275fc3753..5823ef366aa4ae620d0e552bd7bc6263a9b15b36 100644 GIT binary patch literal 6125 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 diff --git a/Content/index.org b/Content/index.org index 1ce75b2..1f1aaa2 100644 --- a/Content/index.org +++ b/Content/index.org @@ -28,6 +28,8 @@ I also consider deliberately intellectually [[id:f3347380-f482-4077-a89b-a3ff059 - a cache for ideas that may never see the light of day again. - or they just might... * Stream +** 0x22EA + - my mechanisms are pretty smooth around the edges now ** 0x22E7 - allocating every friday half to clear up all the ancillary tech that I get into.. - I tend to push a lot of smaller interesting technologies and things into my INQ and NA