From 848d6f746cbedc730d04cc0cbdbaff5a637b05ad Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sat, 1 Feb 2025 11:43:52 +0100 Subject: [PATCH] FOSDEM --- ngi_fedi_full.svg | 62 ++++++++++++++++++++++++++++++++++ roberth.jpeg | Bin 0 -> 21075 bytes slides.md | 83 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 ngi_fedi_full.svg create mode 100644 roberth.jpeg diff --git a/ngi_fedi_full.svg b/ngi_fedi_full.svg new file mode 100644 index 0000000..8640e92 --- /dev/null +++ b/ngi_fedi_full.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/roberth.jpeg b/roberth.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e0f40c29a91a767cb0a33aa560b077f7db9117c8 GIT binary patch literal 21075 zcmbT7bx>5%|Mz$4MqpPuBzFPHr5j}FS~^5v1=%H}Q3qyF*H(8%YsR zAHTmR|9qb3%zW;hJNM3+dCfhanR7nx_vi28-(|pC01*KJApt%SAt50#F%bzFh@6a+ zl#HI5h7!cgz{|!NtQTAS5Ct zA$=0vZEbLUwnMNJxA>5r=YpHyAPXgHzPb zBb1orAuSy}0~a?B1j-8&6PJ*bl2&=53RhFt&@?nMHZe6bw?IC(cX;85LVJ37`}q3# z2ZX&1kBE$Vhe=3GN=`{lOV21MEGjN3Ei12RXl!b3X>Du&@TI4>uYX{0Xn1;Nc5Z%Q z@$1s}jm@p?o!!0tgR}FC%d6|3H@|Ly0NnqM^Y8lKf&LF3s((BLN5TZuN(O|s?lkNoAw(eM`26~AVh&Nn53rrb6v;zQ*mth8{~-Mr(f=J#=>Hed z{{s47Jb#w}WVpb8KMa=&pa8hy(2<>rwVI){IFLM&%`OB@>s536l?ss4k`jLet=}7( zQOu4`KI9>UolRF(+7(gbDpqNe)0h1;3_}1ns|l+m-16G;2n}_B<;CSuP7Y~qyeeVZ zFu=?VEa@Ct)lE36csq$;fCtR$HooT1>o+DnOK=alsz&l6Wx_p|u5%x@Q!Xz2w*A%W zV?j5pZ_&s9CD5*wLjLl2aH0VFrS^APqf3T4DE_0P8{jwJgsT_hDY?*x){pVWg##Ib z#KMUOGME$CW8JmeIqk-Rm80?JtQ@h%W$h*cHPIoy%WK+ERDCUC&b{r;@lbE$82bbSD1zsZptBSaeDeVJbehrcgBo?ZLBV^j4e z;PdJPlZis_Z{wZW^%)x+#iEus9q!SFwf5?db!Oc*4%T$0Aqqj1_&RO@$(OCPq5E19 zyLjhLQX0;I<(Dc585^!vZ1W)lrUUq*7_y8oZcF;2yA){j*1iC zW=p)>Nb%sXsm#K5?85NhnHqUZNx~9W(l-ygD|FcFy1_J}@PK%A`*5~U(ZR~=R^=xT zG$|DC*5%r!^`a?!VkqY?Gha z9-dmG1?|1RQitS}(u>I=nw&l$!~X)Dw{m-`Ma(a`Q#WEHjMvA@hDDo~PfdmosFh^h z?S*;Z&PVr$JBgKF-oI^%`wM7d1P5xJdC#YdjG){-!W3i$?&2fsj!-K)tndTziLwHh z@cg#-f@DL2qeTHPYNs>v{6bxxjkdIThaQkc4vq&=Zkn+$o*Ab`ZQ8d$%@g7rId8M?r|td&bHobi725_C>f^gSz!5*h6D^z@j& zddk+o^O2PXN3a&neoklxvOecFhb)$fJovS9mMcN~S59&%84Z0uL(A4m{+5kxni2Y? z13x^Lt1(Rh4j=OeIj?{I1y~oyP-v{kc4vRuU(cvyzKmD5pf;{kvz`;SkJlo@jTWlf z5RT*3R9!|fY$&IVzO|9KnT>UCd8pJi__T1T0?tC{fEP+D1)5K)qd$O<(ms5{OWk|! zXJEkLAI6s3U)k6gPMF7p-~h`yq?viTX_S0))tAA^C}dSh$^A^Mh%kX@_iU%*dhK@zv3t7RB~S8Cf@(g__TDUD zaNtG;SK;2OLcfK=qFn;&)q*Mj@+@m}y75YoYQo)3938*-rN^TmdBG*$o0Gg@;ZQ7A zNf_ZvMu*RKS*`UAY`wyh=rN@!1V0a!*nx&)=Xd+gQ6J(&^gQ+&aK7hCT>};>_cB&f znoAz9CiO)sHzorpkxeMD`ZK(sxE5BAaJND?`$x>oS7Kw+0`tjL}jd- zq=6!3p^M~W0SFM#Ra_7Zc@SAGo&!e}+30h>&3getg!Kv2d8PMpuR}jJT7+=JAuGJH zQ#p=Q+<)A4$DTmD%jj;Q!55n3IJ7Xz0PRUfItlhP)MZ*8fo~~= z16apH@TRK_8tc0ZQjm)Q3n@2=eV%CAPzd8l!@!_Viht+zHLI2J>ATmQZFQ|W(z6xK zUA@s1X1L4ewfwWPsw`OvDkUii8WCJMwu6@>GA1G^CGqdx7@T?Et^9&-v#BzwrKb$6 zOV;@Ow2JQu^Rq|(UJPa(uIElJ_84DI%h3@svib_|t@Sw3;K{k-wURxmILF7miK^%( z-ul7&M)W474cHe zDLg6SJ-AYZAaDDlEx=}&xgCN)LR`M-R8;<^GmdhF6#pY09)Tn#T8vy_=8kv>AApCluhjOACGo4(xASMP)NFGi~Li8lg z6ddJ~)0U@9qYBao8p1UN&{Xq96o5V)hnUJ^d+T3gv>x#1{79LQ?;#uI-NNR$0Y)(% zr5<&X|8gc~jQfPx;hk$uMQN_7GG7t5z+aET&?XqJeBqydfQLe zlFtO6%xZ-CEr}43Azivy^MR4u)_N{KHU`B<6sTL5gp(KZDqpkBGJJb`Z&2WzaI%6X zWK40gN>!A}^87Vb28%6pe#zb$-qHRf#}dphbNf2kJHV?p^PcgHPXKQkv5^ph4>C}U zChxeNrW&K4fF;+FVuaz2dH8*xJa;%gfK7I$UT1$P)f@1beg~teDBxenG$}oeZ35Wr z{L2hO=C^&YS{@#@nZ^sdOxSynAcqhT?qAgFr_ejpbCZK$PPN;L-dud0yd$Fdbf~6u zpmpc2_va^bF4C<)%+6-BjLM*9*iS{Kj2&saCUzs{KWE2=L_XX<0Rfa2b+TA?_^>d;hPQULZB&a`v>S+RknUKq*Q$y0MdE;%c|Ko) zWwH4XAzy6qlaq!};-y)j5C7P%Rl+DnDlmOw51;Hec{~ffFMMH9^ zHzb+>NCD=*!YV`I-}=JYvU&tKS2HlZEKg@nes`NO{I0HOH?PtpX1gLm*Zi|4aeafV zn*R%-ugUfbU5jI0K7Ro;&8LrTTN0KC0XV0^6Pq8}ophuF@1m8XM((vY!*Ay@BO`SM zoqUV?=@+)_g#Q9?nEwK#6{lWUg;{+1!0@iVHMxjYX0buNM$U}e?R7yXqAbyg;Z${F7C4I#|t)yFC|P(rdJjBhmSTMd8w>3r$!MyF}+%8|;XUYdombG+Rq zEyX*r9smnHiX^D(P^fz2xSw*-GO?CtqvBPa=Xr!4HD}vMNvqDGwD55RqKe268`1hW zhz$&cYJ4hZ_U%;0EWe-y1jJwmVt6{cB;?2(eyYmDo(jT`G|13Kgv2XyK8E0A5W;>) z7Coc|rR`)%&(uNM2HVJQOo3;Nz0ba0yDxJbUjXgY5ct05dA4DyKAv z-Rc`@IKHXvK=mUN#pgX^OZrFV=gUc>4ZK<5Mvrbg6JQjnvBc}(o;da_EuS}#ioH! z+A`SeWIH_qleR1$z~H2OIBWcrWE6`b8nA#y{m+H zK8i0N^;n%4e42xbQMaD1ma6Aa z-}10RP84r}n!kZHrJwv9hG2uKdfG(ucy^Qq8T&31X>Z?nZTf0sN?qw~GVW}?J^E$( zJHCrmb1Ft1@N+;ce}bp%yp-9$7~wuxfSsilaO}fL&C(a@qbn{dc9ZHrgl}M>J@nPC z!hk~1iKteHn$Qv3GqiqtF=$;?z=qBw5iCABwY`%nLw#fsZyCyvf0$ILq21LS&_4A0H+*v2X6U&b7WQt#J9h#yH(v z?e)8+mJL5v4?T=1(&Gy}4BvDE|AxUPh=?ASdxW zSK|9quKt|Hprf{`pA9L)`e%>)CJgpii7 zan``1Dhgh<_VW_gh z^oMVhR?lvDdP!k%jZ2Z|&!v7b=CoZOYLyEb1<^R}m~FoGilP*{p0NG>hWA5Wh*<_f zxl>t>Y>O|eW277ZUMXY!#AS7?lxAoZqnxk>x6S1FBAYL)okTMT|HWd%E1z~l`IRNUgNVDi*zsgAnY*JxxezleNfN(jp{&J|orLtt$s z<2P}l9kSFU3&D^-mN%zMb zqD;QrpW0KM?DgC{g3g{nZn{laslE-c@^Yi!J=Toal@6F$^Cos z0!ACPj(=E-eNy=7_RVyCC-+Nrmm1|~)bQcoXQrFJ*Q<9wp7a$fim#|u(b`J= zl^e|zVxDKJZiF^ z*M}w~TjzSaO3!qm(Z$=Wr!Nk*178JqP?=(O%Ze5W(MU*jo%Q>c5;GwW4en}uLb}ol zo6910&|4(k{Q=Yk$jtl0AOj&iWg}EFL&{XnUj8YX`IGa`hoE#YqgvvjHigJ(&zWS; zBlfbtfG>hB(ZoE4M^|ew5;e{6YH%dqFGGZ5BxoGs=g=<_yWQC0FCr{PP@E6n(}Xbj z)C^n7<*mOEGydKsZ?ic|QsWdq9KYo|@8Tp1C1kFs(eY*BoGE~ew~zBh+8C{0Rp;{+ zX1H%7d+NHF(KZ^}v2qneKQy>=j`TRn4vmzG8d#yadLyCqe(WDCN!yzrw!ip&vIlC> zQ*LAY%)7~v6}~)4Wx1q!nKJT8yvGF+Gwa_(`<~-0h{E9 z1Dj998$y^TxiBwIYhIuKWbf!%{|kt6wVr+|ZUTQt>_z{pU2MPABy_LdTA(^@ z=q1~qhXX1{LA)E6LOHjYY+D9Ku*$31DrB1#j@o$PjhUO;uIWJ(iGfZr2yiQUtPbHJ zh#T^u)O?yVYyZ(u!+oty?}^V8e9AyHnV!31#77E{(M&M9Ek=DtdTdZfUsck^No_U@ z_njbfvR6%)UJ!S~ho7@wi6yyOMZ1d8$K`CzRXmZ7$j>G|G=Nnen%|YJc$yBr^RRD( zz-Ag;Lnd&uS(tultY;b3O8$^Rzo=~NReNPsg0=Pu z#l}`kkkh^(=-~R+HSBS(YYv(+6Ldq#H|pVTu5(}|lO&r*Db+{zyKr-M zc0Bi^shyH*X#V*-gy(d@PAfYHbHKD=8WJbdNTgTIlOLIX;8Z*PxDYF5BbrkP9zn%N zw$txFz0L;N8^ArW$uT-(s6y9qHX}e@ti|j*uxZwB-sTSvaB9JM@gYN1x<%}zQl&OK zx!6nJA|d0eQiM-2E-ZpeP)=AE7j|Tb!+(bem6>fLi1yTe{z~5+0VZq~D%)ibrok8t z!JG*~=m>(DF~XVzQ1RVn0IQ~?>{JuQY^Ewe1~eU<0qpLR@s-8k!KZ*(B$b>hS(uL3 zXk;FH8rIT0#G2M{2E1(%&COUscW6CSzLcsqQ0yNY#m^w|4V$d*;~<9g_RL{MElU0@ ziN`_+!P6cI{Xi-9Qd$CTUP>|Jr;XvIy`*{*lCsmdbDyYWH8vpcv#Yv?xkcMH6;i>c zlluNsK2r=oe=eRhk83-a{3thN$Azx<`A8Wng%;{OGOef~a&}k|V zLC?ig9J%TWYZ8~^@syBDTGsDDc9a}c;Ho;;4wpqj$p_F2lHON#shGr}@`nq)XNVmo zI}!tv*F&)zV~}Q$Xa0FZGsg>NMX=}5dO)Ifpo7!^U12sMpKR?$b|d*iq1d+~9)yG} zR~w8p$MkF<1mI__$4%j*Oij)Qj|3iE4BeW(Po~mV;U?P6nM?Gw?{hS6`}Lk>WRfJj zT`}_1SIkb8k9u$b*p54&@a2)W+fYbCDScj{&=t())+m-fe9)%)684sWUcZMmMt@|< zPAE0{q~Tpt*4glXsLHs@0tSZroys)w9?syOM@-ARd5l2zZyWW~o9}jMmBA z%`@NkfzrD{>!OO25JIMz0qZ1SOBOU*`+*!(u}_fY(p?=Fl=OgH5GSpda~ER`6(Us9 z2+45-t^^pUf!q}d(U5^xQ%i9@uoF~=EcHu*ePvCUgV9}yl03PIa(!U6IEeDvV z9buL{87jRXT)j87qP%G{1YStKu2^^wp$tv%1OKkHcq*&cO;E9b+H`?E-q6e=i)Ppu zWLsZ&!aOx3=71ZP(TbDKgaqsYE_cf3D&5XM^mmYVCGHyy%GBcBi2Ur8e*dJk(mDS8 zxGCjc#G;m+5D0wMJw z%lo=S<3-s=+62;u<&Zw}xTYV_v@uyXUNcgy3{5C7@!Blu)d}wt>Hm97jV29MDkCG$h_c>DJx)J?dcfqLn`yneIz$9z{YzD2%Mu=7aJk7Y))JOw27U4- zIcz?=j^c`Ti7-HZvdN?Vg58R2mL@?3B1t9%D{(i_5V$rr$jb1s^H9sYH)`Pi@>RcP zaZ%L9d!vKkc6YQRzTaPtZ|_@_J1hf#w5s^+3wNo0{8v*_xSkZn<=%KF>Zc!Mg}2=B z)yR(VLe-baWM(z{BDo8ZDcofRmZ2=ln}tjp1!Th>#Gr~mn!ZO&o1H?^g5-R99wHij z0p8KJj|}#$ctTucC#3B)Avv#HW!ecry0=zXka;5|s zPxYT?8NG3e&SB)4evdyw-Up+}nImpj1Ui%imC?k(Aq@5%GxS|$pmp9IVqu>JW_Zld>WIwTQ@MXeqPv*A`l5@jdZwI_*6 zUSQjc2aCx3=t}{BvToeJfCWW6X$Cv4r682>p=MR!^bfx=VX|dK(D$6n4t*`VXuFJI zqGEcS+-}g&3#yGn{1lumBrfLMDe0>yWx!9t2W;X9>VHy18MiA_*``>Lgir;75bQA; z#&&9)Aj(4;eV1ht9upmUAS!YcEBhH~AU`7PdhiVBaq zLv2}X=MPTA(q@mz1htf~-c;7HYe2}&LUEOimww?)wUxMVdE3W33LQC*fN6Z3EZ!(4 z0>~IH%qY11-+`(RSE@p)^yp{Fv6u>V^yI(V4WUEyv|TU+I9reqG9S#Eg@}MH87NZ! zJAr%Z&&=LU;x+a0jPXpT!lLxj7EcwKp7mBvH2BHr<9Qr5v6k1SGr!ls23*$W%Zpeg z{kVxrOm!o{X7lZ~jlV#==``;gL)Kw&+HqwK{ZA2DBJB!(&G1D@whJW{v^r8$J07dW zWPJA+7cooVay%kfZiDZ<=%;4flzQyZL&Is6L>)7*uWhPk`u#oC3%e)+$)TS$F@C$n zZoB>NsA!k9!BlIa3qmknE|n#os!jWm`5_^pXTDKPtZH=GRt{RG8qVi9!M1r`%h!3f zR_*l>dA|PanoyzIUOvC_S&PNa3sx%n|CUeB)5SIctsu1V!f=U7`Spaw#W_iC%Jyd}9U5KYo``#Q zHOTKmnVmDqt(W?G4wXVq6+Q&^yn(yL{`J}CzSQLZ6pE;{)p(6Abfp~s!IXb5EghSX zn2R7Xs7Pqbp`)J}ZgtGB{>Qi-S@9~Lwd^z_lE!SVeRV*Rmq^UTUJ^XKh~^mqe!33K zn58YnZn88J?5{HHpgl(A#*mpIJit2P>0)e99=`3(B-tW$uoN2ugY6`X6UVW+Yz9W_ zO0Q$F58&cotj2RzO56&Js51JjEZRo3oS{_F-{Ai|W>rrP(#X~1rSXWP1#O!k;wKhM zeojr~rfRK~rw2OHvL8KzYxD`*TOnmdn6u2z zY9C!U5l`!h4Z22qZZ*0wznGDY{jS{|_8P`?W3c*2Qa49lAKFs;yMfXH?my)v{vp;L zA4nJ~=j0*td<7Re9GlAAXDK4L@ZE}gw`aq5pR9 zuGDRtPI{(3Se5cqbq^{w=+5_c*y-Mc{yGy?glREMI#V)5Ft!gF1-&iasqb<*R9y z=JI#5`>zEp8ND!;dZI7AolRBkH{O$LJhf|TGacZJ$6PoT_!kj{aV``%GSD}*n7Cim z4T;etM>3$bH=1$m<^@=G9zIHoE5&y5Cepo%Z?+tp;A!ET6THj}{Ah}GOm17>jJJO3 z@9OfBE3BrUJ!*Jcld0%KP+pGC>7VL=yZQP*2X1osTBY6F<`u_G=QqGdA2OrDZg?AG73pbrdK05gvaOrDwA&2q3F;=buZ+v{Ay z!i`;YTV(EAH2N$o*RvAGJmSzT!P(0LrJ4yYy7Yv@maLjsIO>?zGe6Tn=0=WBK1hvB zLd;g9ENj#IU!7`;Cr1vQM3-&k`l)WP2tKEct|4U}HOHFGOZrS8bReta>fnM#2b!h) zi-v0**0^3o!q!y#S@T%|HSIV^K6koZEXsp&iDl-cC(}r>4f

5GDHjF~@+0lQh?? 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 + 2013 - 2020 - NixOps 1 is a tool to deploy NixOS systems - Provisioning, secrets - Also resources, e.g. AWS Route53 -- Call Nix evaluator twice (bad(TM)) - +# Why + + +- Testing and CI +- Python (*) +- Call Nix evaluator in batch, twice (bad) # Why @@ -68,7 +116,7 @@ They did a good job with the architecture they had. # Why -2022 +2021 @roberth @@ -117,9 +165,7 @@ NixOps4 + # Expressions @@ -308,15 +355,23 @@ Integrate arbitrary scripts, no glue code # Operator benefits -# Caveats +# Progress + +Built, but subject to fixes and improvements +- `nixops4`/`nixops4-eval` process architecture +- Nix C API, Rust bindings +- Documentation tooling +- Testing + +# Progress TBD - `mkSequence` nesting / data dependencies - Read, Update, Delete -- More resources - - OpenTofu +- State management +- More resources, OpenTofu -# Demo? +# Questions # Not discussed