From f47159865675fd0ecc262af754102c6c85910ea5 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 00:51:03 +0200 Subject: [PATCH 01/11] Add LXC-LXD to Awesome DevOps Signed-off-by: pintop9 --- logos/lxc.png | Bin 0 -> 10041 bytes logos/lxd.png | Bin 0 -> 20510 bytes tools/LXC-LXD/README.md | 115 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 logos/lxc.png create mode 100644 logos/lxd.png diff --git a/logos/lxc.png b/logos/lxc.png new file mode 100644 index 0000000000000000000000000000000000000000..e344c1ddbdecfdbb9968cb12ccd215f2a0a819a7 GIT binary patch literal 10041 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 literal 0 HcmV?d00001 diff --git a/logos/lxd.png b/logos/lxd.png new file mode 100644 index 0000000000000000000000000000000000000000..b36fe68fad9002484c0d516fcc1ee59e998b3079 GIT binary patch literal 20510 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 literal 0 HcmV?d00001 diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index cbaa86b..10cb9e0 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -1,21 +1,120 @@ # LXC-LXD +lxc logo + +lxd logo ## Overview -Brief description of LXC-LXD and its role in DevOps. + +LXC (Linux Containers) is a low-level container runtime that provides OS-level virtualization by leveraging Linux kernel features such as namespaces and cgroups. It allows you to create isolated Linux environments that behave like lightweight virtual machines while sharing the host’s kernel. LXC is typically used by advanced users who want fine-grained control over container configuration, networking, and resource limits, and it serves as a foundation layer for higher-level container management systems. + +LXD is a system container and virtual machine manager built on top of LXC that provides a more user-friendly and enterprise-ready experience. It runs as a daemon and exposes a REST API and CLI for managing containers and VMs, offering features like image management, storage backends, snapshots, live migration, clustering, and advanced networking. While LXC focuses on the core container mechanics, LXD acts as a full platform that makes managing containers and virtual machines simpler, scalable, and suitable for production environments. + +## Differnce between LXC and LXD + +LXC and LXD are closely related but serve different roles in Linux containerization. LXC (Linux Containers) is the low-level technology that provides lightweight OS-level virtualization, using kernel features like namespaces and cgroups to create and manage containers that behave similarly to virtual machines but share the host kernel. + +LXD, on the other hand, is a higher-level container and VM manager built on top of LXC that adds a REST API, a daemon-based architecture, image management, storage pools, networking, and clustering features. While LXC is more flexible and closer to raw system tooling for advanced users who want fine-grained control, LXD focuses on ease of use, production-ready management, and a VM-like user experience, making it better suited for larger-scale environments and DevOps workflows. + ## Key Features -- Feature 1 -- Feature 2 -- Feature 3 +🐧 LXC (Linux Containers) +- Low-level container runtime +- Provides the basic tools (lxc-create, lxc-start, etc.) to run system containers directly on the Linux kernel. +- Fine-grained control +- Lets you manually configure namespaces, cgroups, networking, and security settings for maximum flexibility. +- Lightweight system containers +- Runs full Linux distributions with minimal overhead, closer to a traditional OS environment than app-focused containers like Docker. + +šŸš€ LXD +- System Containers and Virtual Machines +LXD can run both lightweight Linux system containers and full virtual machines, allowing you to choose between high performance or full hardware isolation depending on your use case. + +- Advanced Networking and Storage +LXD provides built-in support for bridged networking, NAT, DHCP, and firewalling, along with powerful storage backends like ZFS, Btrfs, and Ceph, including snapshots and backups. + +- Security by Default +Containers are unprivileged by default and protected using AppArmor/SELinux, Seccomp, and cgroups, providing strong isolation and resource control without complex manual configuration. + ## Getting Started -Installation and basic usage instructions. + +## Installation + +LXC (Linux Containers) is supported on most major Linux distributions, including Ubuntu, Debian, Fedora, Arch Linux, CentOS/RHEL, Alpine Linux, and Gentoo. Essentially, any modern Linux distribution with a kernel version ≄ 2.6.32 and the required libraries can run LXC. + +`sudo apt-get install lxc` + +Your system will then have all the LXC commands available, all its templates as well as the python3 binding should you want to script LXC. + +Use the following command to check whether the Linux kernel has the required configuration: + +`lxc-checkconfig` + +## Requirements + +Hard dependencies: + +One of glibc, musl libc, uclib or bionic as your C library +Linux kernel >= 2.6.32 +Extra dependencies for lxc-attach: (command that starts container shell) + +Linux kernel >= 3.8 + +Extra dependencies for unprivileged containers: + +libpam-cgfs configuring your system for unprivileged CGroups operation +A recent version of shadow including newuidmap and newgidmap +Linux kernel >= 3.12 + + + +**LXD Installation-** + +LXD is supported primarily on Linux distributions that have Snapd available (like Ubuntu, Debian, Fedora, Arch, CentOS, and more information inside this [link](https://snapcraft.io/lxd?_gl=1*1f0ig8*_ga*MTEzNDgxMTkzOC4xNzYzODUxMDQ1*_ga_5LTL1CNEJM*czE3NjM4NTEwNDQkbzEkZzEkdDE3NjM4NTEwNTAkajU0JGwwJGgw#distros) ). + +`sudo snap install lxd` + +**Requirements-** + +- The recommended installation method is via the LXD Snap package, which ensures you get the latest stable release across multiple distros. + +- LXD is very flexible and has no strict hardware requirements for containers, but it does require a modern Linux kernel with namespaces, cgroups, and security features enabled to function properly. + +- Recommended minimum Linux kernel 4.15+ + +- The LXD snap must be available for your Linux distribution. + +- The snapd daemon must be installed. + + +**Configure LXD -** + +Run the following command and either accept the defaults or choose different options when prompted: + +`lxd init` +Install the OS you'd like to use in your container or VM - + + +`lxc launch : ` + +Example: + +`lxc launch ubuntu:24.04 ubuntu-container` +**Note** append --vm to this command if you wish to run it in a virtual machine ## Resources -- [Official Website](https://example.com) -- [Documentation](https://docs.example.com) -- [GitHub Repository](https://github.com/example/LXC-LXD) +## LXC + +- [Official Website](https://linuxcontainers.org/lxc/) +- [Documentation](https://linuxcontainers.org/lxc/documentation/) +- [GitHub Repository](https://github.com/lxc/lxc) + +## LXD + +- [Official Website](https://ubuntu.com/lxd) +- [Documentation](https://documentation.ubuntu.com/lxd/) +- [GitHub Repository](https://github.com/canonical/lxd) From fd6a39247b1630b185cf7e83084e855b5f375cd6 Mon Sep 17 00:00:00 2001 From: pintop9 <130343408+pintop9@users.noreply.github.com> Date: Sun, 23 Nov 2025 01:05:03 +0200 Subject: [PATCH 02/11] correct the logo path Signed-off-by: pintop9 --- tools/LXC-LXD/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index 10cb9e0..c09854c 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -1,7 +1,7 @@ # LXC-LXD -lxc logo +lxc logo -lxd logo +lxd logo ## Overview From 2141c14022f9381e937965191d8dfdf22e6b08e5 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 01:25:08 +0200 Subject: [PATCH 03/11] changed photo Signed-off-by: pintop9 --- logos/lxc.png | Bin 10041 -> 0 bytes logos/lxc.svg | Bin 0 -> 33249 bytes logos/lxd.png | Bin 20510 -> 0 bytes tools/LXC-LXD/README.md | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 logos/lxc.png create mode 100644 logos/lxc.svg delete mode 100644 logos/lxd.png diff --git a/logos/lxc.png b/logos/lxc.png deleted file mode 100644 index e344c1ddbdecfdbb9968cb12ccd215f2a0a819a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10041 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 diff --git a/logos/lxc.svg b/logos/lxc.svg new file mode 100644 index 0000000000000000000000000000000000000000..60df6641aaa4bb11d2513b397e59acbcbdf0ac8e GIT binary patch literal 33249 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 RAdN2&CWbo=vhGJ>p literal 0 HcmV?d00001 diff --git a/logos/lxd.png b/logos/lxd.png deleted file mode 100644 index b36fe68fad9002484c0d516fcc1ee59e998b3079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20510 zcmeIaWmKHqk~WM(kU)Yv!QI{6-JKwf1R4nL5&{GX5ZpaLa0u>!5L|)=cS-QZ{k@y# zIcLt9Z~n|$-^{NetC73+u3fu!?W(J;>Xis}RXGe)B2*X{7z_n@X-yay*f{751qpZ( z)X6&x1A~v}qpk0zY3@nk?BZl?=K!K`^L7SNfV}LiVPL%GE7I*;Ncb8;A1!g)5r%tQ z*k#*D+qNz}<8*4}m3}tJ|FotltK|$9%7m5w`uO-5bB+1vQoj6M`;DW3(L*m@#u173 z?cLsGq}iet*A}yQ{8KA}@?FWFE1q!~2Ilv?IM)0Yx#BlF?b@jSXZL(W;Js zmhnAV2`UIl`Q-;weAI{Qu6EY(9J{&2H`m^%mSR;^M`Gryfdyu+EA~d0EekuHmalx6 zPOOguke9bTQL11O?#Y#RNvr~H)dfB!@O#{S_Pn#FM%dJQdvg*io>7qZ!z}yk71IUZ zoDX^0*j(g;yW$nj=H145$`Nr&Kvoj*P0k_7UM%PJamU9>QK}mp|NFqv(w)&XgR|6U z?g1))M3Q{JdxtRno|$H^b3l8fW7RlR+bGtYPSDi%nEy8BHsa0s*4S;x-E*;{YEmVP z;GVa`dG-Emt;0a-WMnM&PUgO8L&?@WR1t4S#TWgdPk*r;{B?4%Rp+pcq}ZpgH}Nj; z-tyr9e^i5s-)1jXpM&)X*C8x#_%~nirx%{45-NOMM>%7UiL>HJ3HjxCb_gEADFg%e zp$KcVg3cD}=f5TNX7=C|g&Qr{S>s@9wk z5xUp?q}$@!Q05xr+;jNK*4YgwrfUkCp4MG))KU~WtUG0GJ#4tmn^I+`%XWh>6lZ(f z#Fn>D+%)C{e&V?tOz%vah}e>w@oG%Gq{&>RX0V|~$9rqlMvsV7r#I^0&fx=675IvA zg*L#|Uzo{K9R2BAQ6IUxYldS}vh3i_$zgSP5LP3fwCVtvl4Llg;ZJe~W*5iWahj!%spVv_jqDWvP8A!Q z?Bh;zN=s>PzrZ-PFx(zHJ>yW>Ryw`jb5DgcBSDKR?g(M258t>YvLwS?&nDD8lt)Fl zJ>mL1J#TT>K-cI>4B!0x;gC!@y)TT#G)Rw~kuLVrQrdv~4>46mJ~Ps4C#ANjQ`1+V zV(fLYnz~WMZv{d(j(T@H!S_1GBRL2cdT%)&xvTx1ykh0I0wNdQ)^p45+mE!EFfMc@ zBjnU1cIcayjt$WW{*v zM%rlFT@wnBrJkJfL3`_9GL19l%LQ>4r? z`SG?4&m8H5N2AfOIHDD&G+nj3nae(%t&g{(&&1%$c7w*@c{yHsext>1JSa)88I_Gb z^t-Yip+fvlpoyp_t*EUnB!~JYk@V$99Qt7us?fGL1AA)u2s;(^I^D$T(n< zJcemCM5MEPvf9ZDY1)ZOILM#NecC<%t?a(vDW#$;7hCGPD7JfSIhl`D7B1P7ItU;m z;E9PE2hln6a@TrX)26v#{yC=5PF>ZNN!xAmSu{gS0(Bvtk4AQG-}72!HIeSgjeF2i5B}Pe>fyeJ%}sOGgra%Pb%#C^n(H`eeMM`$QLcV#D}*2H z`>cySdi@ne>l|HVW$5pWu(tJx0MQ0u69FUFfM8#r6B< zB0CgczF{07pxPt#I*TGGh-9b2W*W%mmnp>2NiYP2gPx$pUxE10$*Ovprm$Nc>~*YP6f% zHUAGO&6VSOWefxGDIv=4R6Z&3)ZZ9*$nm?-shtWpOTX~bFF3t(l;f9uK+K(n+ zV#yPIR~Ri}^NO)+&w2U!7l>-ca4{x0Yx1T3q;MhGx2VNC7%epduRFXu`bEZxA;GaS z3to4bvBaJ(P<0Yjl89hAd6yZ%$~T4dMx>SiO?@2m4}|@?Qt?88gTrVvNZy71{LFPn z`ffazR0yP6T0bfJF;TD@@b2I3Nx$bbN{+l3j(_WQRYxt{&X%jO7kh|jTrB&|`IYPk z7XtA})kR|le0IF?(FCV&ZqEs%zeR6wnw7rf`pm1J^?uik5@|Yay6d`Msf)$k5hK`x zQI?~)=F5lVQZyboQ8EwXQI4VUwW-w^O1tARGTKu*7g%0&5JR+UzC?-n5oR!~lD4by zW0=<$Uc3sHc6iM!d!8#v&Of*E!mu|OH|}~;b|XFChY8Qo)=!ggzMyln8Y8Ily(ETf z)>o}=7vOmN$bYqT{uo=R=;>yXaRk z1(SJL%xn8vA4ijnq)%UcEUFV%Ap3~DEomu@kNv3eX$*D_CZfz6Vlty?KtRH2B7A(4mNJ`2~V6%5<#xAcf2>ycM zxs?eGe~F*wSg%X2V;;_1F;d(rhu{xEc&G$eStTc2$QEvAw12#RVN5IR=E3plJaA&j z;mj7lox`V<=DrJ?B;~G$!0lrB1PeJoK2N|^q@2j5viIkB%`;x^nHjz;QJ0QEh8<>5 zSjZGPy|>ZkWAV$8{bT(mi(?W4!7!;&5bdSCd}u+5_3<}-{VZbrJXwcTI6hmZg=l7v z=P(i4>}EwS>e2Lp-!ttKL*`{z)>~A>u;8XZAc=R;|?G zFH8JP(9GckD^1(tTg9z^PDV$>XX8lL_vi%+F2hcBKTjeXK^j(gDHR&DOHvvn3=_p& zJo=7X+*Udh?=%I0dj9kFe#XZL=G7xA4wIsJv;iEvZ;Bo?AMiS7kiI^XSC@Q|D*o!; zNFGH*Djh3%c=kudIbzAEg+=W5sS3Ga3Ims)pl_+~rrczPmaTl&OuHR$U;GqLMl=1T zDVQgb&%v4)DDM_t{d$nEJ6tttmr)`S#x2J`8G{xN-q)CYaby*K7_ZQM7 za&6hr87bl>JzQ$Y>rRV z=eq}I*fIEiKTG@y68yx+`+(XL@n{@s?*I~Wnv}=yp;-}y{QMq8m3bL35$iY0iuoDc z#aEvBUB~>}WLG-zDURLMYWgC*S1FB3F5Eg52jMTvo9dlsl0OLk($#+U>zy89{MWY= z^|Kj;Yj777X~Jv7>B~F}>jhgWlk*O?7rdyjDqXZaCiYAcyH~#p=RQel&)UxXEUW(% zz#MJkY=|p}QW8|LK$sQ!494tQ`dr75EZT)qCGOZRxKGA{`87@Ixbiaha?xu$?U#C1 z+>DHvHHFS5NO{_I=r6mS^bmhn+CDh4{YFBV@SsLs1jj#bT+#@uC{j|ux^=~QHgWo9 zznE_vv_<$K2uVrOu8Zs)5sSmPq8kJS)Ai!&N{;AA8Irs7Dd(5xC1^{d=l)< z<)DInfsM$qCY1SB6ueleFZzN+n%MTdfTYezRt%#8JF9DV?G2aw)r)c6XUZ!fXGRcu zHXqOq5;2W$V~G#F`#9Epq+Sy!>wA(KS-ww&O~LoyO7E!EiQb_XFO@fMj>+H0pcq#m zeKVkMO1PbYe21*!e=pD9g4UYrgEGr9hPNGC@Duw;Sq&p6{o6ZuDDsitdoA& zW$uLA^sOMWR`PtZ88Tj-=Irw-?jUFaOQ}QtH3kIMIOJNH4F>z|=g5yRAi30O!o4?W zX&2e_dX4q$NYeH+%q7|{5cK@W64h6Bl}quf#8)tw-$l{}zvx(q)G@VgPcLO^!CkHu6O=L0+VKIY0*ec}E zyo%pQiOfdpy(eyU+NOtAimd06TLpcvoz>NqG7(j9rfwPe>w9a8CZ)*NUC%BW9OW)` zt$nG<{N$obnWkRu`tFjd^r~;bl=*gjrV9_4bVX-y91ixdd*zgP*XFE7Lw|=cF3Nu6Otzlqcpig`W?qu}oSNoz~Z>Yk1(5~$uMY(2MEK9NG zAFEgJ`Eze%?`GPHR@T{j{pqF4Bh6)RLU+QN2jF zUlUVszHo@caa}wkCH8xMohJ!iwD%7ziX@PTMgkLFhkBmsP9qN3o|--9Teo>`;gKF) zo^MFh&A_Z!dApo2Gg04S)gqzLU&ss>onL$LkINcIk zn6ykaAG9Q4@hW~lhkYU5c1((FzSoC!X)B~bNR%jN`?_>;US9gSkF`RY>Tr*Ake3Yp zmqlVy{)8Edw3g&xYj1&u#5ZOAsyAMCA#Z}^CSQWPLv~X+T5|_&f9sCAt)m^d|3du( zFOl)RqYyLb)|7k-ePmix^Q0uq4Os&_Rf9|l1?N>{{nD2$uIeTGCEk@Clkt21AKj@h z*0?JUJ~*ihmT^;s_2nt154TLA;^O=3z`B3OcEONWvR(X=gwo0l2lI@Cot=V!Og4kl zu`vCj4*`?8(-mu^P|)aSh>+(W*hgEf!Cd&^NJ45kc7;V+p6k>7NfuI6qs{u-WVrp` z6PLRP2pu=#3oIx<8dB-l%MooftHR^%xbKpb_RoIyPnbn(-8Q{GA#=eoWX5>+V55ad z4d?YNPq#eEx57ayOIF!A1uIG)nZB73&m^VxBc#In3)o^Zn-11~m`vhpD5ri>1?fb| zITim;n>(3ofgs+jHxQve!TgH#yN*IMnC-7P7D0H2GC8ra`<`# zw^E>Lv3p-PrLMsVio(9n*>@wU9tw?CGSFlg-3Uk*buzejm!i6Ujj3zrmg2XAu2K1s z3}vKF0%O`j0=ID^uUFjGyhpv87`8EfS@1dS55_C^Ped@1?E;d!5wzVOjN%oU>{q_* zFejZc14YX4_{~x`4>zj*9$xgCv}cM@%8W$0hcr)7AtF9lO+3EDAAE}O{f{bP2K8Za z01W)pFIwkn@ogVb5Ag6C%ls~x=WUhp)vfC+l8jpRSH$q0OZ0|^d_$s`YU9nRmIjF> zi0F0T4`&PwSo2eypviKC$CD5ILe z@?#G`(`@_T`T@1Pz4pa>$_og((n4;@JbD$JHVk4`D#LY9Nii2ZnT}8&F8Q{#4A}(C zd)b8{1m#S z)*aPE0+)~U)|*vDQJ_Rxzg14D$9C+*#6ikO=kTh zSi*#pb>WE6-UDmb;wIAVAlShoQfGk3m6!sLZbgxVXxt)g*eOCZt_KpC%qM?|blNUz zx5;(F-*A-|PV=4GG>UNk+UzC2ij|aozWS;WBQ{;OnbC{vxK58(Bc8%N7s4;jMaF#m zeWp&wa?S_0g|f{j3lz4Ew$D#A#@L3V?9z_B!VX09B5EDBJFi}@iz#|JhXHhXsGXFQ zx`LF{KNxa=7ti$nBqHAEy+ym=(TpsE>M2#166_PI)-y7!XASWn^y{E-c zh>R*&HFQ3|o4sD#R5AKW8&YF#?VfmD(X zDol9xD#Pf-yQ*DDoL6VBr7em?nIajyVyb+vu6*!!43>8uNZJ*bt%B4jvdvq}UsPeM zfei(B{MS*K6i`nDPD&*3sRK4!_94VO`8@&IgdCi|1=dk&)Ez9FKN<|EN6BaTmy2z(!%c5|_m#rtgu=)cuHqZ8xvxb%jjYDbJc_ zO#FH?RSuDnx)1XKxwDlA4ST~;lONWt0;;XX6NKc0hMWP;pFZnLP-g{Pw@}^z|JZv z{}k`&`nMGTd$4(#JF{`Hva^A~Z2vmL)lJ3&5c0P||K$uNMuZjTE|0(z1M*m~)PlJI`Dk_4~PL}Ra^%SHQJ%`U*s0kY)gkV18Q(V33UY#N>0|lR(*P+?qKd_4NMTBRJL<;_xg{a+IC=&mYX@$njF0R zd;(ko0>B#ld|ZF){4`q^^J1f^;a-qi}2y6y0tU1(A0RjKmrJ$4x$lT4z zMcc{AL4*=2f&x18$-OCr|2hk2s7J-tOi@#MCG=9Ygg z;%e>zvU*wwnD^IPmbT`OHXz`B|Lsu!cy9M!9F~=(rIj_0ITs5TKX6Xm=Iq=o=GOe2 zEc{&N96VOQiSe29|GRWoCu=uPa~F_=4X{&SH-G~@?S_K>$&?KLKHAe31ho@8Cl?Dl zFAFEXHV3;P2d5w>ClfoTAUiuH+us{zgWl?Y>{yuX|6>#3rvd*G27q~gJp;lE5Utq$ z8Ls}e8PtsbgI|B2#sA<6faw2QJ9(C9Mon0lTQEjpe}unbQpew z43)|pGa3cdhXW1G@~H>>Po_%^1?AQn&GOy`5#gohK3sg< zP0z(Oeu+^Oz5*1hwHR9iB7=7{&`Ec;}r4MIQ)RyXh+BaT{l+8C&-~3oCI|Rt@<%0bSt|L0A+BD4grxFY1!$ z9tE2N-hO1hDBl)I)z|)(qBq!iXWEOIc)Er~!Gcs@J>DJPQ@Vf3s&#wIM?LGt?dc^S zKf*d2T9DLuOw$~Wr^rj3gS{I(4lg12_DoQ2xtnq>R_I&xY_wmsOs#&R`yF9eyS3Zp zEhK4F*Xx#6l-mbb8}^;`fh>8^oxId{ri+2gUrVI{;E&Wa_{1?;vyb^!?K4eP{DJH)B$FPOs71Nek zje77-3Xk7c`Y4?_c*qv1kjhNM!N+S$>}NWi9l9NI0aaHIRaeK)uz=|jA*mVx-`~3v z;;9jPL#p`PmJ}#)N*JObVv5q;nP^YC<#v$x-wX)_B=2YW0=lgoWNb1q@Pa{26CA+a%jy(rV3>Z~hySD$%h`LbJdzI< z8i+Z8+8uP;OfSwr%0f+H(Fr>cV$gsGF(f_0x&Gar;+EMx3`pZI*#_~R%e`TE)aXu2 z^iXk!a}sLh4RpE>p?AK)QX{_@{!@R(kFOm)>er)nj%ew_V`T4~1k_y<{qkT$CA5;IBd9yH=mw*UhB zO3&8`IQNrrs{}>IeJH!B=V8p?R}Zeo%)lmd-?z4X+p;;@sd_-}H_~Q;i2YWlv&9gE zjZE_>JD385*ytvq$I$1@>4jdPG=`(KUH2Hsp|>tLfXi%#*E{^7dvkNpNWbvnG$-Zj zin?p2ZhK9 zTQX$V?fE%v_E$B%7l)c#S+mqb`8YTO0sAMJI27VRf=69a-!@OfI+-=|1z!*P>SsDO zhnpte;0SXI@Hg&ZjAJmkP9G<~Z$NF^AcH;~n=OH$yJ67OvHSwDo&5 z`dui-){|-d1Px3dehM*op}--?k2!|RfGazd=J2DHTQ_Pwk7yP+M4n+`QHUEVQoF6j zPU2i2gS{&=DeYAqPsuf14pHZ!gq-#&N2%y_+v*Zc)I3W}BWv`GK+KtER7 zx2d6_cua>2In2*E?W!d+W_ZA1{vBGkJ26^-`LW1yk>RWy!mW0x!6z8UELzyX|{h%d#8<=&#yfumXe z@ytgc#Z`J%y?TMlSbbrx)7hZA{4)V};qnWd+C4)(@*!`=Vn~%WJUwvcKFIP*j|aPx zX5N>=WvfF#G6|?!M;_ceuRVdVxvhRZ= z3?*oJV25hDN{nWuw)xyt!Ex`Gj6kT2OD0F$1u`sL-4B>g)CT2)WbDSHT*x$NuS8p= zBjm680;hh*`~E@zAXW;^ki#Lw(vk;L%{;RrL#)d!T~>bg8@Vd%y{}nArAZo z;D3f@Izi|R6A>&QH6RvkW6!sl*0kqX%}Dg+qgFB{1#aE@1@-G|Z^-XZa3I7p^!7afO`Qgqdpqu;F%f|)#_{qQfZnvOD)ctVJirNulmrW{N;)*XsGawy zIq-(eVb$XhS8ANNz+QjG9JfzE7)X0GWx_A@gS_sB2aZY~Dt+dQeR}|J*^XVUJO5~= z={NjVo#s`fgHFrn6RzAhK0+XDwnRWc_@Y*O4M{OZT>ApU`HjKC&!sKlJquOw)Ua2~ zsh%$GhYU{N&;?Y9)gM=W|1|QxY%lqPPnK{Lajl5pA4abCSJ0*wIJkU54cvdu^IMm- zrh$M37}XAJ2RO(wQ}N)OlkNS{b61z?i$+X_yF=@1MH{A;J+aJ03h}t@B||46Z&}sE zz4e;->14=}(Y}ET21^_e;;;1ifUu~a1Irss7hc>qC^HDwS2ky_${y43CsKj9voHB7ddVt^oIdJi0yG?>J4~XOt z5l*$5s*BV!a5epH+fd^1f!^*&O2C<1rr3S6h1r3I+pO<42AbPZMdk@tl6!YrQM;VO z5$kpGisen=JLMVkY1YbE02ErhDK3DuJpDNMNnQQhxzg6-5G741Jc~U)#U;JB>=N^A zE>pS#uD{p9kImChY7AviB#a=hmBo+Tw_W9wycQP%k}x$&xW)y8FSaW-aHANnAd1)I zopL9osH%=n5OP@1k{Nn?mpK{-<`4U=#WMTlj{5a9%Yh$OR<43KXDN-&Mf-hsg>$hq zhYM9*gSWU(aku_PD+_?dC|K~Ib77rjXz}xKb|zRYExch(Fem7)qY60DC_$=6AKt=g z4N&UXouj>a0>d0Z_5O6;eTzl=51on3KQcK_204M`p)}fo58&Pi@ua&lJcgzY?Fd_H zkxu7B5^vdM>dQE|0qaHP8vu$8EjJgJ9|!?M^8!04R%*Q?4;EB{f&g7Kg#}3Fpnmi> z4s`P+);YeG+wye@ei_UNI^U;qlK7Oz6*J)yrg1R7@(YT#-UkQn(Lq?U3dWN$YWYoE zFbHk_?8rQcdpkbrusK;cu+K(qsRHwqwHd?qdojGdA^4Fg1@@;sjqIGe@ho2TY7eRhK;iHBGhT({kJZS9GR7@_>=Lm9309)l8dy?UIYxoBft7=_bQ(?w=u5 z0pbz4Ily6zr^9{!SzL72U-Ki0oTCj=HbOg#Sg=WWZ)C8rN$87g!nsgQDBDob%2Zq} zA2T`1wNHSZmkX!%r~qJHrWcjG+x$ZANuFmoQcTFuDzVcdPe6w4$$=EUs>&5RLSiyl zchY`TNPI{-ND91eFFLpepVTFJPK~%=kXbIC&CV0bexxUM0-pV|%4H6T@40I+vz}s& z+W*C9_Itl>E-L%Ui>27Q!J7k}rj<%Ri20&5d{f%CU(ry$I_){yJsd#vD$a3QB|S?S zs68RpoeB*5`OOAx(h9t=Tx}U~xL8ygKUZ|f0ts1OO470#8Q|f)`>R?4v_&8!r?3{5 z2XCXvKn!}&0SLu$yxwjCg!b@uFPkjCWEY@LTRtz`#^4Cy_IONoYpS7u)*;^!2BJ(p z?VG6a9!lPx@aiP-{xosP@*LmBdG%Bgt>=@Ylc&{mbbm1CF5tF89_V@Su9wOn)IW;{ z_G1VRO07*TzhD&@AxkD>4iR-u%<~+t2W{ZS5_eLX{SfQtYw)z$SFS};k)VYxR~R9t zUTk!Dx3}4GHVfe2kIkvFlBjp*fw=moVs`Dwa<#uKKh?&F^)w0XR$a*BMLEckfQ>N^ zzhXjbO91@*_9X)eY&~pMZFTJX7-S-aS_>DghT%fkI`vNAx1L<9a4Bo!%3>~N-{IKA zrN-h`bR>?erHFa(mt9yx$SaBcs>Hy99tO5@hvj7xWN%p&ZnuOoX?OA9&IbW+DM&jf z^OF>A4&O`DL557b-Hx??so%NO9Ez0=&9OJhc)wL=>-SWp@}M!Lj1GJdIwBY8^Ep$^ zwq$AFr2+0=T@lRN3(~>{tw*b0OXh8*k`F)$d9{vRG=fxWBDA*8rwuK(1W)@tHaQ@s zA}T;;hjWs7Tu-_SNR3r@}tM1N^?=Pe#UW3qQ5>kvy4&~4BIz^roCu5-1g zjrz|a_$XQ$8@m@!`Xk;O*5bybmRhbVU?6GCeX1T6TD@vw$MzKV2CgKdAmRYTP|*bf zP@d7-ES?GCYsrc&7nOosl`GQi!7B^t0KLott~ zOu#|+VCiR99JU2}Rihc!E2X?lCEFn+Xs*5p_0|d{EzZnp6R>@K6a&2^app+?Uby`?99 zbc+A0$I@FB(n%*co1tpC#CBE9UwrW2tjT)dn;hayayJy{P2q5vcSiHU^9>>KCi8fr1 z+->f-PpFLu%wFtoqRpcIvV-Hkve@ZYo%ztR&ll#nWQZ@9^Dx-DV{qDcmeIyxpZzMj zS!KpUj(5Pw`h34&agJ%CffgSHt4{ri(aU65(CFj6&sf-ZG2u6yyJuB6Y<65v4VX0U zSF0er5o-4q9pXYB^qvp0qPLOHV#K28|BhX>z%a-_uQ@XyX8(}k0WeHeEjpD^Ripj! zYcp*z5L1w|_myloWIP@DKxv{y6?bBjr0ALYkI^u+M;&V0Qr*Phukd{p|?L7j7(c*F=Gqx1?%sDiXnu}&)4&d%QuX9Gry$# z))l9Q4S9f0185eAQQ(*Uz=xzyV8W_WbsdG8K{}K2G^!%Kv`Z|uy2Fr*N4&fb_OP@O6jJm%up+k{_?F*zK+`yuNeW5hSuXqBAr>*1^! z0wba20l!`v;9f8J=%sq7RK-&+xR)pG;gIAspe!TmQw$1&%zR|bafvX-k51efWT@TV zOrQOIWzh&^N~XIRq)|(50x5l4zkk%fPDHkYk?UT)DFZdvcGoPt!X3@Ea=3nPn+KhU zQvF0v#Gq=p_&*H#I42^d% z5<_v*6?!3xZ{Dvgl|#OCP64K7>UbJ^SofhXB^k zwTFN4(uaw~sDWCd4?Y_gSL}5R8?_BbC7I7oH(Q+D1~WuL8y&T;rCmJ^zce(mJdAqOg{#e`zGGw6oBJ+- zTJC=}-lHDTRBC2aP@93oSY1i|`PdoA5N%>@6h}IZFM%rV-H*+_%ZsLJeJH5Pw87AI zzURDttd)=WbE8xEG38)7SSA6-&oQkHk*h2b-;v?Qnxe zP~$@I_vVST$HW*{BE{&}#MC>-dd(PCEIk>T))c(u)UHRdETP0R9zH|u#tH*z_7nAs zH{GnlDjt+8Arg1A`C*d9^TB;kluvAHB>Rc@_)V1r>~>Jpsp*dCNXW+X_bNcnh1vinQe20Y|_j}?q2Ub9dLs{Nu_26N%JSa_FXW^n8t7$ z``1SYsvF9MURNx840OlA%MCQ%EhmPZbQ?WZ0(iaHLl`d#;2xYNAScjT{qC6h&(GTo zf12cBO(0yLi{Z#Y3n<M&gOFLvnRozJYWt|h@=~Bm zGT8e}wU?>G;p~-u`@trmfJS9hpQ0}D4j&3us?W62H6PIZ*i3zB?!nQor{7{IL^kVt zA}=O~3b;)IxO3MXsc2dJ_(H)0zdLDD3lE_w!u@Xv6UtD1YBO{?hxX0 z#IdY>7rSEFPsX6a(6T3@gY%ISl)w(i93YL8m+$!Os_ii(gW7rSa)WHzn<9AJWu>D$ zq-WLFIeB;mH+EMw=tz*e+A>iWNEUyrH>k&HwAE-@+JEZ=0RcM%H(#4?`ySJFRE}e9olLF3Z1DIqU*2p?xVJ?P$I>d4@)zL3aT!(H^?&r?BQ}ny{D8 z0W|7r0h;hDxt7;0F$9P_t~sCFaDa{nE|)B$Z@v#(|aMHK1;hW z&0`_nG~z7l9Yu*eSo(b5*(n<%dJiy?N*ALdBe#pox5cH&!`eV+FY`MPAA4N0ImR>B zilmLFt15NpRNxc1qS3Q2hyfPsb_cf<$RopOm>Dc{qUW3Z=f;y^8Qn&F0C|OVt!Paw zdT_a_TyN0H$tDbt{y9R?Y$VWbz|MU0;O)H@&{I{`G8J2^(uN`eTC?)wPBW*wJ?N&4 zQ%UB%Z*eE*dw=ecY%SfF3+pXv9<97J<23aS^pY42kW%>*BaN%CmtPx!UkY?mKIRzA zNOMi^i})~I#w5LQ?P>R0GlUJRHe5h9Jw?O>o3a5UXQcmq^T}+72)X@ZX4%%hko@w= zS1Tb%Doz3wl-q$eo=QJvAioi zJn_SO^uUbq3^s-~_kzXi*#Qv;$@T!cmc8~(ZB1bGy+Lbr?q%r1N#@JET)UmvuSXQnR{fqciCNK%4@TZ!T$x?tcY)ix z7l748!rGv{V4%uq>`xOg5K&8NbhZu&3nHRy*s;`M$+GZ^8am@xh*F_P{d^jz2 z{e^t8sDMne-RxVMMR>D=2B56sUmZ(!x1I~W zXSzVAMQXPBedB{kybN$XF?>h8PbMux~wA!`h5w9_B#W!tEW~l}M&GXF55v zKDD<s~@Djb5 zLQVeTV$AJg7``*Nfn{S!2kaOD3td-;-va*g)E!$6C%)3me9QzU#vx#^XB z21DOdNngmv6(;;#0LS%M(zmr79LwHx$)$EOSe0?9v~5SF_HgcE!ns`iT9_a9bx$OD zqPyDjdt4|rj#LlYP9%Ri3F?phK!YD(mGeLv9rq-ZdvwJ#vlImS)*=At9ngG5-jSsX zv=OFMmfucp3A^T+S6v@4^jj-O+K$$XJ}FW6KH>W(mdnqbs;al{L|SvaFPiK#8vDU|Y)pm~o$~xmR*f$6}cLo~&;6D$) z|B^^Kv-lhm(>y&+C>v%h)-(OoFgk}x{>|c!7 z9eG5$phhOTL&nlOSTOW$p!7Y3xTaXJa;lF}O0quZ#zMLa7c-Y`3sekBTw)pr{BCRG z0MIZtWq5@68W|5nllw7{LOE}CC!u8|)?;b_U}I4far$ArGYlArma5ryPrPKb9Lfhu z#LP^|rNMb9J%|z){X2%>D{4!9;xK<^d3N!PvLSy~1NGCsk`^WSs+kq-nbI^mo!<1& zvWzD`naGOU7r>^(Y^0818sLFwxow7vX)>b2zK-hitU7U{mrpy5pVGmjX>n}@3Qr@@ zKy+A1nFR+};VGC639ohV_0R(ttE*H7Rk(2Lh;AAT@TDN5DqSi0`rZEnl@F3B diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index c09854c..1cadb2b 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -1,7 +1,8 @@ # LXC-LXD -lxc logo +![LXC Logo](../../logos/lxc.svg) + + -lxd logo ## Overview From 680e4048fc35562ef1a85208102d51baa18df660 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 01:32:22 +0200 Subject: [PATCH 04/11] correct linux photo Signed-off-by: pintop9 --- logos/lxc.svg | Bin 33249 -> 5736 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/logos/lxc.svg b/logos/lxc.svg index 60df6641aaa4bb11d2513b397e59acbcbdf0ac8e..088de35d573c5f149a0d216edefbef28d3948a76 100644 GIT binary patch literal 5736 zcmaKwOK%+45ry~p6`je}Y~6R?HbfaQ5<44joX4J^XpsOd3KByJ{`L93>Y;2wKy3A} zr~5vtPMtbccV2$?>DT+^>E`{1yN9=zr@W@qa`X23;q~3yHZ{9t8vwZycasBZ0<~?85>xW;zS$@2Ed-MM4@!|dN zqn4lUKHa=u{`K&1|6#efc=e~3%ve6&y?(sCJk6BeeL5|-H+OGtA3uM6y1V)K{lllr zQ(DrJ2mekBroR1fdAfakeE02(7jFEqt`G0uyeKK97c6;Ne!089zdXHtczbht_43`- zj;93oA=42gXkg+#|LYctEUvL3n3=Q7~PbyBb zFKDH<*1bQSW0K0crE-o*+BU+yU#EpA3dUGV-axvnwTQT@3gFrbk1@3m{lQk2kY%v_bG(zprh>7;($^wskSe3~J>bpK&!sa2iO=a?LCz3vQYWio0I0 zY__YFwReIDqi_Q^duIX*v4)=Iu#S|#0;7fDiN87oVKCgid%~JruL$$-I+oK*(8Hp{ z&MCuFd~Ti4@^2I-Vs<=o!Ljazm21+kngL@Q<(@Zz27kZ=%lOvXBBX1X`@{VHhnzoWZ{IKo2A4_pCd|me zKyHeR2T)99$5un1hTNdvHo_;Av47xY-p1V)NuyMY%9> zOXVYNddzT!?sNM<)^oSbj;H1;e2ZD&Ed3iPL<%qh9H0p!63~k#S(-^?I6lFXrTf;2 z9pku+9YYZaTtQnBe64+7;X>(ahi_BsBJh4W|ZE28-|N5?6J) zlE6$jwwL@>PX2BDl{$9hBxLDJgZYt=huVn<7-S=%iiC8VDOm)Xc@ULth!A@oqW}?f zLmMJf)W6aY#R-A9LdSTt;bPk$RzandzY0_qhZdR(<_s`%qvlAwOpb(3GF}TwMxlj| z#m7P%G|WQacTsQ`47LCf0TLS)=k0UIV3o;EsW2m1X{RNaBrDgUxEXn8X(*z_l#C4T zQ^!{SFazOCm=c(oI2y(%nX5-i64^{JBv$X|t)-cLgO0PEHL&fdeWm(xol$}eOxnH* z-5;AFst3IgP7J|Bjv_pi9QGzAb0`GdRGKjQif%eZqeOGV1S@s&G6$ogTc?Vdly^{0 zIzTz(Bboxk8(EvF4&n!HK#pIgwfIiZ&`5CqIv75kfBM78?~13uf5_QN|lr1QxwA6A)Kk%Hd!G z-5e?eCyVl^mM4iHcKa8!0Q5^9vMw(57BPm+>S>M6!`&?YdS@J}EpOUYX#vfvo$`XuF+@!D&T4HvnW69Y z{D=24b%?iXA)eGn<6*63HN2p+w=BUq7{HABh*IiFqsVQGNVfRq zkaNC;=m;3C4< zdem^D0^XRTlYn5oOXeOa^Ti38_XeGAN}Y-|{NCg63kUQ@RN3BrNFX94@;v&lG znTA7{tq{jgRFLPWE^&sYoRf(R#8|x0R?`&`4mcTgekXZU0&)R~3tC_oXBP%? z3?Vo6?aR>n>kd+*<_^-1%e9mI!kU9$lc<3%SG>d3XzIxj4qI^22|TolXHqkx4qWHQ z(8&oM>YI-79fR2v4{iXY?=|5P7d8_!Cy7yNYasQ0McHV%X{dJwBbPSGA5flZVtjEW4T%M z-&e>wUijx|2rWEctNI^1;tl0Bzxh#z`B)ExfNw4bVep1~0%P^()~{9qc403kY#*Fk?HprVD=g)ic5;Ew L(H{H5?5qC)L@<^k literal 33249 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 RAdN2&CWbo=vhGJ>p From da9f91f580b3e82a23f3339c2231617095e81583 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 01:38:06 +0200 Subject: [PATCH 05/11] resize logo Signed-off-by: pintop9 --- tools/LXC-LXD/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index 1cadb2b..c5318c5 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -1,6 +1,5 @@ # LXC-LXD -![LXC Logo](../../logos/lxc.svg) - +LXC Logo From ecca463f1bcece83d3d2882176717d859e2e652c Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 01:43:13 +0200 Subject: [PATCH 06/11] Add LXC-LXD to Awesome DevOps Signed-off-by: pintop9 --- tools/LXC-LXD/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index c5318c5..e4ba6b5 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -40,7 +40,6 @@ Containers are unprivileged by default and protected using AppArmor/SELinux, Sec ## Getting Started - ## Installation LXC (Linux Containers) is supported on most major Linux distributions, including Ubuntu, Debian, Fedora, Arch Linux, CentOS/RHEL, Alpine Linux, and Gentoo. Essentially, any modern Linux distribution with a kernel version ≄ 2.6.32 and the required libraries can run LXC. From 704f3ca446f1ab131611c0f013703fd04396446c Mon Sep 17 00:00:00 2001 From: pintop9 Date: Sun, 23 Nov 2025 23:14:04 +0200 Subject: [PATCH 07/11] Fix typo in heading Signed-off-by: pintop9 --- tools/LXC-LXD/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index e4ba6b5..a08d49c 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -10,7 +10,7 @@ LXC (Linux Containers) is a low-level container runtime that provides OS-level v LXD is a system container and virtual machine manager built on top of LXC that provides a more user-friendly and enterprise-ready experience. It runs as a daemon and exposes a REST API and CLI for managing containers and VMs, offering features like image management, storage backends, snapshots, live migration, clustering, and advanced networking. While LXC focuses on the core container mechanics, LXD acts as a full platform that makes managing containers and virtual machines simpler, scalable, and suitable for production environments. -## Differnce between LXC and LXD +## Difference between LXC and LXD LXC and LXD are closely related but serve different roles in Linux containerization. LXC (Linux Containers) is the low-level technology that provides lightweight OS-level virtualization, using kernel features like namespaces and cgroups to create and manage containers that behave similarly to virtual machines but share the host kernel. From 8d7e479b9603d71513b0c594fa0729ddff25d125 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Mon, 24 Nov 2025 00:11:35 +0200 Subject: [PATCH 08/11] Add Argo to Awesome DevOps Signed-off-by: pintop9 --- logos/argo.svg | 1 + tools/argo/README.md | 157 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 logos/argo.svg create mode 100644 tools/argo/README.md diff --git a/logos/argo.svg b/logos/argo.svg new file mode 100644 index 0000000..34239b8 --- /dev/null +++ b/logos/argo.svg @@ -0,0 +1 @@ +Argo \ No newline at end of file diff --git a/tools/argo/README.md b/tools/argo/README.md new file mode 100644 index 0000000..1d5b8aa --- /dev/null +++ b/tools/argo/README.md @@ -0,0 +1,157 @@ +# Argo +Argo Logo + +## Overview + +Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. +Argo enables declarative, GitOps‑style workflows, progressive delivery, event‑driven automation, and more — giving teams a powerful and flexible foundation for Kubernetes application delivery. + +--- + +## Difference Between Argo and Argo CD + +Although ā€œArgoā€ often refers collectively to its ecosystem, here’s a breakdown of how **Argo (the suite)** and **Argo CD** differ: + +| Feature | Argo (Workflows, Events, Rollouts) | Argo CD | +|---|---|---| +| Primary Focus | Automated workflows, event‑driven orchestration, and progressive rollout strategies | GitOps‑based continuous delivery and Kubernetes app deployment | +| Use Cases | Running pipelines, batch jobs, or responding to events | Syncing Kubernetes cluster state with Git repositories | +| Trigger Mechanisms | Scheduled, event‑based, or manually triggered workflows | Git commits, branch/PR state, manual syncs | +| Core Value | Flexible, container‑native automation | Declarative, Git‑centric deployment control | + +In short: +- **Argo** is the orchestration toolkit +- **Argo CD** is the GitOps CD engine + +--- + +## Key Features + +Argo (and its sub‑projects) provide: + +- Kubernetes‑native architecture — built on Kubernetes APIs for tight integration +- Declarative configuration via YAML +- GitOps‑driven application deployment (via Argo CD) +- Workflow automation (Argo Workflows) +- Progressive delivery / rollout strategies (Argo Rollouts) +- Event‑driven automation (Argo Events) +- Role‑based access control (RBAC), audit trails, and SSO (in Argo CD) +- Web‑based UI and CLI tools +- Scalability and high availability for production use + +--- + +# Getting Started + +## Argo Prerequisites + +## šŸ”‘ General Requirements +- A working **Kubernetes cluster** + - Local: Minikube, Kind, k3s/k3d, Docker Desktop + - Cloud: GKE, EKS, AKS, etc. +- **kubectl** installed and configured to access your cluster +- **Namespaces** created for Argo components (`argo`, `argocd`) + +--- + +## šŸš€ Argo Workflows +- Kubernetes cluster with RBAC enabled +- `kubectl` CLI configured +- Create namespace: + `kubectl create namespace argo` + +### Installation + +Below are the installation commands for each Argo component: + +#### 1. Argo Workflows + +Automates and orchestrates Kubernetes jobs and tasks as workflows + +installation: + +`kubectl create namespace argo` +`kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml` + + +Verify installation: + +`kubectl get pods -n argo` + +Run a simple Argo Workflow: + +`argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo` + + +#### 2. Argo Rollouts + +Argo Rollouts provides advanced deployment strategies (blue-green, canary) for Kubernetes + +installation: + +```bash +kubectl create namespace argo-rollouts +kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/stable/manifests/install.yaml +``` +#### 3. Argo Events + +Triggers workflows or actions based on events from various sources. + +installation: + +```bash +kubectl create namespace argo-events +kubectl apply -n argo-events -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml +``` + +Verify installation: + +`kubectl get pods -n argo-events` + +#### 4. ArgoCD + +Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). + +installation: + +`kubectl create namespace argocd` +`kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml` + +Verify installation: + +`kubectl get pods -n argocd` + +Expose the Argo CD API server: + +`kubectl port-forward svc/argocd-server -n argocd 8080:443` + +Access UI: + +`https://localhost:8080` + +Get initial admin password: + +`kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d` + + +Create an Argo CD Application: + + +```bash +argocd app create my-app \ + --repo https://github.com/example/repo.git \ + --path manifests \ + --dest-server https://kubernetes.default.svc \ + --dest-namespace default +``` + +Sync the application: + +`argocd app sync my-app` + + +## Resources + +- [Official Website](https://argoproj.github.io/) +- [Documentation](https://argo-cd.readthedocs.io/) +- [GitHub Repository](https://github.com/argoproj/argo-cd) \ No newline at end of file From 05b5a779331438d077fd509c3578e39611c233b8 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Fri, 16 Jan 2026 03:07:50 +0200 Subject: [PATCH 09/11] Correcting folder name from argo to Argo Signed-off-by: pintop9 --- tools/Argo/README.md | 157 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 tools/Argo/README.md diff --git a/tools/Argo/README.md b/tools/Argo/README.md new file mode 100644 index 0000000..1d5b8aa --- /dev/null +++ b/tools/Argo/README.md @@ -0,0 +1,157 @@ +# Argo +Argo Logo + +## Overview + +Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. +Argo enables declarative, GitOps‑style workflows, progressive delivery, event‑driven automation, and more — giving teams a powerful and flexible foundation for Kubernetes application delivery. + +--- + +## Difference Between Argo and Argo CD + +Although ā€œArgoā€ often refers collectively to its ecosystem, here’s a breakdown of how **Argo (the suite)** and **Argo CD** differ: + +| Feature | Argo (Workflows, Events, Rollouts) | Argo CD | +|---|---|---| +| Primary Focus | Automated workflows, event‑driven orchestration, and progressive rollout strategies | GitOps‑based continuous delivery and Kubernetes app deployment | +| Use Cases | Running pipelines, batch jobs, or responding to events | Syncing Kubernetes cluster state with Git repositories | +| Trigger Mechanisms | Scheduled, event‑based, or manually triggered workflows | Git commits, branch/PR state, manual syncs | +| Core Value | Flexible, container‑native automation | Declarative, Git‑centric deployment control | + +In short: +- **Argo** is the orchestration toolkit +- **Argo CD** is the GitOps CD engine + +--- + +## Key Features + +Argo (and its sub‑projects) provide: + +- Kubernetes‑native architecture — built on Kubernetes APIs for tight integration +- Declarative configuration via YAML +- GitOps‑driven application deployment (via Argo CD) +- Workflow automation (Argo Workflows) +- Progressive delivery / rollout strategies (Argo Rollouts) +- Event‑driven automation (Argo Events) +- Role‑based access control (RBAC), audit trails, and SSO (in Argo CD) +- Web‑based UI and CLI tools +- Scalability and high availability for production use + +--- + +# Getting Started + +## Argo Prerequisites + +## šŸ”‘ General Requirements +- A working **Kubernetes cluster** + - Local: Minikube, Kind, k3s/k3d, Docker Desktop + - Cloud: GKE, EKS, AKS, etc. +- **kubectl** installed and configured to access your cluster +- **Namespaces** created for Argo components (`argo`, `argocd`) + +--- + +## šŸš€ Argo Workflows +- Kubernetes cluster with RBAC enabled +- `kubectl` CLI configured +- Create namespace: + `kubectl create namespace argo` + +### Installation + +Below are the installation commands for each Argo component: + +#### 1. Argo Workflows + +Automates and orchestrates Kubernetes jobs and tasks as workflows + +installation: + +`kubectl create namespace argo` +`kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml` + + +Verify installation: + +`kubectl get pods -n argo` + +Run a simple Argo Workflow: + +`argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo` + + +#### 2. Argo Rollouts + +Argo Rollouts provides advanced deployment strategies (blue-green, canary) for Kubernetes + +installation: + +```bash +kubectl create namespace argo-rollouts +kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/stable/manifests/install.yaml +``` +#### 3. Argo Events + +Triggers workflows or actions based on events from various sources. + +installation: + +```bash +kubectl create namespace argo-events +kubectl apply -n argo-events -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml +``` + +Verify installation: + +`kubectl get pods -n argo-events` + +#### 4. ArgoCD + +Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). + +installation: + +`kubectl create namespace argocd` +`kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml` + +Verify installation: + +`kubectl get pods -n argocd` + +Expose the Argo CD API server: + +`kubectl port-forward svc/argocd-server -n argocd 8080:443` + +Access UI: + +`https://localhost:8080` + +Get initial admin password: + +`kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d` + + +Create an Argo CD Application: + + +```bash +argocd app create my-app \ + --repo https://github.com/example/repo.git \ + --path manifests \ + --dest-server https://kubernetes.default.svc \ + --dest-namespace default +``` + +Sync the application: + +`argocd app sync my-app` + + +## Resources + +- [Official Website](https://argoproj.github.io/) +- [Documentation](https://argo-cd.readthedocs.io/) +- [GitHub Repository](https://github.com/argoproj/argo-cd) \ No newline at end of file From 3225c837822caa67be90d87a99e6656f146291c9 Mon Sep 17 00:00:00 2001 From: pintop9 Date: Fri, 16 Jan 2026 03:39:31 +0200 Subject: [PATCH 10/11] corrected issues Signed-off-by: pintop9 --- tools/Argo/README.md | 229 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 206 insertions(+), 23 deletions(-) diff --git a/tools/Argo/README.md b/tools/Argo/README.md index 1d5b8aa..43c461c 100644 --- a/tools/Argo/README.md +++ b/tools/Argo/README.md @@ -41,7 +41,7 @@ Argo (and its sub‑projects) provide: --- -# Getting Started +## Getting Started ## Argo Prerequisites @@ -57,8 +57,6 @@ Argo (and its sub‑projects) provide: ## šŸš€ Argo Workflows - Kubernetes cluster with RBAC enabled - `kubectl` CLI configured -- Create namespace: - `kubectl create namespace argo` ### Installation @@ -68,19 +66,24 @@ Below are the installation commands for each Argo component: Automates and orchestrates Kubernetes jobs and tasks as workflows -installation: - -`kubectl create namespace argo` -`kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml` +**Installation:** +```bash +kubectl create namespace argo +kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml +``` -Verify installation: +**Verify installation:** -`kubectl get pods -n argo` +```bash +kubectl get pods -n argo +``` -Run a simple Argo Workflow: +**Run a simple Argo Workflow:** -`argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo` +```bash +argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo +``` #### 2. Argo Rollouts @@ -112,30 +115,208 @@ Verify installation: Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). +**Installation:** + +```bash +kubectl create namespace argocd +kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml +``` + +**Verify installation:** + +```bash +kubectl get pods -n argocd +``` + +**Expose the Argo CD API server:** + +```bash +kubectl port-forward svc/argocd-server -n argocd 8080:443 +``` + +**Access UI:** + +```bash +https://localhost:8080 +``` + +**Get initial admin password:** + +```bash +kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d +``` + +**Create an Argo CD Application:** + +```bash +argocd app create my-app \ + --repo https://github.com/example/repo.git \ + --path manifests \ + --dest-server https://kubernetes.default.svc \ + --dest-namespace default +``` + +**Sync the application:** + +```bash +argocd app sync my-app +``` + + +## Resources + +- [Official Website](https://argoproj.github.io/) +- [Documentation](https://argo-cd.readthedocs.io/) +- [GitHub Repository](https://github.com/argoproj/argo-cd) +# Argo +Argo Logo + +## Overview + +Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. +Argo enables declarative, GitOps‑style workflows, progressive delivery, event‑driven automation, and more — giving teams a powerful and flexible foundation for Kubernetes application delivery. + +--- + +## Difference Between Argo and Argo CD + +Although ā€œArgoā€ often refers collectively to its ecosystem, here’s a breakdown of how **Argo (the suite)** and **Argo CD** differ: + +| Feature | Argo (Workflows, Events, Rollouts) | Argo CD | +|---|---|---| +| Primary Focus | Automated workflows, event‑driven orchestration, and progressive rollout strategies | GitOps‑based continuous delivery and Kubernetes app deployment | +| Use Cases | Running pipelines, batch jobs, or responding to events | Syncing Kubernetes cluster state with Git repositories | +| Trigger Mechanisms | Scheduled, event‑based, or manually triggered workflows | Git commits, branch/PR state, manual syncs | +| Core Value | Flexible, container‑native automation | Declarative, Git‑centric deployment control | + +In short: +- **Argo** is the orchestration toolkit +- **Argo CD** is the GitOps CD engine + +--- + +## Key Features + +Argo (and its sub‑projects) provide: + +- Kubernetes‑native architecture — built on Kubernetes APIs for tight integration +- Declarative configuration via YAML +- GitOps‑driven application deployment (via Argo CD) +- Workflow automation (Argo Workflows) +- Progressive delivery / rollout strategies (Argo Rollouts) +- Event‑driven automation (Argo Events) +- Role‑based access control (RBAC), audit trails, and SSO (in Argo CD) +- Web‑based UI and CLI tools +- Scalability and high availability for production use + +--- + +## Getting Started + +## Argo Prerequisites + +## šŸ”‘ General Requirements +- A working **Kubernetes cluster** + - Local: Minikube, Kind, k3s/k3d, Docker Desktop + - Cloud: GKE, EKS, AKS, etc. +- **kubectl** installed and configured to access your cluster +- **Namespaces** created for Argo components (`argo`, `argocd`) + +--- + +## šŸš€ Argo Workflows +- Kubernetes cluster with RBAC enabled +- `kubectl` CLI configured + +### Installation + +Below are the installation commands for each Argo component: + +#### 1. Argo Workflows + +Automates and orchestrates Kubernetes jobs and tasks as workflows + +**Installation:** + +```bash +kubectl create namespace argo +kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml +``` + +**Verify installation:** + +```bash +kubectl get pods -n argo +``` + +**Run a simple Argo Workflow:** + +```bash +argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo +``` + + +#### 2. Argo Rollouts + +Argo Rollouts provides advanced deployment strategies (blue-green, canary) for Kubernetes + installation: -`kubectl create namespace argocd` -`kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml` +```bash +kubectl create namespace argo-rollouts +kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/stable/manifests/install.yaml +``` +#### 3. Argo Events + +Triggers workflows or actions based on events from various sources. + +installation: + +```bash +kubectl create namespace argo-events +kubectl apply -n argo-events -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml +``` Verify installation: -`kubectl get pods -n argocd` +`kubectl get pods -n argo-events` + +#### 4. ArgoCD + +Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). + +**Installation:** + +```bash +kubectl create namespace argocd +kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml +``` -Expose the Argo CD API server: +**Verify installation:** -`kubectl port-forward svc/argocd-server -n argocd 8080:443` +```bash +kubectl get pods -n argocd +``` -Access UI: +**Expose the Argo CD API server:** -`https://localhost:8080` +```bash +kubectl port-forward svc/argocd-server -n argocd 8080:443 +``` -Get initial admin password: +**Access UI:** -`kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d` +```bash +https://localhost:8080 +``` +**Get initial admin password:** -Create an Argo CD Application: +```bash +kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d +``` +**Create an Argo CD Application:** ```bash argocd app create my-app \ @@ -145,9 +326,11 @@ argocd app create my-app \ --dest-namespace default ``` -Sync the application: +**Sync the application:** -`argocd app sync my-app` +```bash +argocd app sync my-app +``` ## Resources From 4c8ed25650fcdfa2a38eae431d65311c793639bb Mon Sep 17 00:00:00 2001 From: pintop9 Date: Fri, 16 Jan 2026 03:50:37 +0200 Subject: [PATCH 11/11] all issues fixed Signed-off-by: pintop9 --- tools/Argo/README.md | 171 +--------------------------------------- tools/LXC-LXD/README.md | 2 +- 2 files changed, 2 insertions(+), 171 deletions(-) diff --git a/tools/Argo/README.md b/tools/Argo/README.md index 43c461c..35b2d30 100644 --- a/tools/Argo/README.md +++ b/tools/Argo/README.md @@ -1,176 +1,7 @@ # Argo Argo Logo -## Overview - -Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. -Argo enables declarative, GitOps‑style workflows, progressive delivery, event‑driven automation, and more — giving teams a powerful and flexible foundation for Kubernetes application delivery. - ---- - -## Difference Between Argo and Argo CD - -Although ā€œArgoā€ often refers collectively to its ecosystem, here’s a breakdown of how **Argo (the suite)** and **Argo CD** differ: - -| Feature | Argo (Workflows, Events, Rollouts) | Argo CD | -|---|---|---| -| Primary Focus | Automated workflows, event‑driven orchestration, and progressive rollout strategies | GitOps‑based continuous delivery and Kubernetes app deployment | -| Use Cases | Running pipelines, batch jobs, or responding to events | Syncing Kubernetes cluster state with Git repositories | -| Trigger Mechanisms | Scheduled, event‑based, or manually triggered workflows | Git commits, branch/PR state, manual syncs | -| Core Value | Flexible, container‑native automation | Declarative, Git‑centric deployment control | - -In short: -- **Argo** is the orchestration toolkit -- **Argo CD** is the GitOps CD engine - ---- - -## Key Features - -Argo (and its sub‑projects) provide: - -- Kubernetes‑native architecture — built on Kubernetes APIs for tight integration -- Declarative configuration via YAML -- GitOps‑driven application deployment (via Argo CD) -- Workflow automation (Argo Workflows) -- Progressive delivery / rollout strategies (Argo Rollouts) -- Event‑driven automation (Argo Events) -- Role‑based access control (RBAC), audit trails, and SSO (in Argo CD) -- Web‑based UI and CLI tools -- Scalability and high availability for production use - ---- - -## Getting Started - -## Argo Prerequisites - -## šŸ”‘ General Requirements -- A working **Kubernetes cluster** - - Local: Minikube, Kind, k3s/k3d, Docker Desktop - - Cloud: GKE, EKS, AKS, etc. -- **kubectl** installed and configured to access your cluster -- **Namespaces** created for Argo components (`argo`, `argocd`) - ---- - -## šŸš€ Argo Workflows -- Kubernetes cluster with RBAC enabled -- `kubectl` CLI configured - -### Installation - -Below are the installation commands for each Argo component: - -#### 1. Argo Workflows - -Automates and orchestrates Kubernetes jobs and tasks as workflows - -**Installation:** - -```bash -kubectl create namespace argo -kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/install.yaml -``` - -**Verify installation:** - -```bash -kubectl get pods -n argo -``` - -**Run a simple Argo Workflow:** - -```bash -argo submit --watch https://raw.githubusercontent.com/argoproj/argo-workflows/main/examples/hello-world.yaml -n argo -``` - - -#### 2. Argo Rollouts - -Argo Rollouts provides advanced deployment strategies (blue-green, canary) for Kubernetes - -installation: - -```bash -kubectl create namespace argo-rollouts -kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-rollouts/stable/manifests/install.yaml -``` -#### 3. Argo Events - -Triggers workflows or actions based on events from various sources. - -installation: - -```bash -kubectl create namespace argo-events -kubectl apply -n argo-events -f https://raw.githubusercontent.com/argoproj/argo-events/stable/manifests/install.yaml -``` - -Verify installation: - -`kubectl get pods -n argo-events` - -#### 4. ArgoCD - -Continuously deploys applications from Git repositories to Kubernetes clusters (GitOps). - -**Installation:** - -```bash -kubectl create namespace argocd -kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -``` - -**Verify installation:** - -```bash -kubectl get pods -n argocd -``` - -**Expose the Argo CD API server:** - -```bash -kubectl port-forward svc/argocd-server -n argocd 8080:443 -``` - -**Access UI:** - -```bash -https://localhost:8080 -``` - -**Get initial admin password:** - -```bash -kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d -``` - -**Create an Argo CD Application:** - -```bash -argocd app create my-app \ - --repo https://github.com/example/repo.git \ - --path manifests \ - --dest-server https://kubernetes.default.svc \ - --dest-namespace default -``` - -**Sync the application:** - -```bash -argocd app sync my-app -``` - - -## Resources - -- [Official Website](https://argoproj.github.io/) -- [Documentation](https://argo-cd.readthedocs.io/) -- [GitHub Repository](https://github.com/argoproj/argo-cd) -# Argo -Argo Logo - + ## Overview Argo is a suite of open‑source, Kubernetes‑native tools built to automate and orchestrate cloud‑native workloads. Originally created by the founders of Akuity, it’s now a graduated Cloud Native Computing Foundation (CNCF) project. diff --git a/tools/LXC-LXD/README.md b/tools/LXC-LXD/README.md index a08d49c..4c5173f 100644 --- a/tools/LXC-LXD/README.md +++ b/tools/LXC-LXD/README.md @@ -70,7 +70,7 @@ Linux kernel >= 3.12 -**LXD Installation-** +## LXD Installation LXD is supported primarily on Linux distributions that have Snapd available (like Ubuntu, Debian, Fedora, Arch, CentOS, and more information inside this [link](https://snapcraft.io/lxd?_gl=1*1f0ig8*_ga*MTEzNDgxMTkzOC4xNzYzODUxMDQ1*_ga_5LTL1CNEJM*czE3NjM4NTEwNDQkbzEkZzEkdDE3NjM4NTEwNTAkajU0JGwwJGgw#distros) ).