☸️ Kubernetes Homelab - Flux Auto Updates & Home Assistant
Read full transcript 87 segments
-
Saturday morning doing some tinkering on Saturday morning doing some tinkering on the home lab the home lab the home lab relaxing and yeah finishing up continuously and yeah finishing up continuously iterating let's iterating let's iterating let's see fixing up all of these streaming see fixing up all of these streaming see fixing up all of these streaming configurations that I have to do every configurations that I have to do every configurations that I have to do every time which is a little annoying but see that's all looking good just see that's all looking good just checking manager let's see yeah looks like we're manager let's see yeah looks like we're live okie live okie live okie dokie then I have to yes YouTube is to yes YouTube is streaming twitch is streaming twitch is streaming twitch is streaming all streaming all streaming all right yeah this is what we're going to right yeah this is what we're going to right yeah this is what we're going to be doing today
-
okay looks like I have my chat online okay looks like I have my chat online too and we can begin so I was I had a too and we can begin so I was I had a too and we can begin so I was I had a problem this morning where the source problem this morning where the source problem this morning where the source controller in flocks that was recently controller in flocks that was recently controller in flocks that was recently updated it had a updated it had a updated it had a problem problem problem and I it had to do because I had um and I it had to do because I had um and I it had to do because I had um merged a PR I merged a PR I merged a [Music] [Music] [Music] PR yeah and renovate has done it again PR yeah and renovate has done it again PR yeah and renovate has done it again that I merged this PR from 125 to that I merged this PR from 125 to that I merged this PR from 125 to 1.3 and then my source controller 1.3 and then my source controller 1.3 and then my source controller broke and I'm Now using renovate to broke and I'm Now using renovate to broke and I'm Now using renovate to automatically uh automatically uh automatically uh propose PRS for all of the updates but I propose PRS for all of the updates but I propose PRS for all of the updates but I I remembered that flux had a certain I remembered that flux had a certain I remembered that flux had a certain auto updating capability for itself and auto updating capability for itself and auto updating capability for itself and I actually am going to prefer to use I actually am going to prefer to use I actually am going to prefer to use flux for for its own flux for for its own flux for for its own updates so that's what I'm going to be updates so that's what I'm going to be updates so that's what I'm going to be doing let's see automate flux upgrades doing let's see automate flux upgrades doing let's see automate flux upgrades on clusters via pool requests that's on clusters via pool requests that's on clusters via pool requests that's exactly what I want yeah so there's a get up actions want yeah so there's a get up actions workflow double run and then it will do workflow double run and then it will do workflow double run and then it will do a flux install and when that's done it install and when that's done it will create a pool request with any
-
will create a pool request with any will create a pool request with any changes it might find so that's what I'm changes it might find so that's what I'm changes it might find so that's what I'm going to be trying out out so in my home lab okay start the Pomodoro okay start the Pomodoro Timer and in my home lab repo I'm going Timer and in my home lab repo I'm going Timer and in my home lab repo I'm going to be I should probably create be I should probably create a usually it is like a GitHub directory a usually it is like a GitHub directory a usually it is like a GitHub directory so take here. GitHub and is it workflows I think GitHub and is it workflows I think it's let's see yeah see yeah workflows make the and then we're going to do a flock and then we're going to do a flock updates.
-
yaml um okay yaml um okay so what do we have the name is update so what do we have the name is update so what do we have the name is update flux cron I this will mean that it runs flux cron I this will mean that it runs flux cron I this will mean that it runs every hour I think and do I want it really to run do think and do I want it really to run do I really want to run it every hour let's I really want to run it every hour let's I really want to run it every hour let's see open I how often will this run and change it I how often will this run and change it to to to once a day yeah Z 0 then it would run at day yeah Z 0 then it would run at midnight yeah that's fine we just run it midnight yeah that's fine we just run it midnight yeah that's fine we just run it on midnight every on midnight every on midnight every day and I can just trigger it manually day and I can just trigger it manually day and I can just trigger it manually for now so B to latest it will check out for now so B to latest it will check out for now so B to latest it will check out the repo it is the repo it is the repo it is in then it will run flux in install and in then it will run flux in install and in then it will run flux in install and then clusters then clusters then clusters production so I have clusters production production so I have clusters production production so I have clusters production so i' I've this is why I ALS also follow so i' I've this is why I ALS also follow so i' I've this is why I ALS also follow the the the flux um repository um structure that is in the repository um structure that is in the documentation so let's see clusters documentation so let's see clusters documentation so let's see clusters production that is production that is production that is all perfect and then we Echo out a version
-
perfect and then we Echo out a version okay then we create a pull okay then we create a pull okay then we create a pull request and then with the secrets. gup request and then with the secrets. gup request and then with the secrets. gup token that is actually the token that is token that is actually the token that is token that is actually the token that is available to the repo itself so I don't available to the repo itself so I don't available to the repo itself so I don't have to configure it update to flux version it update to flux version yeah okay is it really going to be that yeah okay is it really going to be that yeah okay is it really going to be that easy well let's um easy well let's um easy well let's um commit that feed add flocks commit that feed add flocks commit that feed add flocks update now we should actually see a get up now we should actually see a get up action starting no it didn't pick it action starting no it didn't pick it action starting no it didn't pick it up no it didn't because it has a craw up no it didn't because it has a craw up no it didn't because it has a craw trigger so I can can just run it like trigger so I can can just run it like trigger so I can can just run it like this run now okay get up actions is not permitted now okay get up actions is not permitted to create or approve pool requests so to create or approve pool requests so to create or approve pool requests so then we go into the repo then we go into the repo then we go into the repo settings then there is actions
-
and then it needs read and write and then it needs read and write permissions and allow get up actions to permissions and allow get up actions to permissions and allow get up actions to create and approve pool create and approve pool create and approve pool requests I was struggling with that with requests I was struggling with that with requests I was struggling with that with work um the other work um the other work um the other day that's why I know so we can trigger day that's why I know so we can trigger day that's why I know so we can trigger another because when it runs once then it can because when it runs once then it can just run once a day on just run once a day on just run once a day on the crown trigger so it's not going to the crown trigger so it's not going to the crown trigger so it's not going to be a problem okay it has created a pull problem okay it has created a pull request so let's check that out here we request so let's check that out here we request so let's check that out here we go wow that was easy upgrade to flux go wow that was easy upgrade to flux go wow that was easy upgrade to flux version 223 here here [Music] um large diffs not shown because the um large diffs not shown because the diff is too large please use a local git diff is too large please use a local git diff is too large please use a local git client to view these changes huh how do we do that changes huh how do we do that then like I know how to view commits
-
then like I know how to view commits then like I know how to view commits when I make them but well what I can do is I well what I can do is I can get switch and switch and then update and actually I also need to add I forgot and actually I also need to add I forgot about that let's see I also need to about that let's see I also need to about that let's see I also need to adjust the adjust the adjust the flux flux flux um let's see installation upgrade here flux CLI
-
installation upgrade here flux CLI upgrade here we go maybe I can just run upgrade here we go maybe I can just run upgrade here we go maybe I can just run it locally first before having it in an it locally first before having it in an it locally first before having it in an action let's try action let's try action let's try that so if you use bootstrap to P to that so if you use bootstrap to P to that so if you use bootstrap to P to deploy flux then rerun the bootstrap deploy flux then rerun the bootstrap deploy flux then rerun the bootstrap command for each command for each command for each cluster using the same arguments as cluster using the same arguments as cluster using the same arguments as before yeah so to upgrade the flux controls with Git so to upgrade the flux controls with Git You Can generate the new kubernetes You Can generate the new kubernetes You Can generate the new kubernetes manifests using the flux CI yeah so I'm manifests using the flux CI yeah so I'm manifests using the flux CI yeah so I'm just going to do it locally and then I'm just going to do it locally and then I'm just going to do it locally and then I'm going to do it in the going to do it in the going to do it in the workflow so and here I need to add the extra and here I need to add the extra components y components y components y okay so I'm going to copy okay so I'm going to copy okay so I'm going to copy this CD temp and let's see I'll do a um temp and let's see I'll do a um flocks flocks flocks yl not just yl not just yl not just flux so get clo flux so get clo flux so get clo is github.com SL no I don't need to clone it I'm SL no I don't need to clone it I'm already in the repo plugs install export
-
go and then here I need to uh go and then here I need to uh the extra components and that's what I the extra components and that's what I the extra components and that's what I did did did with by doing automate image updates to doing automate image updates to git that's where we need the extra git that's where we need the extra git that's where we need the extra components here we need to add this yeah okay so it's image reflector yeah okay so it's image reflector controller and image automation controller and image automation controller and image automation controller that would be controller that would be controller that would be the change change [Music] [Music] [Music] and hey Adia new here welcome to the and hey Adia new here welcome to the and hey Adia new here welcome to the stream nice to meet you stream nice to meet you stream nice to meet you can I know what you're doing yes I am I can I know what you're doing yes I am I can I know what you're doing yes I am I have a kubernetes home lab on three have a kubernetes home lab on three have a kubernetes home lab on three physical notes running Talos physical notes running Talos physical notes running Talos Linux and I'm um configuring automatic Linux and I'm um configuring automatic Linux and I'm um configuring automatic updates for flux which is my gitops um updates for flux which is my gitops um updates for flux which is my gitops um engine that I use for deployment to my engine that I use for deployment to my engine that I use for deployment to my home home home lab and uh I'm just relaxing and doing lab and uh I'm just relaxing and doing lab and uh I'm just relaxing and doing that on the Saturday so this is going to be the Saturday so this is going to be the command
-
components extra image reflector and components extra image reflector and then you just export it and do it to a then you just export it and do it to a then you just export it and do it to a new file so if I do if I go get switch main I'm on the same main I'm on the same Branch just double Branch just double Branch just double checking command here extrem is reflective command here extrem is reflective controller yeah this one controller yeah this one controller yeah this one okay so this will give me a diff locally okay so this will give me a diff locally okay so this will give me a diff locally of the file go so now I have a very large diff to go go so now I have a very large diff to go through but at least I know what's going through but at least I know what's going through but at least I know what's going to to to happen so it's doing a lot of happen so it's doing a lot of happen so it's doing a lot of indentation actually recently committed a change to the recently committed a change to the Manifest and then my Vim messed with the Manifest and then my Vim messed with the Manifest and then my Vim messed with the indentation a indentation a indentation a lot so I should probably revert that there fixed controller version that's
-
there fixed controller version that's the the the one that's a very large one that's a very large one that's a very large diff that's the great thing about gitops when that's the great thing about gitops when you do it all from code you know exactly you do it all from code you know exactly you do it all from code you know exactly what you do or what you have what you do or what you have what you do or what you have done so here I'm I I just adjusted the done so here I'm I I just adjusted the done so here I'm I I just adjusted the controller basically let's basically let's see get switch to Lo commit um get check commit um get check out no get checkout B and then this is the
-
get checkout B and then this is the commit that I dot dot okay and now if I run the flux install then the diff should be much install then the diff should be much smaller yeah see this is all that that it does yeah see this is all that that it does know excellent this is what I wanted and excellent this is what I wanted and actually here you actually here you actually here you see interestingly that so see interestingly that so see interestingly that so renovate suggested I update the source renovate suggested I update the source renovate suggested I update the source controller to controller to controller to 13.0 and when I did that it 13.0 and when I did that it 13.0 and when I did that it broke the source controller did not come broke the source controller did not come broke the source controller did not come up and now doing the actual flux way up and now doing the actual flux way up and now doing the actual flux way using flux install and now it's saying using flux install and now it's saying using flux install and now it's saying no the latest version is actually 124 so no the latest version is actually 124 so no the latest version is actually 124 so I probably was running some sort of I probably was running some sort of I probably was running some sort of testing version so I'm really happy I'm
-
testing version so I'm really happy I'm testing version so I'm really happy I'm doing this doing this doing this so correct after that correct after that commit I haven't done any other changes if I go if I go [Music] [Music] [Music] to again checking out the again checking out the permits yeah I fixed the link thing permits yeah I fixed the link thing permits yeah I fixed the link thing here I did the controller version and here I did the controller version and here I did the controller version and then I added the update then I added the update then I added the update workflow so if I merge this will it if I merge this will it then delete the workflow oh let's then delete the workflow oh let's then delete the workflow oh let's see just going to commit this fix flux indentation pushing that indentation pushing that and then if I create a okay okay so that's not going to work
-
okay okay so that's not going to work just like that yes flux automatically took the that yes flux automatically took the stable version at least that's what I stable version at least that's what I stable version at least that's what I think it did it's all just wi space on the source
-
it's all just wi space on the source controller container that's it container that's it okay okay okay so no merge so no merge so no merge conflict files close and let's do another run of the close and let's do another run of the workflow hey good morning hey good morning SPD I'm doing good how about SPD I'm doing good how about SPD I'm doing good how about you I'm had a quite an eventful week you I'm had a quite an eventful week you I'm had a quite an eventful week where I was awarded the Azure MVP award where I was awarded the Azure MVP award where I was awarded the Azure MVP award that was pretty that was pretty that was pretty cool and the SP getting of think of a cool and the SP getting of think of a cool and the SP getting of think of a Mini PC with I9 30 GB of RAM and 1 tab Mini PC with I9 30 GB of RAM and 1 tab Mini PC with I9 30 GB of RAM and 1 tab storage for my home lab planning to use storage for my home lab planning to use storage for my home lab planning to use prox MOX for VMS what do you
-
prox MOX for VMS what do you prox MOX for VMS what do you think think think so good for you that's awesome man great so good for you that's awesome man great so good for you that's awesome man great that you're considering to start a home that you're considering to start a home that you're considering to start a home lab U it kind of depends what you want lab U it kind of depends what you want lab U it kind of depends what you want to do with your home lab are you to do with your home lab are you to do with your home lab are you planning on running kubernetes or do you planning on running kubernetes or do you planning on running kubernetes or do you want to have different stuff too because um looking at your specs I9 too because um looking at your specs I9 uh maybe you want to go with a little uh maybe you want to go with a little uh maybe you want to go with a little bit more RAM actually if you have that b bit more RAM actually if you have that b bit more RAM actually if you have that b processor you might go for 64 or maybe processor you might go for 64 or maybe processor you might go for 64 or maybe 128 gigabyt of ram if 128 gigabyt of ram if 128 gigabyt of ram if possible and then if you're getting um possible and then if you're getting um possible and then if you're getting um Mini PC for proxmox so what I have done Mini PC for proxmox so what I have done Mini PC for proxmox so what I have done is I bought a few very cheap um thin is I bought a few very cheap um thin is I bought a few very cheap um thin clients like very cheap refurbished clients like very cheap refurbished clients like very cheap refurbished PCS because I like to have physical PCS because I like to have physical PCS because I like to have physical nodes in my kubernetes cluster I love to nodes in my kubernetes cluster I love to nodes in my kubernetes cluster I love to have the separate little have the separate little have the separate little machines and um I I prefer that these machines and um I I prefer that these machines and um I I prefer that these days because on a VM on on if you have days because on a VM on on if you have days because on a VM on on if you have just one machine and you virtualizing on just one machine and you virtualizing on just one machine and you virtualizing on it somehow that that wasn't as cool I it somehow that that wasn't as cool I it somehow that that wasn't as cool I thought like this just personal thought like this just personal thought like this just personal preference of course see okay so it's still
-
see okay so it's still not damn it it's still giving us this not damn it it's still giving us this not damn it it's still giving us this huge diff definitely yeah this is all wide space definitely yeah this is all wide space and you know what I'm just going to and I'm just going to merge it because I and I'm just going to merge it because I I trust that I trust that I trust that this update only is going to mess around this update only is going to mess around this update only is going to mess around with wi with wi with wi space so here's to messing up my cluster space so here's to messing up my cluster space so here's to messing up my cluster completely one more time
-
yeah because the command I use is yeah because the command I use is correct it's just going to update the correct it's just going to update the correct it's just going to update the gok components with gok components with gok components with the right things the right things the right things oh yes and in my actions I didn't aha no oh yes and in my actions I didn't aha no oh yes and in my actions I didn't aha no I'm not going to merge it because in my I'm not going to merge it because in my I'm not going to merge it because in my actions I actually actions I actually actions I actually didn't didn't didn't um update the um update the um update the damn damn damn components that's what I still need to components that's what I still need to components that's what I still need to do do do so get restore so get restore so get restore Dot workflows should this is basically what I'm should this is basically what I'm running locally to flux to flux workflow push that
-
nice yeah that's a nice small form nice yeah that's a nice small form factor yep it is uh like I don't know the company as as uh like I don't know the company as as well but uh it's a bit annoying that you can only uh it's a bit annoying that you can only do 32 gabt of ram though like with this do 32 gabt of ram though like with this do 32 gabt of ram though like with this kind of processor I would go I would try kind of processor I would go I would try kind of processor I would go I would try to get something with a bit more RAM if to get something with a bit more RAM if to get something with a bit more RAM if you're going to run everything on one machine yeah actually you should machine yeah actually you should definitely go for something with a bit definitely go for something with a bit definitely go for something with a bit more RAM especially if you're going to more RAM especially if you're going to more RAM especially if you're going to do um virtual machine virtualization man and are you planning to run man and are you planning to run kubernetes on that that close let's do the workflow again yes so you are going to do again yes so you are going to do kubernetes all right yeah then it's just kubernetes all right yeah then it's just kubernetes all right yeah then it's just a matter of deciding do you want to have a matter of deciding do you want to have a matter of deciding do you want to have the cool form factor of actually having the cool form factor of actually having the cool form factor of actually having physical noes separately or do you want physical noes separately or do you want physical noes separately or do you want to have everything in a nice interface to have everything in a nice interface to have everything in a nice interface with the prox MOX like you can't go with the prox MOX like you can't go with the prox MOX like you can't go wrong go wrong on either of those both wrong go wrong on either of those both wrong go wrong on either of those both are going to be super
-
fun okay so I'm annoyed that it has this fun okay so I'm annoyed that it has this large div large div large div [Music] see I'm annoyed that it has this large see I'm annoyed that it has this large diff but I'm also fairly certain that [Music] [Music] um it is just doing the right yeah yeah it's probably just all white yeah yeah it's probably just all white space that it's um messing so it's
-
so it's now fixing now fixing now fixing the controllers see if any pods are getting controllers see if any pods are getting restarted or good everything is applied and good everything is applied and now when I run the action again it now when I run the action again it now when I run the action again it should okay so no new PRS have okay so no new PRS have appeared appeared appeared [Music] [Music] [Music] and check for yeah Branch update flux no longer
-
yeah Branch update flux no longer differs from base Branch differs from base Branch differs from base Branch main main main great so that means that we are now great so that means that we are now great so that means that we are now every every night this action is going every every night this action is going every every night this action is going to run and then when flux is going to to run and then when flux is going to to run and then when flux is going to detect updates it is just going to detect updates it is just going to detect updates it is just going to updated so now maybe I should see if I updated so now maybe I should see if I updated so now maybe I should see if I can disable can disable can disable [Music] um let's see um let's see renovate here so here I'm just matching all of here so here I'm just matching all of the files that are the files that are the files that are flux let's here if most y files in your repository here if most y files in your repository are flux manifest the um now it's just going to match all
-
the um now it's just going to match all of the kubernetes Manifest so it of the kubernetes Manifest so it of the kubernetes Manifest so it probably will still match flux but at probably will still match flux but at probably will still match flux but at least I can remove this for now least I can remove this for now least I can remove this for now [Music] and well maybe I also know that if and well maybe I also know that if I stop If I decline a request I stop If I decline a request I stop If I decline a request from renovate then it won't do it from renovate then it won't do it from renovate then it won't do it anymore so let's see if you want to rebase retry check see if you want to rebase retry check this box close this PR and you won't be this box close this PR and you won't be this box close this PR and you won't be reminded about this update again again reminded about this update again again reminded about this update again again okay okay okay so I'll just close this one and then so I'll just close this one and then so I'll just close this one and then renovate is going to renovate is going to renovate is going to stop suggesting to update the flux CD stop suggesting to update the flux CD stop suggesting to update the flux CD Source Source Source controller and I'll probably have to do controller and I'll probably have to do controller and I'll probably have to do that for all of the flux components as that for all of the flux components as that for all of the flux components as long as I'm going to use renovate but I long as I'm going to use renovate but I long as I'm going to use renovate but I prefer to use flux for all of
-
this are you choosing flux over Argo CD this are you choosing flux over Argo CD because you pref prefer it or encounter because you pref prefer it or encounter because you pref prefer it or encounter any specific any specific any specific issues um flux versus Aro CD yes I um issues um flux versus Aro CD yes I um issues um flux versus Aro CD yes I um well first of all I had I already had well first of all I had I already had well first of all I had I already had experience with Argo experience with Argo experience with Argo CD CD CD so it's a great tool and I loved working so it's a great tool and I loved working so it's a great tool and I loved working with it but then I went for my home lab with it but then I went for my home lab with it but then I went for my home lab I wanted to try something different and I wanted to try something different and I wanted to try something different and I'm an Azure um professional and in I'm an Azure um professional and in I'm an Azure um professional and in azure kubernetes service actually they azure kubernetes service actually they azure kubernetes service actually they use flux for their integrated gitops use flux for their integrated gitops use flux for their integrated gitops offering so I wanted to get more offering so I wanted to get more offering so I wanted to get more experience with experience with experience with that and having switched to flux I like that and having switched to flux I like that and having switched to flux I like it better than Argo CD because it better than Argo CD because it better than Argo CD because flux it has a UI but it's far from what flux it has a UI but it's far from what flux it has a UI but it's far from what you get with um Argo CD and I believe you get with um Argo CD and I believe you get with um Argo CD and I believe that flux really enforces the github's that flux really enforces the github's that flux really enforces the github's workflow it is yeah you you're forcing workflow it is yeah you you're forcing workflow it is yeah you you're forcing yourself much more to work from from a yourself much more to work from from a yourself much more to work from from a giops giops giops perspective and yeah I I really like it perspective and yeah I I really like it perspective and yeah I I really like it so so so far and I am sort of discovering what far and I am sort of discovering what far and I am sort of discovering what flux can do and um now I'm going to be flux can do and um now I'm going to be flux can do and um now I'm going to be looking into auto updates with flux uh looking into auto updates with flux uh looking into auto updates with flux uh I'm already managing I'm already managing I'm already managing flux um auto updates now through giup flux um auto updates now through giup flux um auto updates now through giup actions and you can do all of these actions and you can do all of these actions and you can do all of these things with Argo CD too but um I like
-
things with Argo CD too but um I like things with Argo CD too but um I like this better because it focuses more on this better because it focuses more on this better because it focuses more on the code so the code so the code so far it just feels more far it just feels more far it just feels more stable and also flux happens on the stable and also flux happens on the stable and also flux happens on the cluster itself it's constantly pulling cluster itself it's constantly pulling cluster itself it's constantly pulling it in and on Argo CD you usually have a it in and on Argo CD you usually have a it in and on Argo CD you usually have a management cluster that happens on all management cluster that happens on all management cluster that happens on all of the other clusters and I like this of the other clusters and I like this of the other clusters and I like this sort of pool based workflow notice you used to play D2 Man workflow notice you used to play D2 Man the game consume yeah right well thank you I'm also glad I started well thank you I'm also glad I started branching out that's actually how I got branching out that's actually how I got branching out that's actually how I got started on YouTube you're right I I when started on YouTube you're right I I when started on YouTube you're right I I when Diablo I resurrected came out I was so Diablo I resurrected came out I was so Diablo I resurrected came out I was so excited and I wanted to do something and excited and I wanted to do something and excited and I wanted to do something and yeah I felt it was a good opportunity to yeah I felt it was a good opportunity to yeah I felt it was a good opportunity to start to make videos and then I I start to make videos and then I I start to make videos and then I I started with Diablo I but man I was just started with Diablo I but man I was just started with Diablo I but man I was just playing Diablo I way too much and I playing Diablo I way too much and I playing Diablo I way too much and I Justified it with making videos and Justified it with making videos and Justified it with making videos and doing something productive but now I'm doing something productive but now I'm doing something productive but now I'm just doing videos on what I really like just doing videos on what I really like just doing videos on what I really like to do and that's devops and coding and to do and that's devops and coding and to do and that's devops and coding and and all of that and it's working out and all of that and it's working out and all of that and it's working out very well for very well for very well for me so I'm glad you like it too me so I'm glad you like it too me so I'm glad you like it too man so next um I kind of want to just keep next um I kind of want to just keep working on flocks and try an automatic working on flocks and try an automatic working on flocks and try an automatic image update image update image update actually actually actually um but problem is I don't have any
-
um but problem is I don't have any um but problem is I don't have any images currently running that I like images currently running that I like images currently running that I like everything is up to date like super everything is up to date like super everything is up to date like super luxury problem luxury problem luxury problem right linking linking was changed 130 but I'm not sure if this does 130 but I'm not sure if this does anything to the database and I kind of anything to the database and I kind of anything to the database and I kind of don't want to mess with my LinkedIn don't want to mess with my LinkedIn don't want to mess with my LinkedIn database either either um so there's nothing running on an um so there's nothing running on an um so there's nothing running on an older version
-
let's see LinkedIn comma Fe traffic let's see LinkedIn comma Fe traffic those are all databas well maybe I can those are all databas well maybe I can those are all databas well maybe I can do my my do my my do my my own um application here the zle cting own um application here the zle cting own um application here the zle cting tracker I can try that tracker I can try that tracker I can try that one one one so my so my so my zcast tracker that was used that was zcast tracker that was used that was zcast tracker that was used that was updated ated recently updated ated recently updated ated recently history here this one was recently history here this one was recently history here this one was recently changed from 0.3 to 2.1 so I'm going to changed from 0.3 to 2.1 so I'm going to changed from 0.3 to 2.1 so I'm going to change that back sell cost and back sell cost and tracker 0.3 so that I can safely change back 0.3 so that I can safely change back that's an application I control control try try try um roll back ZK tracker and and then what I want to do is I
-
can my goal is to stop using renovate can my goal is to stop using renovate and just have flux do all of the the and just have flux do all of the the and just have flux do all of the the upgrades so here is the guide upgrades so here is the guide upgrades so here is the guide for um automate image updates to get and for um automate image updates to get and for um automate image updates to get and it's a very nice little work workflow it's a very nice little work workflow it's a very nice little work workflow that you have here so this is that you have here so this is that you have here so this is Doney a demo Doney a demo Doney a demo app yeah configure image yeah configure image scanning create an image repository to scanning create an image repository to scanning create an image repository to tell flux which container registry to tell flux which container registry to tell flux which container registry to scan for new scan for new scan for new tags so this is going to be the package tags so this is going to be the package tags so this is going to be the package um that I have on GitHub manifest for private images you can manifest for private images you can create create create a yeah you need to have a secret but a yeah you need to have a secret but a yeah you need to have a secret but this is all public so that's okay and then you create okay and then you create a image policy to tell flux which range a image policy to tell flux which range a image policy to tell flux which range to use when filtering tags okay so let's to use when filtering tags okay so let's to use when filtering tags okay so let's try I the repository is going to be zcast
-
I the repository is going to be zcast tracker the image is going to be Misha ven Misha ven Misha vanenburg uh repository yeah because that's also in repository yeah because that's also in the deployment file yeah interval 5 minutes yeah interval 5 minutes export clusters of production yeah clusters clusters production settle cast and tracker production settle cast and tracker production settle cast and tracker registry. yo in my home lab in my home lab [Music] repo I run repo I run this and then get div here it shows the the file image div here it shows the the file image repository cellcast and tracker lives
-
repository cellcast and tracker lives repository cellcast and tracker lives inlux inlux inlux system okay so that will add the actual system okay so that will add the actual system okay so that will add the actual tracking of it and and then we um yeah oh yeah then we create an image um yeah oh yeah then we create an image policy to tell flux which samver range policy to tell flux which samver range policy to tell flux which samver range to use use when filtering tags so here is the range that we want tags so here is the range that we want to use so this is again going to so this is again going to be switch that okay well let's put it
-
okay well let's put it to to to z.x so I want to do all minor versions z.x so I want to do all minor versions z.x so I want to do all minor versions automatically and then later if I want automatically and then later if I want automatically and then later if I want to do a major upgrade I would change to do a major upgrade I would change to do a major upgrade I would change this to one so I would do this to one so I would do this to one so I would do this and then again this can can be changed again this can can be changed to policy okay so this is the command to policy okay so this is the command to create the the image this is what the policy uses to this is what the policy uses to determine where to look okay okay so let's let's apply okay okay so let's let's apply this feet add tracker so then flux is going to add the
-
tracker so then flux is going to add the tracker and BL get image repository okay that's BL get image repository okay that's going to be interesting to check going to be interesting to check going to be interesting to check so has it so has it so has it reconciled image okay so it doesn't recognize it image okay so it doesn't recognize it yet reconciling have to wait a bit can you reconciling have to wait a bit can you answer me a question of course let's see thanks for your work you inspired me see thanks for your work you inspired me to use t-o and Vim all right great to to use t-o and Vim all right great to to use t-o and Vim all right great to hear it man I hope it works well for you hear it man I hope it works well for you hear it man I hope it works well for you is there any way to use envm local conf is there any way to use envm local conf is there any way to use envm local conf when you connect via SSH to a machine as when you connect via SSH to a machine as when you connect via SSH to a machine as on vs on vs on vs code no not as far as I know that's the code no not as far as I know that's the code no not as far as I know that's the thing when you there is some there are thing when you there is some there are thing when you there is some there are things that you can do like sing from
-
things that you can do like sing from things that you can do like sing from within Vim en Vim but I wouldn't within Vim en Vim but I wouldn't within Vim en Vim but I wouldn't recommend that or yeah I I don't do that recommend that or yeah I I don't do that recommend that or yeah I I don't do that it's probably possible but the whole it's probably possible but the whole it's probably possible but the whole point of using fim is to be able to to point of using fim is to be able to to point of using fim is to be able to to be able to be able to be able to edit files on a remote system edit files on a remote system edit files on a remote system efficiently with the Vim key bindings so efficiently with the Vim key bindings so efficiently with the Vim key bindings so I have a very elaborate neovim config on I have a very elaborate neovim config on I have a very elaborate neovim config on my local system but I always make sure my local system but I always make sure my local system but I always make sure that I have the skills to edit files that I have the skills to edit files that I have the skills to edit files elsewhere that I just use Vim natively so that's natively so that's um that's how how I approach that so now if I do the flux get flux get so now if I do the flux get flux get image repository a here settle cast and tracker here we'll tracker here we'll see it has now scanned it so that's see it has now scanned it so that's see it has now scanned it so that's awesome that awesome that awesome that works it found it ah great so it's it's seeing the tags it ah great so it's it's seeing the tags that it's that it's that it's here so that's working and then now the here so that's working and then now the here so that's working and then now the last step is last step is last step is [Music]
-
to flux get image policy flux get image to flux get image policy flux get image policy sell cast tracker yeah ready true latest image tag tracker yeah ready true latest image tag for GCR resolve to 0 2.1 all right for GCR resolve to 0 2.1 all right for GCR resolve to 0 2.1 all right that's cool okay that's cool okay that's cool okay so then I need so then I need so then I need [Music] [Music] [Music] to finally in the deployment file I have to add a marker to tell flux I have to add a marker to tell flux which policy to use when updating the which policy to use when updating the which policy to use when updating the container [Music] [Music] um here image um here image um here image policy flux system settle cast tracker and then I have to create an tracker and then I have to create an image update automation
-
yeah okay so this is the actual resource yeah okay so this is the actual resource that's going to run all of the policies that's going to run all of the policies that's going to run all of the policies every day uh so I just have to do this every day uh so I just have to do this every day uh so I just have to do this once to create this one and then when once to create this one and then when once to create this one and then when that's done then all of the policies are that's done then all of the policies are that's done then all of the policies are going to be scanned and then it's going going to be scanned and then it's going going to be scanned and then it's going to addit H so I could do this using PRS too H so I could do this using PRS too so but for this one I'm fine with it so but for this one I'm fine with it so but for this one I'm fine with it updating everything all the updating everything all the updating everything all the time because I I want to have less of time because I I want to have less of time because I I want to have less of these um PR merging jobs that I these um PR merging jobs that I these um PR merging jobs that I constantly have to do then BLS create image update flux system then BLS create image update flux system so every 30 minutes it will so every 30 minutes it will so every 30 minutes it will run cluster is going to be production branches
-
production branches main flock CD bot commit template bot commit template is just is just is just that that that export cluster file so I'm adding this to the file so I'm adding this to the deployment and now I'm running this deployment and now I'm running this deployment and now I'm running this command to add the yaml file looks system automation. yo and here we looks system automation. yo and here we go it created this so it tells you which the the name this so it tells you which the the name is I can have is I can have is I can have a different commit message if I want a different commit message if I want a different commit message if I want [Music] [Music] [Music] to to to but I am fine with but I am fine with but I am fine with it um doing committing it directly to main but there is also a way to do it main but there is also a way to do it with the pr workflow and now I'm wondering if that's
-
workflow and now I'm wondering if that's actually what I want to [Music] [Music] do you can use CI automation such as do you can use CI automation such as do you can use CI automation such as flux autop PR yeah okay so it's possible so I should yeah okay so it's possible so I should only use these then for the updates that only use these then for the updates that only use these then for the updates that I know that I am comfortable with doing I know that I am comfortable with doing I know that I am comfortable with doing with flocks well let's just with flocks well let's just with flocks well let's just start start start so I will so I will so I will then commit and I see that my Pomodoro Timer has run and I see that my Pomodoro Timer has run out so I'm going to take a break after out so I'm going to take a break after out so I'm going to take a break after this push when this has been this push when this has been this push when this has been reconciled so
-
one so so when that's now it should have one so so when that's now it should have been now it been now it been now it should scan like I wonder if it has scan should scan like I wonder if it has scan should scan like I wonder if it has scan if it triggers a scan if it triggers a scan if it triggers a scan already but I should now see a commit to already but I should now see a commit to already but I should now see a commit to the main branch from the main branch from the main branch from flux or at least fairly soon flux reconcile customization with Source flux reconcile customization with Source in a couple of seconds flux will push a in a couple of seconds flux will push a in a couple of seconds flux will push a commit to your repository with the commit to your repository with the commit to your repository with the latest image tag you can check this status of the tag you can check this status of the image automation objects with this okay image automation objects with this okay image automation objects with this okay let's check that
-
message no updates made so it says message no updates made so it says latest image tag resolve to latest image tag resolve to latest image tag resolve to 021 that is not the one that's in the time no updates made time no updates made that's strange I'm expecting it to do an that's strange I'm expecting it to do an that's strange I'm expecting it to do an update to the repo something settle cast and something settle cast and tracker okay so it's on system here is the Clusters production
-
system here is the Clusters production registry this and they both need to live in the this and they both need to live in the zela in the flux system name no so maybe
-
no so maybe my image policy is wrong it yeah between one and two maybe that's it yeah between one and two maybe that's what I need to do do [Music] [Music] [Music] so larger than or equal to so larger than or equal to so larger than or equal to zero but smaller than one yeah it's it still has this the version
-
yeah it's it still has this the version in work uh work uh Fox reconcile it scanned it scanned successfully latest image resolve to successfully latest image resolve to successfully latest image resolve to 021 and then it says no updates made so 021 and then it says no updates made so 021 and then it says no updates made so that that's very strange so there's still strange so there's still something not configured correctly here
-
logs yeah so it's finding the right tag logs yeah so it's finding the right tag it's just not updating it to flu with yeah so renovate is with yeah so renovate is already seeing it but now I just need flux to actually it but now I just need flux to actually committed but is it bad to have abnormal key but is it bad to have abnormal key bindes and preferences in devops each bindes and preferences in devops each bindes and preferences in devops each time you go into a VM container doesn't time you go into a VM container doesn't time you go into a VM container doesn't have all the preference yep well you're have all the preference yep well you're have all the preference yep well you're answering your your own question here uh answering your your own question here uh answering your your own question here uh I highly Advocate using the standard key I highly Advocate using the standard key I highly Advocate using the standard key bindings for everything so many people bindings for everything so many people bindings for everything so many people in t-o they will have like Vim key in t-o they will have like Vim key in t-o they will have like Vim key bindings for creating and navigating bindings for creating and navigating bindings for creating and navigating between Windows don't do that seriously between Windows don't do that seriously between Windows don't do that seriously take my word for it just do control b o take my word for it just do control b o take my word for it just do control b o controlb o to switch um because when controlb o to switch um because when controlb o to switch um because when like you say when you're on a VM and you like you say when you're on a VM and you like you say when you're on a VM and you don't have your key bindings you're don't have your key bindings you're don't have your key bindings you're useless you might as well not have useless you might as well not have useless you might as well not have learned t-mog or Vim so yeah that's
-
learned t-mog or Vim so yeah that's learned t-mog or Vim so yeah that's that's um my take on it use the regular that's um my take on it use the regular that's um my take on it use the regular standard key bindings as much as standard key bindings as much as standard key bindings as much as possible if you want to really use these possible if you want to really use these possible if you want to really use these tools um to their full tools um to their full tools um to their full power power power so I'm 20 minutes over time on my break so I'm 20 minutes over time on my break so I'm 20 minutes over time on my break so I'm just going to have a break and so I'm just going to have a break and so I'm just going to have a break and have some food I'll be back in 15 have some food I'll be back in 15 have some food I'll be back in 15 minutes or so start minutes or so start minutes or so start break here and um going to take some break here and um going to take some break here and um going to take some food and I'll be right back see you see food and I'll be right back see you see food and I'll be right back see you see you in a back break went a little bit longer but
-
back break went a little bit longer but I also was going on for a bit longer but I also was going on for a bit longer but I also was going on for a bit longer but now my mind is now my mind is now my mind is fresh and I want to figure out why the fresh and I want to figure out why the fresh and I want to figure out why the hell flux is not updating my hell flux is not updating my hell flux is not updating my image in my repository I'm wondering if it has to repository I'm wondering if it has to do that it might not have rights to do that it might not have rights to do that it might not have rights to commit or something or like I'm I'm commit or something or like I'm I'm commit or something or like I'm I'm doing something wrong here get Reaper get Reaper ref flux system I've I've done all of that right system I've I've done all of that right it seems
-
this is the image update automation I this is the image update automation I also did this this BLS updates automation PA is cluster's production is automation PA is cluster's production is that right though yeah that's the problem here I'm telling yeah that's the problem here I'm telling it to look at this path clusters my it to look at this path clusters my it to look at this path clusters my cluster but the path is cluster but the path is cluster but the path is actually apps and controllers and the path that I'm updating is not the path that I'm updating is not clusters
-
clusters clusters production the path I'm updating is production the path I'm updating is production the path I'm updating is actually apps maybe it should just be maybe it should just be the the whole route because it should the the whole route because it should the the whole route because it should scan it can update the whole the whole scan it can update the whole the whole scan it can update the whole the whole path of everything so image update path of everything so image update path of everything so image update automation is there more is there more documentation on that more is there more documentation on that flux image update automation let's see flux image update automation let's see flux image update automation let's see update defines an automation process update defines an automation process update defines an automation process that will upgrade update a git that will upgrade update a git that will upgrade update a git repository based on image policy objects repository based on image policy objects repository based on image policy objects in the same name space in the same name space aha so it also needs to be in the space aha so it also needs to be in the same Nam same Nam same Nam space updates are governed by marking space updates are governed by marking space updates are governed by marking fields to be updated in each yaml file
-
an image update automation can refer to an image update automation can refer to a git repository from a different name space mhm let's check out the path space mhm let's check out the path PA to directory containing the Manifest PA to directory containing the Manifest PA to directory containing the Manifest to be to be to be updated defaults To None which updated defaults To None which updated defaults To None which translates to the root path of the git translates to the root path of the git translates to the root path of the git repository all right repository all right repository all right so we can delete that delete the path so we can delete that delete the path so we can delete that delete the path because we wanted to update the wondering since the image wondering since the image update what did I call update what did I call update what did I call it [Music]
-
[Music] um image policy lives in um image policy lives in um image policy lives in the flock system name space the repository lives in the flux space the repository lives in the flux system name space okay well let's let's just try it space okay well let's let's just try it like this let's just path so then the path is going to path so then the path is going to default to default to default to the the root of the repository so flux reconcile customization flux reconcile customization flux system and then what was it it okay so we see flux CD
-
it okay so we see flux CD bot created I removed all of the wi space from my I removed all of the wi space from my deployment deployment deployment file yep all right so it fixed it now so file yep all right so it fixed it now so file yep all right so it fixed it now so instead of using renovate now I'm using instead of using renovate now I'm using instead of using renovate now I'm using flock CD to make commits directly to the flock CD to make commits directly to the flock CD to make commits directly to the repo instead of renovate that's actually repo instead of renovate that's actually repo instead of renovate that's actually really works nice I'm happy about works nice I'm happy about that so then comes the question flux that so then comes the question flux that so then comes the question flux versus renovate like I wanted to try versus renovate like I wanted to try versus renovate like I wanted to try this to use this to use this to use flux natively so I'm doing the same flux natively so I'm doing the same flux natively so I'm doing the same thing I'm scanning my repo checking for thing I'm scanning my repo checking for thing I'm scanning my repo checking for the latest images that are available and the latest images that are available and the latest images that are available and then then then automatically uh adding those like here's the the same thing those like here's the the same thing that this is through that this is through that this is through renovate and now it's just um proposing renovate and now it's just um proposing renovate and now it's just um proposing a pull request to update it but since a pull request to update it but since a pull request to update it but since it's already updated it I don't want to it's already updated it I don't want to it's already updated it I don't want to do this one anymore so I can just retry do this one anymore so I can just retry do this one anymore so I can just retry this PR and then it this PR and then it this PR and then it will be removed and okay so now I've
-
removed and okay so now I've successfully configured flux to to successfully configured flux to to successfully configured flux to to update one of my applications so it is update one of my applications so it is update one of my applications so it is going to lead to a lot more yaml files going to lead to a lot more yaml files going to lead to a lot more yaml files in my home lab in my home lab in my home lab repo here is the policy and the registry repo here is the policy and the registry repo here is the policy and the registry for these so that's going to be a lot for these so that's going to be a lot for these so that's going to be a lot more yaml files but it I do like that that I can files but it I do like that that I can actually granularly configure which actually granularly configure which actually granularly configure which applications I'm going to be autoc applications I'm going to be autoc applications I'm going to be autoc committing and there is a way of doing committing and there is a way of doing committing and there is a way of doing this with a PR2 but it was saying here PR2 but it was saying here note that this guide needs review in note that this guide needs review in note that this guide needs review in consideration of flux V2 and likely consideration of flux V2 and likely consideration of flux V2 and likely needs to be branch branch [Music] and then there will be a okay when a and then there will be a okay when a staging branch is created then it will staging branch is created then it will staging branch is created then it will create a pool request so I can also do create a pool request so I can also do create a pool request so I can also do pool requests with this the create pull request action this the create pull request action might be a viable okay
-
yeah so I can do it with PRS but for now yeah so I can do it with PRS but for now I'm happy with flux just uh committing automatically like this so I've done one automatically like this so I've done one application then I'm going to be application then I'm going to be application then I'm going to be thinking of other ones that I want to do thinking of other ones that I want to do thinking of other ones that I want to do as in as I go along and as renovate is as in as I go along and as renovate is as in as I go along and as renovate is going to suggest more updates so I'm going to suggest more updates so I'm going to suggest more updates so I'm happy I got it to work with the first happy I got it to work with the first happy I got it to work with the first one I know how to do it now and I'm one I know how to do it now and I'm one I know how to do it now and I'm piece by piece every application I'm piece by piece every application I'm piece by piece every application I'm going to probably migrate to to flux going to probably migrate to to flux going to probably migrate to to flux instead of renovate for auto instead of renovate for auto instead of renovate for auto updates but I've made a lot of progress updates but I've made a lot of progress updates but I've made a lot of progress again again again today now next what I want to do is my today now next what I want to do is my today now next what I want to do is my home home home assistant um I completely redid home assistant um I completely redid home assistant um I completely redid home assistant and there are a few things assistant and there are a few things assistant and there are a few things that that that are are are removed that were there before and one removed that were there before and one removed that were there before and one of them is the temperature sens sensor of them is the temperature sens sensor of them is the temperature sens sensor in my in my in my bedroom that has um that I need to bedroom that has um that I need to bedroom that has um that I need to reconfigure and that was a bit of a reconfigure and that was a bit of a reconfigure and that was a bit of a hassle I needed to do some custom python hassle I needed to do some custom python hassle I needed to do some custom python scripting and such like so I hope I scripting and such like so I hope I scripting and such like so I hope I saved it Shelly [Music] [Music] room here yeah so here's the log that I kept here yeah so here's the log that I kept and this is why I always take notes on and this is why I always take notes on and this is why I always take notes on everything because I knew I needed to do
-
everything because I knew I needed to do everything because I knew I needed to do it again someday when things went wrong it again someday when things went wrong it again someday when things went wrong so now I can just look at the notes that so now I can just look at the notes that so now I can just look at the notes that I did and now it's going to be much I did and now it's going to be much I did and now it's going to be much easier to set it up so enable mqtt and point to up so enable mqtt and point to sonology oh sonology oh sonology oh yeah yeah that's yeah yeah that's yeah yeah that's right right right so there was a video I and temperature sensor inside home and temperature sensor inside home assistant we'll start in 10 seconds sh provides you with data about seconds sh provides you with data about temperature and hum three months and as temperature and hum three months and as temperature and hum three months and as always you have at least deves so what entities will you least deves so what entities will you get from this sensor if you edit via the get from this sensor if you edit via the get from this sensor if you edit via the mqtt you will get of mqtt you will get of mqtt you will get of course the from this there is a you have course the from this there is a you have course the from this there is a you have to find it on the Wii network if device to find it on the Wii network if device to find it on the Wii network if device is sleeping you have to in order for you is sleeping you have to in order for you is sleeping you have to in order for you to add this device you have to find it to add this device you have to find it to add this device you have to find it on the Wii network if device is sleeping on the Wii network if device is sleeping on the Wii network if device is sleeping you have to press button once again to you have to press button once again to you have to press button once again to wake it up and you should see Shelly HD
-
wake it up and you should see Shelly HD wake it up and you should see Shelly HD access point connect to it after it is connected open the web it after it is connected open the web browser and type in browser and type in browser and type in 192.168 192.168 192.168 33.1 which is default IP address when 33.1 which is default IP address when 33.1 which is default IP address when Shelly device is working in access point Shelly device is working in access point Shelly device is working in access point mode in sensor settings you can turn mode in sensor settings you can turn mode in sensor settings you can turn external power here temperature units external power here temperature units external power here temperature units can be of course changed from the metric can be of course changed from the metric can be of course changed from the metric to to to Fahrenheit temperature threshold is used Fahrenheit temperature threshold is used Fahrenheit temperature threshold is used to wake the device up if the temperature to wake the device up if the temperature to wake the device up if the temperature changes by some threshold the minimum changes by some threshold the minimum changes by some threshold the minimum value for the change is one and the same value for the change is one and the same value for the change is one and the same thing exists for the htttp URL calls if thing exists for the htttp URL calls if thing exists for the htttp URL calls if temperature changes or goes above or temperature changes or goes above or temperature changes or goes above or under some value and also if humidity under some value and also if humidity under some value and also if humidity goes below or above certain value update goes below or above certain value update goes below or above certain value update is you I think I've already done that I is you I think I've already done that I is you I think I've already done that I I already have the mqtt and all of that I already have the mqtt and all of that I already have the mqtt and all of that and I it should already be on my netork and I it should already be on my netork and I it should already be on my netork using it allows you to using it allows you to using it allows you to specify is enabl one of the precau home specify is enabl one of the precau home specify is enabl one of the precau home assistant cast will change it to unicast assistant cast will change it to unicast assistant cast will change it to unicast when you change the co iot make sure when you change the co iot make sure when you change the co iot make sure that you reboot your device next thing that you reboot your device next thing that you reboot your device next thing for me is to enable mqtt because I use for me is to enable mqtt because I use for me is to enable mqtt because I use mqtt if you are using username and mqtt if you are using username and mqtt if you are using username and password type here your mqt you can password type here your mqt you can password type here your mqt you can you're having issues with the Sens if you're having issues with the Sens if you're having issues with the Sens if everything is okay you will now see everything is okay you will now see everything is okay you will now see either discovered here for the new shell
-
either discovered here for the new shell either discovered here for the new shell device which you can just then configure device which you can just then configure device which you can just then configure or in my case since I already did have or in my case since I already did have or in my case since I already did have this device previously I did remove it this device previously I did remove it this device previously I did remove it but it didn't show show up as a new but it didn't show show up as a new but it didn't show show up as a new device it was just added to the list of device it was just added to the list of device it was just added to the list of other Shelly other Shelly other Shelly devices here I have okay so I need devices here I have okay so I need devices here I have okay so I need to probably add mqtt to my home to probably add mqtt to my home to probably add mqtt to my home assistant container container container mosquito
-
one so that will one so that will be this IP address of my sonology Nas for this and then what the hell did I for this and then what the hell did I configure it to be as a configure it to be as a configure it to be as a password password password [Music] [Music] [Music] settings Let's uh go into the work create launch with work create launch with command sure so there is the sure so there is the sh and volume CD volume CD mosquito CD config ah so there's the pass.
-
config ah so there's the pass. txt see okay so I have okay so I have a password file but I don't remember a password file but I don't remember a password file but I don't remember what the password is did I change did I what the password is did I change did I what the password is did I change did I have it in have it in have it in my key pass damn it that was dumb damn it that was dumb so I have the file but how can I decode it decode mqt
-
file but how can I decode it decode mqt pass of txt I don't remember what my password was I don't remember what my password was for my mqtt container darn it that's darn it that's annoying mqtt
-
mqtt yeah was key to password you password yeah was key to password you password yeah was key to password you password file but how can I decode it because I don't but how can I decode it because I don't want to change the [Music] [Music] um e
-
oh that's really annoying I usually am oh that's really annoying I usually am really careful with saving really careful with saving really careful with saving passwords I don't want to completely passwords I don't want to completely passwords I don't want to completely reconfigure my reconfigure my reconfigure my mqtt but I might have mqtt but I might have mqtt but I might have to utility create a new password file utility create a new password file delete the delete the delete the username yeah okay okay so I'll have to reconfigure
-
okay okay so I'll have to reconfigure the password in my Shelly as well the password in my Shelly as well the password in my Shelly as well so in the video it was showing the IP I so in the video it was showing the IP I so in the video it was showing the IP I needed to yeah I will probably have to switch to a yeah I will probably have to switch to a different network in order to do that hello there my friend from Ukraine that hello there my friend from Ukraine how are you doing up okay so this this is my Shelly device
-
up okay so this this is my Shelly device that is on now now [Music] [Music] [Music] and settings mqtt oh it was almost there but it does mqtt oh it was almost there but it does seem like it's in my password so that's seem like it's in my password so that's seem like it's in my password so that's going to be maybe I four
-
four no I'm getting see see submit yes ah great I'm so happy found the following devices great so found the following devices great so this is going to go to the bedroom area finish finish boom nice it's already showing the temperature here already showing the temperature here that's that's that's awesome okay that was great the the [Music] bedroom anyway now I have to configure bedroom anyway now I have to configure the python script so it it automatically
-
updates um but before I do that I'm updates um but before I do that I'm going to just going to just going to just see okay so just updating my notes okay so just updating my notes here and adding some credentials to that here and adding some credentials to that here and adding some credentials to that so now for the next time I have to so now for the next time I have to so now for the next time I have to reconfigure it then I have to don't reconfigure it then I have to don't reconfigure it then I have to don't don't have to do it don't have to do it don't have to do it anymore flocks why not Argo well I I anymore flocks why not Argo well I I anymore flocks why not Argo well I I someone asked this earlier and um the
-
someone asked this earlier and um the someone asked this earlier and um the thing is that I had already had thing is that I had already had thing is that I had already had experience with Argo from work experience with Argo from work experience with Argo from work and I liked Argo but um in Azure and I liked Argo but um in Azure and I liked Argo but um in Azure kubernetes service the standard one is kubernetes service the standard one is kubernetes service the standard one is flux so I wanted to get more experience flux so I wanted to get more experience flux so I wanted to get more experience with that and I must say I like flux with that and I must say I like flux with that and I must say I like flux better than Argo Argo is a beautiful UI better than Argo Argo is a beautiful UI better than Argo Argo is a beautiful UI but it makes you more dependent on the but it makes you more dependent on the but it makes you more dependent on the UI and flux really um forces you to use UI and flux really um forces you to use UI and flux really um forces you to use the the code more because it doesn't the the code more because it doesn't the the code more because it doesn't really have a UI really have a UI really have a UI and yeah it is it is really a pleasure and yeah it is it is really a pleasure and yeah it is it is really a pleasure to work with I I like the custom to work with I I like the custom to work with I I like the custom resource definitions that they have I resource definitions that they have I resource definitions that they have I also like that the helm repositories are also like that the helm repositories are also like that the helm repositories are available in your available in your available in your cluster so flux if I in my home lab I have nothing flux if I in my home lab I have nothing installed manually with installed manually with installed manually with Helm but if I do Helm LS minus a Helm but if I do Helm LS minus a Helm but if I do Helm LS minus a I see all of the charts that are being I see all of the charts that are being I see all of the charts that are being managed in my managed in my managed in my cluster by flux I didn't install these cluster by flux I didn't install these cluster by flux I didn't install these but flux did and I can actually see the but flux did and I can actually see the but flux did and I can actually see the versions I can see logs from it and I versions I can see logs from it and I versions I can see logs from it and I really like that I really like it it really like that I really like it it really like that I really like it it that it does it that way because Argo that it does it that way because Argo that it does it that way because Argo doesn't AR with Argo you can't see uh doesn't AR with Argo you can't see uh doesn't AR with Argo you can't see uh these um these
-
see okay see okay and now we are going to finish this and now we are going to finish this and now we are going to finish this setup temperature changes by some setup temperature changes by some setup temperature changes by some thresholds the or in my case since I thresholds the or in my case since I thresholds the or in my case since I already did have these that are pulled already did have these that are pulled already did have these that are pulled if using home assistant integration so if using home assistant integration so if using home assistant integration so we have temperature and humidity this we have temperature and humidity this we have temperature and humidity this part was easy the next part for mqtt has part was easy the next part for mqtt has part was easy the next part for mqtt has a little bit more more steps first make a little bit more more steps first make a little bit more more steps first make sure that you have python script enabled sure that you have python script enabled sure that you have python script enabled in home assistant how to do that let's in home assistant how to do that let's in home assistant how to do that let's go to visual studio code for start we go to visual studio code for start we go to visual studio code for start we will search our configuration to see if will search our configuration to see if will search our configuration to see if we already have Python scripts enabled we already have Python scripts enabled we already have Python scripts enabled or or or not not not python I don't looks like I don't have python I don't looks like I don't have python I don't looks like I don't have it so at the end of the scripts singular not plural so this is scripts singular not plural so this is needed to enable Python scripts inside needed to enable Python scripts inside needed to enable Python scripts inside home assistant but that's not all in the root folder where our all in the root folder where our configuration files are we need to configuration files are we need to configuration files are we need to create additional folder and this one create additional folder and this one create additional folder and this one will be called Python scripts plural scripts okay so let's pull up the plural scripts okay so let's pull up the container K9s and let's open Home
-
K9s and let's open Home assistant assistant assistant [Music] [Music] [Music] shell and is that in the root and is that in the root folder or in slash config let's see where is config let's see where is he yeah it's in the config for directory so we're going to make a directory so we're going to make a directory called called called Python scripts okay so by adding python script scripts okay so by adding python script we are enabling python integration we are enabling python integration we are enabling python integration python script integration inside home python script integration inside home python script integration inside home assistant and default location where assistant and default location where assistant and default location where home assistant will be looking for those home assistant will be looking for those home assistant will be looking for those scripts is inside folder configuration scripts is inside folder configuration scripts is inside folder configuration folder and one folder down called Python folder and one folder down called Python folder and one folder down called Python scripts inside this folder we now have scripts inside this folder we now have scripts inside this folder we now have to copy one file and now let's go to to copy one file and now let's go to to copy one file and now let's go to GitHub repository from mats where we can GitHub repository from mats where we can GitHub repository from mats where we can find the Shell's autodiscovery python find the Shell's autodiscovery python find the Shell's autodiscovery python script the link to this GitHub script the link to this GitHub script the link to this GitHub repository as always repository as always repository as always will so that is this one
-
later will be in the comment section later will be in the comment section below please take your time and read the below please take your time and read the below please take your time and read the documentation it's not very long and it documentation it's not very long and it documentation it's not very long and it can help you in the future but long can help you in the future but long can help you in the future but long story short this script adds mqtt story short this script adds mqtt story short this script adds mqtt Discovery support for devices inside Discovery support for devices inside Discovery support for devices inside home home home assistant and as it says the assistant and as it says the assistant and as it says the prerequisite is to enable python script prerequisite is to enable python script prerequisite is to enable python script in the configuration yl file and also to in the configuration yl file and also to in the configuration yl file and also to create the Python scripts folder where create the Python scripts folder where create the Python scripts folder where the scripts themselves will be the scripts themselves will be the scripts themselves will be located so what we need in the Python located so what we need in the Python located so what we need in the Python scripts folder we have one script that scripts folder we have one script that scripts folder we have one script that we need oh yeah that's the one okay so we need oh yeah that's the one okay so we need oh yeah that's the one okay so Python Python Python scripts Discovery P then let's open that scripts Discovery P then let's open that scripts Discovery P then let's open that Raw that and then that and then VI Python VI Python VI Python scripts scripts scripts shell shell shell please please please [Music] right we need to
-
right we need to download then go back Shell's discovery copy copy it a this okay press on check it a this okay press on check it a this okay press on check restart paste the contents okay and then it's just python contents okay and then it's just python script in the configuration file uh file uh python script dopy we have new file save just to make dopy we have new file save just to make sure that everything is saved and that sure that everything is saved and that sure that everything is saved and that should be it at this point we can should be it at this point we can should be it at this point we can restart home assistant and by restarting restart home assistant and by restarting restart home assistant and by restarting home assistant we will a activate Python home assistant we will a activate Python home assistant we will a activate Python scripts and B home assistant will scripts and B home assistant will scripts and B home assistant will already know that there is a Shell's already know that there is a Shell's already know that there is a Shell's Discovery script inside Python scripts Discovery script inside Python scripts Discovery script inside Python scripts folder so let's go to folder so let's go to folder so let's go to configuration server control check configuration server control check configuration server control check configuration configuration configuration okay and if everything's okay press on okay and if everything's okay press on okay and if everything's okay press on restart I really do hope that you like restart I really do hope that you like restart I really do hope that you like this video so far let's see this video so far let's see this video so far let's see [Music] [Music] [Music] so settings settings developer check developer check developer check configuration and restart
-
you didn't say anything about phone uh I you didn't say anything about phone uh I use use use iPhone and no terminal iPhone and no terminal iPhone and no terminal no and what integration for monitoring no and what integration for monitoring no and what integration for monitoring alerts um actually I that's one job that alerts um actually I that's one job that alerts um actually I that's one job that I still want to do in my home lab uh I'm I still want to do in my home lab uh I'm I still want to do in my home lab uh I'm planning to use grafana and then uh planning to use grafana and then uh planning to use grafana and then uh telegram for that on my iPhone telegram for that on my iPhone telegram for that on my iPhone for work I don't have any for work I don't have any for work I don't have any alerts and oh yeah you're right the the alerts and oh yeah you're right the the alerts and oh yeah you're right the the beginner boost does start today I didn't beginner boost does start today I didn't beginner boost does start today I didn't realize it it was May the 4th today um realize it it was May the 4th today um realize it it was May the 4th today um when is that when does it start twitch twitch uh twitch let's twitch let's see rwx Rob see rwx Rob see rwx Rob does he have it on the schedule do want does he have it on the schedule do want does he have it on the schedule do want some recording Stu catching that it looks like the the Boost has that it looks like the the Boost has been 11 hours ago um no this is not the Boost because he's
-
um no this is not the Boost because he's playing playing playing guitar because world I've talked about guitar because world I've talked about guitar because world I've talked about this before Terminator 2 came out and this before Terminator 2 came out and this before Terminator 2 came out and that was the first time there was a CGI that was the first time there was a CGI that was the first time there was a CGI R okay it's 8m p.m in KF time R okay it's 8m p.m in KF time R okay it's 8m p.m in KF time okay yeah I'm always somehow I never okay yeah I'm always somehow I never okay yeah I'm always somehow I never understand C annihilated in an a bomb understand C annihilated in an a bomb understand C annihilated in an a bomb attack schedule like how I read this attack schedule like how I read this attack schedule like how I read this is is is today GMT plus two I think that's my today GMT plus two I think that's my today GMT plus two I think that's my time and then 2 time and then 2 time and then 2 [Music] [Music] [Music] p.m yeah I don't see anything for p.m yeah I don't see anything for p.m yeah I don't see anything for Saturday here on this Cal calendar but Saturday here on this Cal calendar but Saturday here on this Cal calendar but I'm I'm really bad at reading these I'm I'm really bad at reading these I'm I'm really bad at reading these calendars so I I have no idea I probably won't be able to join idea I probably won't be able to join anyway but we'll uh we'll anyway but we'll uh we'll anyway but we'll uh we'll see but let's see how home assistant is see but let's see how home assistant is see but let's see how home assistant is doing now okay it should be now okay it should be it and it and it and ah it has updated three minutes ago so ah it has updated three minutes ago so ah it has updated three minutes ago so yes I think I have actually managed to yes I think I have actually managed to yes I think I have actually managed to fix my my home assistance uh integration so my my home assistance uh integration so as you see it is as you see it is as you see it is 24° here in my in my um office here it's 24° here in my in my um office here it's 24° here in my in my um office here it's a lot warmer than I would like it to be
-
a lot warmer than I would like it to be a lot warmer than I would like it to be but yes now I'm getting closer to but yes now I'm getting closer to but yes now I'm getting closer to getting finished with my rebuild of home getting finished with my rebuild of home getting finished with my rebuild of home assistance so I was I'm really happy assistance so I was I'm really happy assistance so I was I'm really happy that worked out now I need to find a way to actually out now I need to find a way to actually properly back up my home assistant stuff properly back up my home assistant stuff properly back up my home assistant stuff because I don't want to do this again again so I could do something very hacky and so I could do something very hacky and so I could do something very hacky and do a cube CTL command from a CR do a cube CTL command from a CR do a cube CTL command from a CR job I could run a job on my cluster it itself and then write it to a to Azure itself and then write it to a to Azure that would be interesting too to an that would be interesting too to an that would be interesting too to an Azure storage account so I I basically want to back up account so I I basically want to back up this entire config mhm let's see I had something like this mhm let's see I had something like this for
-
there well I had a homark command there well I had a homark command somewhere yeah this is for copying passwords into yeah this is for copying passwords into so into it but I thought I had this file to copy but I thought I had this file to copy Homer stuff but now I forget where I have stuff but now I forget where I have it oh wait yes here we here we go oh here is also oh here was also the oh here is also oh here was also the password for my password for my password for my mosquito okay
-
well okay so if I want to pull a well okay so if I want to pull a directory from a container how would I directory from a container how would I directory from a container how would I do that you want to hear my voice a little that you want to hear my voice a little louder is it possible well the thing is louder is it possible well the thing is louder is it possible well the thing is with this microphone if I have the with this microphone if I have the with this microphone if I have the volume too loud then it starts getting a volume too loud then it starts getting a volume too loud then it starts getting a lot of gain and a lot of wide noise and lot of gain and a lot of wide noise and lot of gain and a lot of wide noise and that's also something I don't want but that's also something I don't want but that's also something I don't want but are you saying that the voice is not are you saying that the voice is not are you saying that the voice is not loud enough like this when I talk like this how is it for you other viewers is this how is it for you other viewers is my volume too low space I did write something the other space I did write something the other day that would have well let's just ask Chad GPT let's have well let's just ask Chad GPT let's see how far we gone with that I want to write a bash script to run I want to write a bash script to run from a crun
-
job to copy a directory from job to copy a directory from a running kubernetes pod the Pod name pod the Pod name is but is but is but the the the the the the U ID will change same it should copy the same it should copy the config config config directory from my from the container to directory from my from the container to directory from my from the container to a local directory on my laptop see CD see CD utils then make their home don't need
-
don't need that let's that let's that let's [Music] [Music] [Music] do do do temp ha for now and LS LS temp okay that temp okay that temp okay that works let's see then unnecessary okay let's just try it out unnecessary okay let's just try it out back C
-
C okay okay okay [Music] so okay so I did it now I have here's so okay so I did it now I have here's the script the script the script and now I wonder if and now I wonder if and now I wonder if I uh run it as a Cron job is it able to then load it as a Cron job is it able to then load the cube CTL the cube CTL the cube CTL file like can Cube CTL file like can Cube CTL file like can Cube CTL run with the cube config file I might run with the cube config file I might run with the cube config file I might have to point it to the cube config file have to point it to the cube config file have to point it to the cube config file but let's but let's but let's see um how is it bash. minus C to run the um how is it bash. minus C to run the script script script mimicking from cronjob is it bash minus c c yeah so okay so if I do Bash so okay so if I do Bash see
-
backup oh uh there's a different okay backup oh uh there's a different okay Dash see backup backup okay yes so it works um now I need to determine where I want um now I need to determine where I want to have that backup so here's my home lab then I so here's my home lab then I can create a directory home assistant so this will be assistant so this will be the home assistant directory
-
backup here we go here's my home backup here we go here's my home assistant backup okay so now I want to now I'm backup okay so now I want to now I'm just doing a dumb CP just doing a dumb CP just doing a dumb CP command command command um now you oh no I can't now this is fine this is fine don't have now this is fine this is fine don't have to over engineer it so this backup to over engineer it so this backup to over engineer it so this backup script I will commit that will commit that [Music] [Music] [Music] to but then Chrome to but then Chrome to but then Chrome tab e so let's see every day at so let's see every day at the 8th so every day at 900 so every day at 900 a.m. let's just check if this is correct oh yeah here it says at 9:00
-
correct oh yeah here it says at 9:00 a.m. so it's already correct yeah so it this should run every day at yeah so it this should run every day at 9:00 a.m. it's going to EXA into my home 9:00 a.m. it's going to EXA into my home 9:00 a.m. it's going to EXA into my home assistant pod and make a backup of it it so now I don't have to think about that so now I don't have to think about that so now I don't have to think about that anymore it's a bit of an ugly solution anymore it's a bit of an ugly solution anymore it's a bit of an ugly solution but at least it's but at least it's but at least it's uh I don't have that problem anymore uh I don't have that problem anymore uh I don't have that problem anymore that I had the other day where I had to that I had the other day where I had to that I had the other day where I had to do re completely redo my entire home do re completely redo my entire home do re completely redo my entire home assistance and that was no fun so what more do I want to add to fun so what more do I want to add to home assistant for now this is basically home assistant for now this is basically home assistant for now this is basically what I want to have here I do have my what I want to have here I do have my what I want to have here I do have my energy um let's see how easy is that it's the um let's see how easy is that it's the home home home wizard home wizard energy what is the IP of that that's a energy what is the IP of that that's a good annoying yeah it's better to use system
-
annoying yeah it's better to use system D timers that's the the new Option but I D timers that's the the new Option but I D timers that's the the new Option but I I've I'm so used to the Legacy cron that I've I'm so used to the Legacy cron that I've I'm so used to the Legacy cron that I just do do I just do do I just do do that and yeah it's not very nice but it that and yeah it's not very nice but it that and yeah it's not very nice but it is a lot easier to work with I think is a lot easier to work with I think is a lot easier to work with I think it's I like that I can just do Crown tab it's I like that I can just do Crown tab it's I like that I can just do Crown tab d e and then it will um just show d e and then it will um just show d e and then it will um just show up um where are my client your client devices here's my energy sucket here's devices here's my energy sucket here's my P1 meter my P1 meter my P1 meter so this is the IP address of my P1 my my uh well let's keep it in the pantry all right so here's my energy pantry all right so here's my energy import import import already then I have more in I have more already then I have more in I have more already then I have more in I have more home I have energy sockets also that I home I have energy sockets also that I home I have energy sockets also that I can have can have can have here I here I here I had [Music]
-
[Music] let's see the other one is there are a few see the other one is there are a few more sockets here is one socket remember which one this remember which one this is 135 let's see can I easily figure out 135 let's see can I easily figure out which one is which yeah okay so in the in the app I can now yeah okay so in the in the app I can now Flash the light so I I have to figure Flash the light so I I have to figure Flash the light so I I have to figure out which one is which one moment
-
so this is the one that's measuring so this is the one that's measuring my production energy rename rename production so this shows production so this shows production so this shows my the consumption of my the consumption of my the consumption of my uh production my uh production my uh production cluster and cluster and cluster and [Music] [Music] [Music] then the other socket then the other socket then the other socket [Music] is this
-
is this one which is in my bedroom currently one which is in my bedroom currently one which is in my bedroom currently which which which is monitoring the air conditioner that I is monitoring the air conditioner that I is monitoring the air conditioner that I have there which I'm not really have there which I'm not really have there which I'm not really using rename a rename a Airco all right devices uh settings devices uh settings devices e
-
my oh it's annoying that it doesn't have my oh it's annoying that it doesn't have the device name here I had it more clean the device name here I had it more clean the device name here I had it more clean earlier maybe you're planning some nixos maybe you're planning some nixos fundamentals fundamentals fundamentals [Music] video yeah nixos I am interested in it video yeah nixos I am interested in it but I I don't have a very immediate plan but I I don't have a very immediate plan but I I don't have a very immediate plan to do it to do it to do it uh I have a few more more important uh I have a few more more important uh I have a few more more important courses that are coming up in the school courses that are coming up in the school courses that are coming up in the school Community uh I'm going to do some more Community uh I'm going to do some more Community uh I'm going to do some more on not taking and some certification on not taking and some certification on not taking and some certification road maps and I'm going to prioritize road maps and I'm going to prioritize road maps and I'm going to prioritize those over those over those over nyos nyos nyos um because I think if I go into Nyx OS um because I think if I go into Nyx OS um because I think if I go into Nyx OS now that's also going to be a bit of a now that's also going to be a bit of a now that's also going to be a bit of a rabbit hole and I'm not really sure how rabbit hole and I'm not really sure how rabbit hole and I'm not really sure how useful it actually is for me right now but I it is definitely something I now but I it is definitely something I want to dive into at some point it would want to dive into at some point it would want to dive into at some point it would be cool to nexify my whole whole setup no but this this is not right setup no but this this is not right though like how this thing in my bedroom though like how this thing in my bedroom though like how this thing in my bedroom is not using any power right now so this is not using any power right now so this is not using any power right now so this is not correct this is not correct at correct this is not correct at all erco
-
has so where did I set it to the has so where did I set it to the room see four room see four room see four devices ah here this is where it is yeah but why can't yeah but why can't I change the name of the device here so I named it I named the here so I named it I named the integration but not the integration but not the integration but not the device well I don't feel like tinkering with well I don't feel like tinkering with this uh right now the Shelly integration this uh right now the Shelly integration this uh right now the Shelly integration was the most important one and I've done was the most important one and I've done was the most important one and I've done it so that's good actually I'm thinking of going for good actually I'm thinking of going for a run now and then I have to I have a a run now and then I have to I have a a run now and then I have to I have a few videos to record and then later I'm few videos to record and then later I'm few videos to record and then later I'm going to I think tonight I'll do another going to I think tonight I'll do another going to I think tonight I'll do another stream there are definitely a few more stream there are definitely a few more stream there are definitely a few more things I want to do on the home things I want to do on the home things I want to do on the home lab and but I'm I'm happy I finally have lab and but I'm I'm happy I finally have lab and but I'm I'm happy I finally have my my my um bedroom temperature monitoring up and um bedroom temperature monitoring up and um bedroom temperature monitoring up and running again because now I know that I running again because now I know that I running again because now I know that I need to turn on my air conditioning in need to turn on my air conditioning in need to turn on my air conditioning in the in the
-
the in the the in the room so I'm going to end the stream for room so I'm going to end the stream for room so I'm going to end the stream for today I will be back in uh a few hours today I will be back in uh a few hours today I will be back in uh a few hours probably tinkering more with the home probably tinkering more with the home probably tinkering more with the home lab thank you so much for tuning in guys lab thank you so much for tuning in guys lab thank you so much for tuning in guys and have a wonderful and have a wonderful and have a wonderful Saturday and I'll see you Saturday and I'll see you Saturday and I'll see you soon byebye
Summary
The main theme is automating Flux upgrades in a home lab environment. Key subjects include Flux, Renovate, and GitHub Actions workflows. The practical takeaway is to configure Flux to automatically propose pull requests for its own updates, rather than relying solely on Renovate for all dependency management.