☸️ Kubernetes Homelab - Let's Deploy Homepage
Read full transcript 48 segments
-
okay looks like we're okay looks like we're live so my live so my live so my homar homar homar um homepage has been kind of um homepage has been kind of um homepage has been kind of destroyed and it wasn't optimal because destroyed and it wasn't optimal because destroyed and it wasn't optimal because I couldn't have the configuration in I couldn't have the configuration in I couldn't have the configuration in code so I'm going to change to code so I'm going to change to code so I'm going to change to [Music] [Music] [Music] homepage and one of my friends here in homepage and one of my friends here in homepage and one of my friends here in the home lab Community recently deployed the home lab Community recently deployed the home lab Community recently deployed it it it Joel he has an awesome home lab repo Joel he has an awesome home lab repo Joel he has an awesome home lab repo here here here and he did homepage so I'm just going to and he did homepage so I'm just going to and he did homepage so I'm just going to steal what he has here actually apparently homepage is a Helm actually apparently homepage is a Helm chart already chart already chart already and then you just configure it and then you just configure it and then you just configure it [Music] [Music] [Music] here in the here in the here in the values well let's see values well let's see values well let's see homepage homepage homepage [Music] homepage yeah so they have their homepage yeah so they have their official kind official kind official kind of Helm chart here so that's what just of Helm chart here so that's what just of Helm chart here so that's what just how what I'll do you put the configuration in the do you put the configuration in the values.
-
values. values. yel I would like to have it as a yel I would like to have it as a yel I would like to have it as a separate config map but oh it also has but oh it also has the Manifest here I think I kind of prefer having the I think I kind of prefer having the Manifest myself yeah so here he has here all of the yeah so here he has here all of the config is in a separate config map I config is in a separate config map I config is in a separate config map I like that better H yeah I like the separate better H yeah I like the separate manifest better so that's what I'm going manifest better so that's what I'm going manifest better so that's what I'm going to do then I'm going
-
then I'm going [Music] [Music] [Music] to oh I did some changes in my util just to oh I did some changes in my util just to oh I did some changes in my util just just push just push just push those me so in my apps directory I'm going to me so in my apps directory I'm going to create a new create a new create a new base and I'm going to call it homepage and in there I'm going to set homepage and in there I'm going to set up a new okay so this is going to be the service okay so this is going to be the service account account going to remove their name space account going to remove their name space everywhere and just going to add that in everywhere and just going to add that in everywhere and just going to add that in the customization Secrets yes I passed the ckss thanks for
-
Secrets yes I passed the ckss thanks for asking Brandon nice to see asking Brandon nice to see asking Brandon nice to see you I passed it in on my first try super you I passed it in on my first try super you I passed it in on my first try super happy about be secret. be secret. yaml then there yaml then there yaml then there is service account. yo and going to listen to and going to listen to some and I can't share the music because some and I can't share the music because some and I can't share the music because then it will get demonetized and I get then it will get demonetized and I get then it will get demonetized and I get all these copyright strikes all these copyright strikes all these copyright strikes unfortunately but this this this uh new unfortunately but this this this uh new unfortunately but this this this uh new album called battle ballots is just album called battle ballots is just album called battle ballots is just amazing so got the service the secret let's so got the service the secret let's check out the config be that's actually going to be our way
-
be that's actually going to be our way of configuring super Flex didn't didn't configuring super Flex didn't didn't really study for the cka at really study for the cka at really study for the cka at all nice all nice all nice Flex cool man it's really cool but had Flex cool man it's really cool but had Flex cool man it's really cool but had you been working with kubernetes for a you been working with kubernetes for a you been working with kubernetes for a while when you did that cks did require a bunch of study for me cks did require a bunch of study for me though it is it's a pretty damn tough exam exam [Music] [Music] [Music] so settings. yaml is empty in so settings. yaml is empty in so settings. yaml is empty in the oh yeah so these are just empty objects and oh yeah so here you just objects and oh yeah so here you just config config config the the stuff that you want here the the stuff that you want here the the stuff that you want here [Music] [Music] [Music] so well I'm going wow something is hogging up a lot of CPU wow something is hogging up a lot of CPU actually I need actually I need actually I need to close down a few things
-
while oh it must be because I was while oh it must be because I was running a bunch of big death containers containers wow going to shut down rencher desktop H you worked on on pram desktop H you worked on on pram kubernetes yeah well nice though like it kubernetes yeah well nice though like it kubernetes yeah well nice though like it shows that if you're a senior operations shows that if you're a senior operations shows that if you're a senior operations devops person working with kubernetes devops person working with kubernetes devops person working with kubernetes already these exams are not that hard already these exams are not that hard already these exams are not that hard but when you come into it without but when you come into it without but when you come into it without previous experience or just general previous experience or just general previous experience or just general Linux experience these exams are pretty Linux experience these exams are pretty Linux experience these exams are pretty damn damn damn tough what keyboard do I use I use a tough what keyboard do I use I use a tough what keyboard do I use I use a happy hacking keyboard and it's the Bluetooth keyboard and it's the Bluetooth version and it's fully optimized for version and it's fully optimized for version and it's fully optimized for vim and it's just amazing I love it so vim and it's just amazing I love it so vim and it's just amazing I love it so much oh wow I think I've never had this much oh wow I think I've never had this much oh wow I think I've never had this problem before problem before problem before but something is lagging better much better
-
better much better okay there we go back at it okay service account go back at it okay service account config one oh there's a is widget in there okay one oh there's a is widget in there okay that's that's that's awesome what what else is there um I also want grafana there um I also want grafana grafana Misha venberg doc should be net grafana Misha venberg doc should be net grafana Misha venberg doc should be net actually this to um and what else do I want on my um and what else do I want on my homepage for now home assistant homepage for now home assistant homepage for now home assistant grafana that's the stuff I do grafana that's the stuff I do grafana that's the stuff I do most well let's do studio. youtube.com I most well let's do studio. youtube.com I most well let's do studio. youtube.com I also do that a lot okay so there so kubernetes widget lot okay so there so kubernetes widget let's check that out keep that in let's check that out keep that in let's check that out keep that in there there's a search okay that there
-
there there's a search okay that there there there's a search okay that there stand the config so what does this do the cluster so what does this do the cluster roll it can roll it can roll it can list thank you thank you Edward was hard work but I did it actually name space here should be it actually name space here should be home and I think I already have something on
-
and I think I already have something on Port 3000 actually Port 3000 actually Port 3000 actually so so so um gotg get SC all grap 3,000 yeah there's already a grafana low 3,000 yeah there's already a grafana low balancer there that's actually still on there that's actually still on pending like is that even still still um why is that still open um why is that still open um why is that still open raana customization raana customization raana customization [Music] that I just needed that for debugging that I just needed that for debugging sometime but that can just go and then sometime but that can just go and then sometime but that can just go and then 3,000 is actually available apparently on okay so let's check out the
-
on okay so let's check out the deployment deployment deployment okay one replica rolling update that's okay one replica rolling update that's okay one replica rolling update that's fine that's just fine that's just fine that's just standard service account with a version and then afterwards we can set version and then afterwards we can set up auto updating with up auto updating with up auto updating with flux so that'll be fun let's see flux so that'll be fun let's see flux so that'll be fun let's see homepage 812 okay for fun let's do 811 so I can 812 okay for fun let's do 811 so I can test my flux configuration later that can my flux configuration later that can auto update so these are all the volume update so these are all the volume mounts that's mounts that's mounts that's nice oh it's going to be so nice to have nice oh it's going to be so nice to have nice oh it's going to be so nice to have my homepage in code instead of Homer
-
okay that was the deployment that's okay that was the deployment that's all good the Ingress we can also just good the Ingress we can also just [Music] [Music] [Music] okay so the okay so the okay so the Ingress is going to production and the spec Ingress class production and the spec Ingress class name is traffic
-
okay home pay the secret name name will okay home pay the secret name name will be production I'm going to wait with production I'm going to wait with enabling the enabling the enabling the Ingress just yet just to get it running first so the first so the deployment service and Ingress yaml and deployment service and Ingress yaml and deployment service and Ingress yaml and that one I can comment out for now so we have the now so we have the secret the service service service service [Music] [Music] [Music] account deployment cluster rooll networking n yo is not rooll networking n yo is not there okay then let's add a name space which I do then let's add a name space which I do from my private repo because that from my private repo because that from my private repo because that contains some contains some contains some secrets secrets secrets [Music] be names space. yaml is going to be
-
be names space. yaml is going to be name name name homepage and just have homepage and just have homepage and just have [Music] here so I don't want to dox my secret here so I don't want to dox my secret that I have here can add this one to can add this one to my name this so now flux is going to add a new this so now flux is going to add a new homepage and for some like my my neovim homepage and for some like my my neovim homepage and for some like my my neovim is has recently turned slow today what's is has recently turned slow today what's is has recently turned slow today what's that about apply what is it K
-
apply what is it K apply K apply K apply K Dot and then dry run is that I just want to Output the that I just want to Output the ymo uh customization of yo they should just take all of these files they should just take all of these files here why is it not well if I apply it then K not well if I apply it then K apply k
-
may not add resource with an already may not add resource with an already registered ID deployment apps homepage um why would that not I don't have any um why would that not I don't have any other deployments called homepage in my other deployments called homepage in my other deployments called homepage in my cluster as far as I know yeah you had this problem too on Mac yeah you had this problem too on Mac check all processes running with enm oh yeah there's some uh there's a enm oh yeah there's some uh there's a hanging bicep language server looks like there's a bit of a storm
-
looks like there's a bit of a storm coming I just have to close my door one coming I just have to close my door one coming I just have to close my door one minute okay I was hearing lots of sounds but it okay I was hearing lots of sounds but it was actually my door just was actually my door just was actually my door just slamming and look I'm I'm swapping a slamming and look I'm I'm swapping a slamming and look I'm I'm swapping a lot so what would that be lot so what would that be lot so what would that be about yeah okay so Mech OBS is taking a about yeah okay so Mech OBS is taking a about yeah okay so Mech OBS is taking a lot okay looking a bit better
-
okay looking a bit better here so um why is my customization customization not building properly that's annoying uh so it must uh so it must [Music] be cluster roll config be cluster roll config map service account map service account map service account Secrets yeah there's something wrong with the yeah there's something wrong with the deployment. yo is Cube CTL customize yeah that should is Cube CTL customize yeah that should just output the directory K customize error merging resources from deployment error merging resources from deployment yaml may not add resource with an yaml may not add resource with an yaml may not add resource with an already registered
-
what I literally have never deployed what I literally have never deployed homepage before neither have I ever ever um had any deployment with the name um had any deployment with the name um had any deployment with the name homepage why is it saying you can't homepage why is it saying you can't homepage why is it saying you can't deploy with the name homepage and even worse I'm not even homepage and even worse I'm not even deploy deploying it I'm deploy deploying it I'm deploy deploying it I'm just I'm just trying to build the just I'm just trying to build the just I'm just trying to build the current directory of the customization current directory of the customization current directory of the customization file may not add resource with an file may not add resource with an file may not add resource with an already registered ID oh I had this problem earlier this week oh I had this problem earlier this week yeah what was config config map let's name home homepage yeah that should just build homepage yeah that should just build fine
-
all of my customization files are V1 all of my customization files are V1 beta they all have these I'm fighting with this very strange I'm fighting with this very strange little error here that I'm getting with little error here that I'm getting with little error here that I'm getting with K customize unable to find one of customize unable to find one of customization yaml in customization yaml in customization yaml in directory so I go to my directory apps directory so I go to my directory apps directory so I go to my directory apps base just like every everywhere else and then just like every everywhere else and then I I I do do do customization customization customization Yu okay customize
-
I'm flabbergast why is I'm flabbergast why is this giving me this giving me this giving me problems API version is correct kind deployment I literally just took the deployment I literally just took the Manifest from disable the deployment from the disable the deployment from the customization what does it do customization what does it do customization what does it do then okay then okay then okay customize okay then it will build so there's something wrong in the yl so there's something wrong in the yl with the deployment with the deployment with the deployment file so much we have image yeah that's literally all I image yeah that's literally all I adjusted in adjusted in adjusted in the in the deployment and I took away the in the deployment and I took away the in the deployment and I took away the so how do I do it in other
-
let's check out this let's check out this [Music] one okay well I'm literally going to one okay well I'm literally going to take the whole whole thing again from the whole whole thing again from the homepage homepage homepage let's see if it will build now okay customize yeah okay so there's something customize yeah okay so there's something wrong with the deployment that is from wrong with the deployment that is from wrong with the deployment that is from the website directly interestingly hey there no this is not interestingly hey there no this is not anable this is customiz I'm running a anable this is customiz I'm running a anable this is customiz I'm running a kubernetes home lab and I'm using flux kubernetes home lab and I'm using flux kubernetes home lab and I'm using flux CD for gitops and CD for gitops and CD for gitops and I'm using um customization files to I'm using um customization files to I'm using um customization files to merge my kubernetes merge my kubernetes merge my kubernetes manifests and there is a problem with manifests and there is a problem with manifests and there is a problem with the deployment at the deployment at the deployment at yo here so let's ask chat GPT uh this deployment won't build with GPT uh this deployment won't build with customize what's wrong
-
there's a problem with the deployment there's a problem with the deployment that came from so let's see if we can fix it template so let's see if we can fix it template metadata that's all looks metadata that's all looks metadata that's all looks fine service account DNS policy fine service account DNS policy fine service account DNS policy yeah the container looks good image pool yeah the container looks good image pool yeah the container looks good image pool policy looks policy looks policy looks good volume mounts is on the container good volume mounts is on the container good volume mounts is on the container level so no problems with the ammo level so no problems with the ammo level so no problems with the ammo there there there volumes it all looks customize there's a problem with the customize there's a problem with the maybe if I do K apply deployment.
-
maybe if I do K apply deployment. maybe if I do K apply deployment. yaml and then dry run is client let's yaml and then dry run is client let's yaml and then dry run is client let's see if that gives see if that gives see if that gives anything no so that that just applies anything no so that that just applies anything no so that that just applies just fine oh it's the let's see you can reuse oh it's the let's see you can reuse resources from a common base but you resources from a common base but you resources from a common base but you must modify the name oh so the there's a problem with name oh so the there's a problem with the name of the deployment huh I'm just going to give all of these
-
huh I'm just going to give all of these different names I see I seriously don't I see I seriously don't know hey R I I'm I have R I I'm I have this extremely strange um customize this extremely strange um customize this extremely strange um customize error where it's saying um I'm just
-
error where it's saying um I'm just error where it's saying um I'm just pulling off the the the Manifest from pulling off the the the Manifest from pulling off the the the Manifest from homepage homepage homepage what is get homepage. Dev they give me what is get homepage. Dev they give me what is get homepage. Dev they give me this deployment right so if I apply the this deployment right so if I apply the this deployment right so if I apply the deployment just do it all from scratch again so this is my empty deployment again so this is my empty deployment file I grab the deployment file I grab the deployment file I grab the deployment here paste here paste here paste it and then if I would do an apply of it and then if I would do an apply of it and then if I would do an apply of dry dry dry run nothing wrong with my deployment yeah I'm almost almost at the point of yeah I'm almost almost at the point of cursing here so I apply this deployment cursing here so I apply this deployment cursing here so I apply this deployment that goes fine then I do K customize to that goes fine then I do K customize to that goes fine then I do K customize to just build the yaml just build the yaml just build the yaml locally then I get uh error accumulating locally then I get uh error accumulating locally then I get uh error accumulating resources may not add resource with an resources may not add resource with an resources may not add resource with an already registered already registered already registered ID deployment V1 homepage. default ID deployment V1 homepage. default ID deployment V1 homepage. default must build a direct a directory file is must build a direct a directory file is must build a direct a directory file is not a directory so it's a very strange not a directory so it's a very strange not a directory so it's a very strange error error error message so if I then open the message so if I then open the message so if I then open the customization and comment out the customization and comment out the customization and comment out the deployment the K customize then it deployment the K customize then it deployment the K customize then it builds just fine so there is something builds just fine so there is something builds just fine so there is something wrong with my deployment file that I
-
wrong with my deployment file that I wrong with my deployment file that I just pulled off from from the homepage just pulled off from from the homepage just pulled off from from the homepage file right from the homepage website I file right from the homepage website I file right from the homepage website I did write this did write this did write this myself so I remove the name space here because so I remove the name space here because I have the name space in my I have the name space in my I have the name space in my customization file and file and then then then um the Nam space is here um the Nam space is here um the Nam space is here namespace homepage so that will give the namespace homepage so that will give the namespace homepage so that will give the name space to the deployment. yo and yo and then it should just if the customized output with the basic if the customized output with the basic deployment well that's the thing the deployment well that's the thing the deployment well that's the thing the customized output won't customized output won't customized output won't happen happen happen um because as soon as I add the it to um because as soon as I add the it to um because as soon as I add the it to the customization file it won't the customization file it won't the customization file it won't build I can't diff it because it won't build I can't diff it because it won't build I can't diff it because it won't give me any give me any give me any output and I literally took the the the
-
output and I literally took the the the output and I literally took the the the code from the get homepage um um again like I'm going to remove the again like I'm going to remove the again like I'm going to remove the deployment Vim let's see if neovim does any weird Vim let's see if neovim does any weird [ __ ] [ __ ] [ __ ] oh F oh F oh F deployment and then set deployment and then set deployment and then set paste okay so here's my deployment file paste okay so here's my deployment file paste okay so here's my deployment file in Vim you getting on your Vim you getting on your laptop if you if you can pull in this laptop if you if you can pull in this laptop if you if you can pull in this deployment and you can just C customiz deployment and you can just C customiz deployment and you can just C customiz build then build then build then I well I'm almost going to say I'm going I well I'm almost going to say I'm going I well I'm almost going to say I'm going to shave my head but maybe I shouldn't to shave my head but maybe I shouldn't to shave my head but maybe I shouldn't do do do any okay so I'll it's like get homepage.
-
any okay so I'll it's like get homepage. any okay so I'll it's like get homepage. Dev and then you just do kubernetes Dev and then you just do kubernetes Dev and then you just do kubernetes installation and I don't do the the helm installation and I don't do the the helm installation and I don't do the the helm but I do the kubernetes Manifest here but I do the kubernetes Manifest here but I do the kubernetes Manifest here install with kubernetes manifest like I had something similar manifest like I had something similar the other the other the other day uh and then I had a duplicate volume day uh and then I had a duplicate volume day uh and then I had a duplicate volume in my my yamel and then I had the exact in my my yamel and then I had the exact in my my yamel and then I had the exact exact same exact same exact same um error message this very strange um error message this very strange um error message this very strange random error message that I have here random error message that I have here random error message that I have here too but then it was the problem that I too but then it was the problem that I too but then it was the problem that I had two volumes with the same name in my deployment but let's see I did my deployment but let's see I did my deployment jamble again again let's do a customized build won't again let's do a customized build won't work remove the Nam work remove the Nam work remove the Nam space okay let's take a look at the space okay let's take a look at the space okay let's take a look at the volumes then maybe there is volumes then maybe there is volumes then maybe there is something off with the volumes homepage config volumes homepage config yeah so it takes all of the configs and yeah so it takes all of the configs and yeah so it takes all of the configs and then the sub volumes nope won't
-
volumes nope won't work just going to hone it all work just going to hone it all work just going to hone it all down it's not a problem with the volumes yes that's what I yes that's what I did and did and did and then when I do the customization and then when I do the customization and then when I do the customization and then I comment out the then I comment out the then I comment out the deployment fine oh my God I see fine oh my God I see it oh my it oh my it oh my God I see it now okay no it's not that I had deployment okay no it's not that I had deployment yaml twice in my customization file oh my file oh my God I had deployment that yaml here and God I had deployment that yaml here and God I had deployment that yaml here and then it was in the bottom here then it was in the bottom here then it was in the bottom here too you just saw it too well I'm happy I too you just saw it too well I'm happy I too you just saw it too well I'm happy I caught it myself caught it myself caught it myself [Laughter] [Laughter] [Laughter] then what the [ __ ] freak I shouldn't then what the [ __ ] freak I shouldn't then what the [ __ ] freak I shouldn't swear what a freaking idiot what a swear what a freaking idiot what a swear what a freaking idiot what a donkey oh my well that's just part of being a
-
well that's just part of being a streamer I guess sometimes you get these streamer I guess sometimes you get these streamer I guess sometimes you get these annoying or these um embarrassing things annoying or these um embarrassing things annoying or these um embarrassing things out in public these things happen but out in public these things happen but out in public these things happen but it's all part of learning in public okay so now I have my deployment public okay so now I have my deployment in here in here in here once and now if I once and now if I once and now if I customize yep now it builds just customize yep now it builds just customize yep now it builds just fine yeah the obvious ones are uh the fine yeah the obvious ones are uh the fine yeah the obvious ones are uh the the most annoying ones that's right but like yeah customize never lies but like yeah customize never lies that's right customize never lies the that's right customize never lies the that's right customize never lies the error is always here I I knew it was error is always here I I knew it was error is always here I I knew it was here and also maybe something with the here and also maybe something with the here and also maybe something with the volumes but nope just volumes but nope just volumes but nope just me you've just been doing it for an hour me you've just been doing it for an hour me you've just been doing it for an hour or so yeah right oh god right oh god well well it hasn't been an hour it has well well it hasn't been an hour it has well well it hasn't been an hour it has been maybe 20 minutes that I was doing been maybe 20 minutes that I was doing been maybe 20 minutes that I was doing this one this particular error but now this one this particular error but now this one this particular error but now that's out of the that's out of the that's out of the way let's apply so I'm not applying the Ingress apply so I'm not applying the Ingress yet because I just wanted to check out yet because I just wanted to check out yet because I just wanted to check out what this would
-
service oh that's 9,000 that's not what service oh that's 9,000 that's not what we want homepage okay so you get the groups so homepage okay so you get the groups so here will be my service home assistant here will be my service home assistant here will be my service home assistant that works works yeah could have been three days easily yeah could have been three days easily yeah could have been three days easily but I have have learned though to to do but I have have learned though to to do but I have have learned though to to do these customize these customize these customize um like before I was like pushing these um like before I was like pushing these um like before I was like pushing these to my gitops repo and then waiting for to my gitops repo and then waiting for to my gitops repo and then waiting for flux to do it oh God like in my home lab flux to do it oh God like in my home lab flux to do it oh God like in my home lab I have the luxury of um just being able I have the luxury of um just being able I have the luxury of um just being able to apply it from the command line like to apply it from the command line like to apply it from the command line like this or at least do a customized build this or at least do a customized build this or at least do a customized build I've learned that because if you have I've learned that because if you have I've learned that because if you have this problem and you just keep pushing this problem and you just keep pushing this problem and you just keep pushing it to your repo that's going to take so it to your repo that's going to take so it to your repo that's going to take so much time much time much time but yeah I have my homepage up but yeah I have my homepage up but yeah I have my homepage up and it's going to my home assistant and it's going to my home assistant and it's going to my home assistant nicely no nicely no nicely no problem it's going to my grafana no problem it's going to my grafana no problem it's going to my grafana no problem and going to my YouTube Studio problem and going to my YouTube Studio problem and going to my YouTube Studio no no no problem well look I'm 22 subscribers problem well look I'm 22 subscribers problem well look I'm 22 subscribers away from 9,000
-
subscribers and you can also see what I subscribers and you can also see what I I earn uh uh from YouTube these days it I earn uh uh from YouTube these days it I earn uh uh from YouTube these days it is about € 100 a month here month here 100 pretty crazy to think that I'm 100 pretty crazy to think that I'm 100 pretty crazy to think that I'm getting getting getting uh getting that these days it's not much uh getting that these days it's not much uh getting that these days it's not much but it's but it's but it's nice um so now that I'm confident it's nice um so now that I'm confident it's nice um so now that I'm confident it's working I am going to add it to my cloud working I am going to add it to my cloud working I am going to add it to my cloud flare DNS DNS and I just don't want to dox a couple of and I just don't want to dox a couple of and I just don't want to dox a couple of things things things so yeah it's F fire money all right like so yeah it's F fire money all right like so yeah it's F fire money all right like I only have I only have I only have to live on uh oatmeal and live in the to live on uh oatmeal and live in the to live on uh oatmeal and live in the forest for the rest of my forest for the rest of my forest for the rest of my life then maybe I life then maybe I life then maybe I could with my current savings uh live could with my current savings uh live could with my current savings uh live for a year on that money yeah but it's not the the money that I yeah but it's not the the money that I do the YouTube for you get to meet do the YouTube for you get to meet do the YouTube for you get to meet people and now I recently became an people and now I recently became an people and now I recently became an Azure Azure Azure MVP like that is a really nice MVP like that is a really nice MVP like that is a really nice recognition for for all of the hard recognition for for all of the hard recognition for for all of the hard work work work um yeah just a second here I just have um yeah just a second here I just have um yeah just a second here I just have to here okay so here is my
-
the to diff them yeah that's a good idea the to diff them yeah that's a good idea yeah then you can even without custom yeah then you can even without custom yeah then you can even without custom without flux you can already see your without flux you can already see your without flux you can already see your changes that's changes that's changes that's nice so I still need to write a a quick nice so I still need to write a a quick nice so I still need to write a a quick Terra for module to do my Terra for module to do my Terra for module to do my DNS um but yeah it's still very small so DNS um but yeah it's still very small so DNS um but yeah it's still very small so I don't mind as I don't mind as I don't mind as much much much but my new record is going to but my new record is going to but my new record is going to be be be um um um homepage and then it's also going homepage and then it's also going homepage and then it's also going to point to the internal IP of my to point to the internal IP of my to point to the internal IP of my control plane of my production cluster and I have to turn off the proxy cluster and I have to turn off the proxy save so as long as you turn off the save so as long as you turn off the save so as long as you turn off the proxy then Cloud flare will actually proxy then Cloud flare will actually proxy then Cloud flare will actually resolve to internal IP addresses which resolve to internal IP addresses which resolve to internal IP addresses which is is is cool and let's cool and let's cool and let's see um um homepage here is our Ingress we had that one on let's encrypt we had that one on let's encrypt production homepage at Misha venberg production homepage at Misha venberg production homepage at Misha venberg Donnet that's also correct oh I almost Donnet that's also correct oh I almost Donnet that's also correct oh I almost forgot
-
forgot forgot to adjust to adjust to adjust the host here and we already set the Ingress here and we already set the Ingress class class class [Music] [Music] [Music] name and we can remove the name space name and we can remove the name space name and we can remove the name space because that's done in my customization file file okay looks pretty so now so now my my my my my my um SE manager is going to provision a um SE manager is going to provision a um SE manager is going to provision a new certificate for my new certificate for my new certificate for my Ingress and that takes a little while Ingress and that takes a little while Ingress and that takes a little while but let's see home but let's see home but let's see home page okay get CSR so here we see that the certificate CSR so here we see that the certificate is not ready yet but it is in progress no I don't not running external progress no I don't not running external DNS DNS DNS yet oh that's a can you do Cloud flare
-
yet oh that's a can you do Cloud flare yet oh that's a can you do Cloud flare DNS with external DNS yeah that that's DNS with external DNS yeah that that's DNS with external DNS yeah that that's what external DNS is for I always what external DNS is for I always what external DNS is for I always thought wow yeah maybe I should just do thought wow yeah maybe I should just do thought wow yeah maybe I should just do that I was considering external that I was considering external that I was considering external DNS um and then running my own local DNS DNS um and then running my own local DNS DNS um and then running my own local DNS server for my local server for my local server for my local network and then I discovered Cloud network and then I discovered Cloud network and then I discovered Cloud flare and then just did it over there so flare and then just did it over there so flare and then just did it over there so then I didn't have to do then I didn't have to do then I didn't have to do um a a DNS server here I was planning to um a a DNS server here I was planning to um a a DNS server here I was planning to run a some sort of DNS in my kubernetes run a some sort of DNS in my kubernetes run a some sort of DNS in my kubernetes cluster but I I never thought that ex I cluster but I I never thought that ex I cluster but I I never thought that ex I never put one and one and two and that never put one and one and two and that never put one and one and two and that could do external DNS to Cloud flare of could do external DNS to Cloud flare of could do external DNS to Cloud flare of course I should do that awesome thank you Rio uh that actually I awesome thank you Rio uh that actually I should add that to the home lab notes should add that to the home lab notes should add that to the home lab notes that I have that I have that I have here let's see here let's see here let's see um home um home um home lab here to lab here to lab here to do external DNS for cloud flare tals tals um I've been running Talos for well um I've been running Talos for well um I've been running Talos for well since Christmas or
-
and you know what let's just fix let's and you know what let's just fix let's see if we see if we see if we the the homepage the the homepage the the homepage container let's see if we can secure container let's see if we can secure container let's see if we can secure that a little bit better yeah they're a dead giveaway better yeah they're a dead giveaway right Talos Talos Chad right Talos Talos Chad right Talos Talos Chad spotted um let's see if we um let's see if we can check out the docker file profile yeah so they're not running it profile yeah so they're not running it as a user so it is running as user so it is running as root in terms of Docker they're owning the they they're owning they're owning the they they're owning everything as user thousand thousand so everything as user thousand thousand so everything as user thousand thousand so maybe I should just run it as user maybe I should just run it as user maybe I should just run it as user thousand, too so yeah let's uh see if we can too so yeah let's uh see if we can secure this thing a bit more and interestingly I thought that more and interestingly I thought that security security security context I thought this was set to false
-
context I thought this was set to false context I thought this was set to false um by default but I must also do it on the default but I must also do it on the container level container level container level apparently so let's see if we can um fix apparently so let's see if we can um fix apparently so let's see if we can um fix that a little homepage homepage so on the container level let's set let's set a privilege privilege escalation false container homepage must set false container homepage must set security context allow privilege security context allow privilege security context allow privilege escalation false array like
-
array like this capil drop all and what else does this capil drop all and what else does this capil drop all and what else does it profile Second profile type to runtime profile Second profile type to runtime default or Local Host yeah yeah it is it is Risky Host yeah yeah it is it is Risky Business to do the dropping all the capabilities but we can try we can see capabilities but we can try we can see if it if it will fun I mean we want our homepage to be fun I mean we want our homepage to be super secure right
-
see second see second profile do type to runtime default so let's see if it will still default so let's see if it will still build too so too so let's apply so now that I applied it didn't apply so now that I applied it didn't complain at all we got no warnings with controller but now the question is will controller but now the question is will it still error container has run as non route and error container has run as non route and image will run as root very good image will run as root very good image will run as root very good kubernetes thank kubernetes thank kubernetes thank you because this donkey has forgotten to you because this donkey has forgotten to you because this donkey has forgotten to do do do a security context on the Pod
-
thousand and let's do FS group th2 just thousand and let's do FS group th2 just to try it out complaints us are these on the container complaints us are these on the container level oh really like I tend to do it on level oh really like I tend to do it on level oh really like I tend to do it on the the pot level because then all the containers in level because then all the containers in the Pod will get it right you're an idiot okay well you're right you're an idiot okay well you're an idiot I'm a donkey we're in good an idiot I'm a donkey we're in good an idiot I'm a donkey we're in good company company company then well the container itself is then well the container itself is then well the container itself is actually running actually running actually running now like has homepage been built that now like has homepage been built that now like has homepage been built that well that it will actually well that it will actually well that it will actually run uh properly it's now listening on run uh properly it's now listening on run uh properly it's now listening on Port Port Port 3000 you know what let's just live on 3000 you know what let's just live on 3000 you know what let's just live on the edge for a bit and do homepage.
-
the edge for a bit and do homepage. the edge for a bit and do homepage. Misha vennet vennet wow fully wow fully wow fully secured no complaints from tals we have a fully secured homepage tals we have a fully secured homepage running on my internal Network running on my internal Network running on my internal Network here how cool is homepage that's pretty cool that it's homepage that's pretty cool that it's looking that shows you the the cluster looking that shows you the the cluster looking that shows you the the cluster itself as a widget here and I can search itself as a widget here and I can search itself as a widget here and I can search for Rio K Rio for Rio K Rio for Rio K Rio here and it will open Dock dock go here and it will open Dock dock go here and it will open Dock dock go that's pretty pretty that's pretty pretty that's pretty pretty cool so now I can start building out my cool so now I can start building out my cool so now I can start building out my homepage again so I had this extension homepage again so I had this extension homepage again so I had this extension that would point to that would point to that would point to homar but let's homar but let's homar but let's see this is now going to be homepage homepage right um here save so now when I open the browser
-
here save so now when I open the browser yes I get my new homepage cool think you can do both but imagine but IM think you can do both but imagine but IM imagine running multiple containers have imagine running multiple containers have imagine running multiple containers have to run as different user IDs yep it to run as different user IDs yep it to run as different user IDs yep it wouldn't work if that's on the Pod level wouldn't work if that's on the Pod level wouldn't work if that's on the Pod level y a lot of the pods that I work with are y a lot of the pods that I work with are y a lot of the pods that I work with are usually just one container but of course usually just one container but of course usually just one container but of course a lot of PODS out there are with a lot of PODS out there are with a lot of PODS out there are with multiple containers and then it wouldn't multiple containers and then it wouldn't multiple containers and then it wouldn't work that well so it's really nice that work that well so it's really nice that work that well so it's really nice that you can do it on container level you can do it on container level you can do it on container level too yeah but I I was using homar too yeah but I I was using homar too yeah but I I was using homar before but um you can't configure that before but um you can't configure that before but um you can't configure that from code you need to have this this from code you need to have this this from code you need to have this this config file and I was backing it up with config file and I was backing it up with config file and I was backing it up with a ugly Cron job sometimes uh but I like a ugly Cron job sometimes uh but I like a ugly Cron job sometimes uh but I like homepage because I now have this uh homepage because I now have this uh homepage config config config map with yaml and I can just start map with yaml and I can just start map with yaml and I can just start building out my home page from yaml building out my home page from yaml building out my home page from yaml that's just really nice so I can I can group it and oh okay nice so I can I can group it and oh okay so that's nice so that's nice so that's nice so let's see in my home so let's see in my home so let's see in my home lab group I will have lab group I will have lab group I will have then
-
there there profana what else in my home lab do I profana what else in my home lab do I profana what else in my home lab do I want want want to um access say um access say regularly grafana like home lab grafana like home lab related weave I don't use anymore oh that's just that can just be anymore oh that's just that can just be home lab related then my second group home lab related then my second group home lab related then my second group will will will be um reading so that can be um reading so that can be um reading so that can be comma feed it's my RSS be comma feed it's my RSS be comma feed it's my RSS feeds and that will be Kaa feed ad Misha be Hacker be Hacker News and I always have News and then my third group will be News and then my third group will be related to content creation so is the YouTube Studio but creation so is the YouTube Studio but also YouTube
-
Studio okay Studio okay so customize apply customize apply this so now the the config map has been changed I wonder the config map has been changed I wonder if it does like hot reloading of it you can also dynamically import it you can also dynamically import services using kubernetes Ingress for services using kubernetes Ingress for services using kubernetes Ingress for each of your applications oh really each of your applications oh really each of your applications oh really that's pretty that's pretty that's pretty cool yeah homelab seems to be much cool yeah homelab seems to be much cool yeah homelab seems to be much better integrated with all of this so it has not Reloaded The config map so it has not Reloaded The config map yet yet yet um let's see if pot my cluster is hosted in my closet pot my cluster is hosted in my closet here I have a few notes I have a few notes uh running notes I have a few notes uh running uh in my closet here they are just thin uh in my closet here they are just thin uh in my closet here they are just thin clients with 16 or 8 gabt of clients with 16 or 8 gabt of clients with 16 or 8 gabt of RAM and oh we have a problem and oh we have a problem here bad indentation let's indentation let's see and yes I'm um I'm also running
-
see and yes I'm um I'm also running see and yes I'm um I'm also running Talos on the notes Talos Linux to Talos on the notes Talos Linux to Talos on the notes Talos Linux to provision it ah okay so I'm it ah okay so I'm missing these I'm being a bad boy with my these I'm being a bad boy with my yaml yaml yaml yaml yaml yaml configuration my yaml writing skills okay okay so they are probably all objects then so they are probably all objects then so they are probably all objects then let's see um let's go to get um let's go to get homepage here just look at the example homepage here just look at the example homepage here just look at the example again uh where's the config again uh where's the config again uh where's the config map objects so it's an array with an array
-
objects so it's an array with an array holding an object like holding an object like holding an object like this so this is another array another this so this is another array another this so this is another array another object these are uh this this is an object containing an uh this this is an object containing an array containing an object so this is an object so this is an object and this is an object and this is an object and this is an object okay go home lab reading and content creation
-
go home lab reading and content creation oh I like this homepage this is so clean oh I like this homepage this is so clean oh I like this homepage this is so clean and uh distraction free this is and uh distraction free this is and uh distraction free this is awesome I really like awesome I really like awesome I really like this two dots with the one floating this two dots with the one floating this two dots with the one floating above the other one yeah yeah right home assistant still one yeah yeah right home assistant still needed um to be an object cool well I'm definitely going to object cool well I'm definitely going to be exploring homepage more because you be exploring homepage more because you be exploring homepage more because you can there there's a lot of stuff you can can there there's a lot of stuff you can can there there's a lot of stuff you can do do do here look at all these widgets Azure here look at all these widgets Azure here look at all these widgets Azure devops cool caliber web assistant oh wow you can do home assistant oh wow you can do home assistant sensors on your home page assistant sensors on your home page assistant sensors on your home page dashboard that's really grafana allowed Fields dashboards data grafana allowed Fields dashboards data sources okay you have inline dashboard sources okay you have inline dashboard sources okay you have inline dashboard showing here
-
oh that's really cool I'm definitely oh that's really cool I'm definitely going to be spending some time on going to be spending some time on going to be spending some time on building out out a really nice homepage building out out a really nice homepage building out out a really nice homepage for myself here because you can have it for myself here because you can have it for myself here because you can have it in code that's the great in code that's the great in code that's the great thing instead of uh thing instead of uh thing instead of uh homar where you have to do this stupid homar where you have to do this stupid homar where you have to do this stupid in line like you can only do the in line like you can only do the in line like you can only do the configuration in there now I can configuration in there now I can configuration in there now I can actually do something from code oh this actually do something from code oh this actually do something from code oh this is so is so is so cool greeting cool greeting cool greeting kubernetes a really nice really cool oh good that you remind me thank cool oh good that you remind me thank you Rio um I'm going to also end the you Rio um I'm going to also end the you Rio um I'm going to also end the stream here I got it working stream here I got it working stream here I got it working and um now I have to watch the death and um now I have to watch the death and um now I have to watch the death memorial service of the Netherlands and memorial service of the Netherlands and memorial service of the Netherlands and then I'm going to wind down for bed then I'm going to wind down for bed then I'm going to wind down for bed thanks for tuning in guys and um hope to thanks for tuning in guys and um hope to thanks for tuning in guys and um hope to see you next stream might be streaming see you next stream might be streaming see you next stream might be streaming tomorrow again see you later
Summary
The main theme is improving the configuration of a homepage application within a home lab environment. Key subjects include Helm charts, Kubernetes, and specific configuration files like values.yaml and separate config maps. The practical takeaway is to leverage existing Helm charts and manage configurations effectively, preferably in separate manifest files, for better organization and deployment.