<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Skyler</title>
    <description>The latest articles on DEV Community by Skyler (@skylerdevops).</description>
    <link>https://dev.to/skylerdevops</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F476804%2F1d77dab0-716b-4cbe-ab92-750f19aacb6b.jpg</url>
      <title>DEV Community: Skyler</title>
      <link>https://dev.to/skylerdevops</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skylerdevops"/>
    <language>en</language>
    <item>
      <title>DevOps Basics: CI/CD/CD</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Tue, 13 Sep 2022 16:42:49 +0000</pubDate>
      <link>https://dev.to/skylerdevops/devops-basics-cicdcd-1ij3</link>
      <guid>https://dev.to/skylerdevops/devops-basics-cicdcd-1ij3</guid>
      <description>&lt;p&gt;Today, I'm inaugurating a new category on the blog: DevOps basics! and we will start with CICDCD. &lt;/p&gt;

&lt;p&gt;It is a question usually asked in interviews: what is CI/CD, what do you think of Continuous Deployment?&lt;br&gt;
Let's see first what a deployment is, then establish what are those CI, CD, CD about.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;deployment&lt;/strong&gt; is an act of installing/activating the software/binaries. During deployment, if an existing version is there, then uninstalling/deactivating the previous version takes place. A release is the culmination of all the activities to get changes safely into production. &lt;/p&gt;

&lt;h3&gt;
  
  
  Continuous Integration
&lt;/h3&gt;

&lt;p&gt;CI is the automation of builds. The code change needs to be merged, committed into the source code repo, and checked against it. &lt;br&gt;
Continuous Integration solves 3 main problems: having the builds be: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repeatable, &lt;/li&gt;
&lt;li&gt;consistent, &lt;/li&gt;
&lt;li&gt;available.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The build pipeline has to be fast and reliable, as it will be run multiple times after being triggered.&lt;/p&gt;

&lt;h3&gt;
  
  
  Continuous Deployment
&lt;/h3&gt;

&lt;p&gt;Continuous Deployment focuses – just like the name implies – forcuses on the deployment; the actual installation and distribution of the bits.&lt;br&gt;
As Continuous Integration provides a deployable artifact, Continuous Deployment can take that artifact forward into additional environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Continuous Delivery
&lt;/h3&gt;

&lt;p&gt;Continuous Delivery is the automation of steps to safely get changes into production. &lt;br&gt;
It's important to make clear that every change that passes all stages of your production pipeline &lt;em&gt;is released to your customers&lt;/em&gt;. There's &lt;strong&gt;no human intervention&lt;/strong&gt;, and only a failed test will prevent a new change to be deployed to production.&lt;br&gt;
As you can imagine, testing needs to be more than solid before considering this strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NI8_qCWQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m554vqjnvvsj9ylgkbs7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NI8_qCWQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m554vqjnvvsj9ylgkbs7.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Opinions
&lt;/h3&gt;

&lt;p&gt;Interviewers usually ask about Continuous Delivery as it gives a good insights into someone thoughts and experience. &lt;br&gt;
For example, in some companies, it's totally accepted and recommended to have releases automatically going into production. Very little manual testing is done - if at all.&lt;br&gt;
In a lot of companies, it is unthinkable. Every change would go through a monthly/or-more release, heavy manual testing and business signing and testing on top. &lt;/p&gt;

&lt;p&gt;Continuous Integration and Continuous delivery is usually already present in every company (except some start-ups). They're usually set up with Jenkins, Team City, Azure DevOps, ...&lt;/p&gt;

&lt;p&gt;That was it for today :). Hope this was useful, if you have any questions, don't hesitate!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Interviews: questions to ask and how to present yourself</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Wed, 07 Sep 2022 15:40:29 +0000</pubDate>
      <link>https://dev.to/skylerdevops/interviews-questions-to-ask-and-how-to-present-yourself-49c3</link>
      <guid>https://dev.to/skylerdevops/interviews-questions-to-ask-and-how-to-present-yourself-49c3</guid>
      <description>&lt;p&gt;Hello! It's been a while on this blog. I just came back from Toronto, I feel very inspired and wanted to put down a few advices for you guys.&lt;/p&gt;


&lt;blockquote&gt;
&lt;p&gt;I just came back from Toronto, Canada! &lt;br&gt;&lt;br&gt;I took some nice pictures and I feel a lot more “refreshed” now! Looking forward to keep that energy going ☺️ &lt;a href="https://t.co/FbobmCbGyp"&gt;pic.twitter.com/FbobmCbGyp&lt;/a&gt;&lt;/p&gt;— Skyler (&lt;a class="mentioned-user" href="https://dev.to/skylerdevops"&gt;@skylerdevops&lt;/a&gt;) &lt;a href="https://twitter.com/SkylerDevops/status/1567529958041427970?ref_src=twsrc%5Etfw"&gt;September 7, 2022&lt;/a&gt;
&lt;/blockquote&gt; 

&lt;p&gt;Today we talk interviews. How to present yourself, a few questions to ask. I will keep this brief so that you can easily pin this somewhere and refer to the main points.&lt;/p&gt;

&lt;p&gt;Let's go!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to prepare:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What are your main strengths?&lt;/strong&gt; This is a mix of 1) looking at the job description and what they explicitly mention (refer to those qualities - if you have them!), 2) personal introspection.
&lt;em&gt;For example: I'm great at communicating with the Team. This helps me to establish a good report with everyone I work with.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Main accomplishments? What can you bring to the company?&lt;/strong&gt; Again, try to refer to the job description.
&lt;em&gt;For example: I set up a Kubernetes cluster at my first job. I'm able to find solutions by myself, although I appreciate team work!&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finance:&lt;/strong&gt; If you have any metric that is related to money, companies &lt;strong&gt;love&lt;/strong&gt; that.
&lt;em&gt;For example: I created a script that would turn off the VM at night. Therefore, our bill went down by x %.&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here, it's really important to understand that you are &lt;em&gt;selling&lt;/em&gt; yourself. It's about what you can bring to them, what &lt;strong&gt;value your addition to the team will make&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions
&lt;/h2&gt;

&lt;p&gt;At the end of an interview, you should have a time allocated for questions for them. This is now **your **time to see if they are a good fit for you. You might need to change ASAP because of financial reasons, but if you can take your time, please do. Finding a company that ticks most, if not all, your boxes will go a lot further than a "quick, I just want to change ships". &lt;br&gt;
Anyway, a few questions that I always ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What tech do they work with?&lt;/li&gt;
&lt;li&gt;Is there an On-Call Rota?&lt;/li&gt;
&lt;li&gt;Do they work with multiple timezones? (this mean you might need to stay later/come earlier)&lt;/li&gt;
&lt;li&gt;Hybrid? If yes, how many days a week/month in the office?&lt;/li&gt;
&lt;li&gt;Team/department structure/composition? This is very important if, for example, you are a woman and want to make sure you won't be the only one in the department...!&lt;/li&gt;
&lt;li&gt;Are there any socials organised? Does the team participate?&lt;/li&gt;
&lt;li&gt;Career progression,&lt;/li&gt;
&lt;li&gt;What would make someone successful in this role,&lt;/li&gt;
&lt;li&gt;How would you describe the culture of the company?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I understand this seems like a lot - but it isn't. You &lt;strong&gt;want&lt;/strong&gt; to have this information before joining. &lt;br&gt;
A few more questions I like, that I still think you should ask, although they seem more "nosey":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why are they hiring? Why did the last person leave?&lt;/li&gt;
&lt;li&gt;How do they deal with someone that under performs?&lt;/li&gt;
&lt;li&gt;What is the main challenge for someone in this role in this company?&lt;/li&gt;
&lt;li&gt;How do the manager of the team deal with unreasonable timeline or pushback?
Again, those are situations you might find yourself in, or see a colleague in. You will want to know how your manager react before having signed a contract!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is it for this article, I hope this helps you out in your next search! :) &lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Why you shouldn't keep a**holes in your team</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Sat, 12 Feb 2022 12:59:37 +0000</pubDate>
      <link>https://dev.to/skylerdevops/why-you-shouldnt-keep-aholes-in-your-team-4i47</link>
      <guid>https://dev.to/skylerdevops/why-you-shouldnt-keep-aholes-in-your-team-4i47</guid>
      <description>&lt;p&gt;Hi! I recently made a &lt;a href="https://twitter.com/SkylerDevops/status/1478844215975202816"&gt;Twitter post&lt;/a&gt; about a**holes at work, and I thought I would expand a bit more in a blog post, so here we go!  &lt;/p&gt;

&lt;p&gt;First of all, there are factual proofs, research and &lt;a href="https://hbr.org/2018/04/4-ways-to-deal-with-a-toxic-coworker"&gt;articles&lt;/a&gt; that has been done around "why you don't want a toxic person in a team". It's not just me spouting nonsense. Let's dig into the subject a bit more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk
&lt;/h2&gt;

&lt;p&gt;What is in someone's head stays in their own head if they do not know how to communicate. The person ends up hoarding the information and does not know/want to talk around it. This is a risk to the company long term because you end up with one person really skilled, surrounded by others who aren't really sure what's actually behind x process or Y release, as if there was a "mist" around some subjects. This is a** one man** dependency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Burn out
&lt;/h2&gt;

&lt;p&gt;If you have ever worked with one of those specimen, you would have noticed something very quickly: they tend to love work, and they don't get tired of it!&lt;br&gt;&lt;br&gt;
However, people surrounding them feel the opposite. Therefore, you end up with a higher turnover surrounding that person. A few reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It gets tiring to discuss a ticket when you know the other person will not back down, will not acknowledge they might be wrong and that, for hours.&lt;/li&gt;
&lt;li&gt;Feeling of demotivation,&lt;/li&gt;
&lt;li&gt;" I haven't progressed as much as I thought in this role",&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Attitude
&lt;/h2&gt;

&lt;p&gt;There is a lot to say about this one, but I will keep it short. It's obvious a**holes don't have a good attitude - that's why they are what they are. A few examples of behaviours:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitor and doubt others,&lt;/li&gt;
&lt;li&gt;Set unrealistic expectations,&lt;/li&gt;
&lt;li&gt;Likes to point out others 'faults in a non-constructive way,&lt;/li&gt;
&lt;li&gt;Reject situations where they do not feel in control,&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reputation
&lt;/h2&gt;

&lt;p&gt;That one is usually forgotten in the articles I've read. If a team/department contains a schmuck, I can promise you that they have a reputation. Because, honestly, who wants to include a team who contains someone like that? I have seen situations where a department totally ignored a team, as unprofessional as it might sound. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In a few words, why you do not want a prick in your team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;turnover of people goes higher,&lt;/li&gt;
&lt;li&gt;productivity can actually go down as people don’t feel appreciated/respected,&lt;/li&gt;
&lt;li&gt;if the company has not taken measures against an asshole just because he does tickets… it says a lot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Have you ever had an a*&lt;em&gt;hole in your team? **Next article, I will share a few tricks on how to deal with the situation :)!&lt;/em&gt;*&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>How to structure your Terraform project</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Mon, 03 Jan 2022 17:07:01 +0000</pubDate>
      <link>https://dev.to/skylerdevops/how-to-structure-your-terraform-project-29ha</link>
      <guid>https://dev.to/skylerdevops/how-to-structure-your-terraform-project-29ha</guid>
      <description>&lt;p&gt;Hi! This article is "Terraform beginners" friendly and for anyone curious about TF best practices. If you've learned anything, it would be awesome to share this article on &lt;a href="https://twitter.com/SkylerDevops"&gt;Twitter&lt;/a&gt; or to react in the comments here :)&lt;br&gt;&lt;br&gt;
This time, we are going to talk about Terraform, more specifically, how to you organise your project/repository. What I'm going to share is "best practices" and how most companies I've seen use. If you do differently, please share!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
|
├── modules                    
│   ├── database               # first module
│   ├── networking             # second module
│   └── ...
└── main.tf
└── version.tf
└── variables.tf
└── outputs.tf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's look in details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modules: This is where you put re-usable code. Let's say you need to call multiple times a database. Stick the configuration in &lt;code&gt;/modules/database&lt;/code&gt;, call it from &lt;code&gt;main.tf&lt;/code&gt; (or whatever name) and that's it, you've got code that's a bit more DRY!&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;main.tf&lt;/code&gt;: The best practice is to have a &lt;code&gt;main.tf&lt;/code&gt; with either your whole configuration (if small), or the core of it and others .tf files (if long).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;version.tf&lt;/code&gt;: This is the file where you put the &lt;code&gt;required_providers&lt;/code&gt; and &lt;code&gt;required_version&lt;/code&gt; versions. More information in this &lt;a href="https://learn.hashicorp.com/tutorials/terraform/provider-versioning#explore-versions-tf"&gt;blog post&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;variables.tf&lt;/code&gt;: This file does differ from companies to companies. Some companies use a variables file specific for each environment, some use this file only for the main generic one and use another directory which I will mention below.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;outputs.tf&lt;/code&gt;: You don't always have outputs from your code. Outputs are what you want to access from somewhere else. Usually used for modules, so that you can access ID's, names and others from the resources you create in there. Example with an EKS cluster: You might want to access the endpoint. You can find outputs by looking at the section called "&lt;a href="https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_cluster#attributes-reference"&gt;Attributes Reference&lt;/a&gt;".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slightly advanced: add a &lt;code&gt;config&lt;/code&gt; folder (the name does not matter).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.
|
├── config                  
│   ├── cli         
│   ├── dev         
│   └── ...
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We will use this example of a cli file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;storage_account:
   tier: Standard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We'll make this works in a few steps:&lt;br&gt;
1) Create a &lt;code&gt;locals&lt;/code&gt; block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;locals {
   config_content = file("./config/${var.environemnt}.yaml")
   config = yamldecode(local.config_content)
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2) Then, in the code you would access by calling &lt;code&gt;local.config.storage_account.tier&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I hope this made sense! I want to talk more about Terraform, as it's one of my favourite tech, feel free to give me questions or suggestions :).&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>devops</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Powershell-inception: how to create a background process that spawns another process to run a script</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Thu, 02 Sep 2021 14:45:05 +0000</pubDate>
      <link>https://dev.to/skylerdevops/powershell-inception-how-to-create-a-background-process-that-spawns-another-process-to-run-a-script-29pm</link>
      <guid>https://dev.to/skylerdevops/powershell-inception-how-to-create-a-background-process-that-spawns-another-process-to-run-a-script-29pm</guid>
      <description>&lt;p&gt;Hello! Today, we're back for a technical article.&lt;br&gt;&lt;br&gt;
If you survived reading the title, then you might be wondering why the heck you would want to do that. And you know what? You're right. This is one of these situations where I &lt;em&gt;really&lt;/em&gt; think you should ask yourself "do I really need to do this".&lt;br&gt;&lt;br&gt;
It is possible to do "powershell inception", however, I have been made aware it might not be the best tool to do it.&lt;br&gt;&lt;br&gt;
Let me explain why this happened, then I will show the code (I know that's what you want).&lt;br&gt;&lt;br&gt;
I was requested to do this at work. We wanted to use the &lt;a href="https://www.jetbrains.com/help/teamcity/agentless-build-step.html"&gt;agentless feature in TeamCity&lt;/a&gt;. The great thing is that, once your build  is doing a call to external service, TC will give your build agent to another build configuration. that's cool. What is less cool is that you need the "external service" to send back a PUT saying "yes, I'm finished". We wanted to use it for Azure services, and well, Azure doesn't send this confirmation back.&lt;br&gt;&lt;br&gt;
So here we are spawning another process that won't get killed when the current process does.&lt;br&gt;&lt;br&gt;
Let's just get started.&lt;br&gt;&lt;br&gt;
We will cut this in 3 scripts:&lt;br&gt;
1) Detached.ps1: Spawning a separate process that is not the child of the process running the script,&lt;br&gt;
2) RunDetached.ps1: that script spawns another process that will itself run a script,&lt;br&gt;
3) Script.ps1: The script that actually does the work you wanted.&lt;/p&gt;

&lt;p&gt;Detached.ps1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;param (
    [string]
    $file,

    [parameter(Mandatory=$true, ValueFromRemainingArguments =$true)]
    $arguments
)

$process = Invoke-CimMethod -Class Win32_Process -MethodName Create -Arguments @{ CurrentDirectory = $location.Path ; CommandLine = "powershell -NonInteractive -ExecutionPolicy Bypass -File $file $arguments "}

if ($null -eq $process.ProcessId)
{
    Write-Warning "Background process did not work"
    Exit 1
}
else
{
    Write-Host "Started background process"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Okay, a lot of things happen here. Let's look a bit closer.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;ValueFromRemainingArguments&lt;/strong&gt; is my latest discovery in Powershell and it is one of the best feature in my opinion. Basically, it will pass the remaining arguments to the next script. Let's say you call &lt;code&gt;./Detached.ps1 -script something.ps1 -whatever stuff -more value&lt;/code&gt;, it will understand that -more value is related to the script you're calling! I encourage you to have a look online, it is a bit tricky to explain.&lt;br&gt;&lt;br&gt;
You don't have to write &lt;code&gt;CurrentDirectory = $location.Path ;&lt;/code&gt;, it just means you will spawn up the process in the current directory you are at, not in C:\Windows\System32 which is the default.&lt;br&gt;&lt;br&gt;
We then checked if the creation was successful or not.  &lt;/p&gt;

&lt;p&gt;RunDetached.ps1&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;param (
    [string]
    $anotherScript,

    [parameter(Mandatory=$true, ValueFromRemainingArguments = $true)]
)
)

function GetMessages {
    ## this will be used to get the messages from the script you will call, otherwise, you won't see anything.

    Get-Event -SourceIdentifier ProcOutput -ErrorAction SilentlyContinue | %{
        if ($_.SourceEventArgs.Data) {
            ##do whatever you want, write-Host or send to file, ...
        }
        Remove-Event -EventIdentifier $_.EventIdentifier
    }
    Get-Event -SourceIdentifier ProcError -ErrorAction SilentlyContinue | %{
        if ($_.SourceEventArgs.Data) {
            ##do whatever you want, write-Host or send to file, ...
        }
        Remove-Event -EventIdentifier $_.EventIdentifier
    }
}

try {
    #process information
    $pinfo = New-Object System.Diagnostics.ProcessStartInfo
    $pinfo.FileName = "powershell.exe"
    $pinfo.RedirectStandardError = $true
    $pinfo.RedirectStandardOutput = $true
    $pinfo.UseShellExecute = $false 
    $pinfo.Arguments = "-ExecutionPolicy Bypass -NonInteractive -File `"$anotherScript`" $arguments" #using `" `" to escape the double quotes

    #Create process object
    $proc = New-Object System.Diagnostics.Process
    $proc.StartInfo = $pinfo

    #Register event handler, allows us to read the streams asynchronously. We need to do that or we might deadlock the child script
    Register-ObjectEvent -InputObject $proc -EventName OutputDataReceived -SourceIdentifier ProcOutput
    Register-ObjectEvent -InputObject $proc -EventName ErrorDataReceived -SourceIdentifier ProcError

    #starting process
    $proc.Start() | Out-Null
    $proc.BeginErrorReadLine()
    $proc.BeginOutputReadLine()

    while (!$proc.WaitForExit(100)) {
        GetMessages
    }
    GetMessages #final one

    if ($proc.ExitCode -ne 0) {
        Exit $proc.ExitCode
    }

}
catch {
    #do the catch however you want
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let me explain a bit more what happens here:&lt;br&gt;
In &lt;strong&gt;GetMessages&lt;/strong&gt;, you streamline the output and the errors to come up so you can see them (by default, you don't, as it is another process). &lt;br&gt;
In the &lt;strong&gt;try&lt;/strong&gt;, we spawn up a new process. &lt;/p&gt;

&lt;p&gt;Then in $anotherScript you just put the Script.ps1 that does the work you actually wanted.&lt;/p&gt;

&lt;p&gt;I hope this helps anyone at some point, this definitely took some time to figure out for me :).&lt;br&gt;&lt;br&gt;
See you next time!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DevOps Mentoring</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Fri, 09 Apr 2021 15:58:01 +0000</pubDate>
      <link>https://dev.to/skylerdevops/mentoring-in-devops-4ile</link>
      <guid>https://dev.to/skylerdevops/mentoring-in-devops-4ile</guid>
      <description>&lt;p&gt;I recently have been looking at mentoring and what I can bring to the table.&lt;br&gt;&lt;br&gt;
I would really appreciate it if you could tell me your opinions and maybe share this blog post with people in your network.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you interested in learning DevOps?&lt;/li&gt;
&lt;li&gt;Do you have any notions of DevOps? &lt;/li&gt;
&lt;li&gt;How do you see DevOps?&lt;/li&gt;
&lt;li&gt;What subjects are you the most interested in?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thank you for your answer!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lessons learned from changing jobs in a difficult time</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Wed, 16 Dec 2020 18:18:32 +0000</pubDate>
      <link>https://dev.to/skylerdevops/lessons-learned-from-changing-jobs-in-a-difficult-time-3de</link>
      <guid>https://dev.to/skylerdevops/lessons-learned-from-changing-jobs-in-a-difficult-time-3de</guid>
      <description>&lt;p&gt;Hello!&lt;br&gt;&lt;br&gt;
Glad to see you again in a new post - or welcome if it's your first time reading me! I thought I would write this column about my new job, how it went and how it is going.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Disclaimer&lt;/strong&gt;: I'm still a DevOps Engineer, I just changed the company I worked for. The previous company was in Media, I now work in FinTech (tech for the financial industry). I have been working in this field for two years now.  &lt;/p&gt;

&lt;h2&gt;
  
  
  #1: Remote
&lt;/h2&gt;

&lt;p&gt;As the situation imposes it, the company is fully remote. In my own opinion, and just mine, this made joining a new company harder. I know many of you will want to go fully remote in the future and it is not my case - at least for now. A mix of office and WFH when "things go back to normal" (whatever that means) would suits me best.&lt;br&gt;&lt;br&gt;
Joining a company, learning new things, it can already be a difficult moment. Add on top of that, the &lt;em&gt;situation&lt;/em&gt;, the tiredness of December, the "English is not my first language" and sprinkle some Imposter Syndrome and you have a great mix.&lt;/p&gt;

&lt;h2&gt;
  
  
  #2: I don't know sh*t
&lt;/h2&gt;

&lt;p&gt;As I've mentioned in another post (&lt;a href="https://dev.to/skylerdevops/kubernetes-how-to-deploy-as-a-beginner-and-by-yourself-20bg"&gt;Kubernetes : how to deploy as a beginner and by yourself&lt;/a&gt;), I had a lot of responsibilities when I was just a junior/graduate. I felt "good" on the moment about it - you need something with Kubernetes? Call &lt;a href="https://twitter.com/SkylerDevops"&gt;SkylerDevops&lt;/a&gt;. You need Terraform? Call &lt;a href="https://twitter.com/SkylerDevops"&gt;SkylerDevops&lt;/a&gt;. (Yes, this is a shameless promo).&lt;br&gt;&lt;br&gt;
Looking back on it, I'm not sure this was right.&lt;br&gt;&lt;br&gt;
I joined this new team, with people who all have more experience than me. And boy.&lt;br&gt;&lt;br&gt;
Oh boy.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It’s only Monday and I’m already tired of struggling at work&lt;br&gt;&lt;br&gt;Help &lt;a href="https://t.co/xVQI1OVj8R"&gt;pic.twitter.com/xVQI1OVj8R&lt;/a&gt;&lt;/p&gt;— Skyler (&lt;a class="mentioned-user" href="https://dev.to/skylerdevops"&gt;@skylerdevops&lt;/a&gt;) &lt;a href="https://twitter.com/SkylerDevops/status/1325783753734696960?ref_src=twsrc%5Etfw"&gt;November 9, 2020&lt;/a&gt;
&lt;/blockquote&gt; &lt;br&gt;&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;So I started my new job last week&lt;br&gt;&lt;br&gt;And boy&lt;br&gt;Oh boy &lt;a href="https://t.co/rAd2pQ5Meh"&gt;pic.twitter.com/rAd2pQ5Meh&lt;/a&gt;&lt;/p&gt;— Skyler (&lt;a class="mentioned-user" href="https://dev.to/skylerdevops"&gt;@skylerdevops&lt;/a&gt;) &lt;a href="https://twitter.com/SkylerDevops/status/1324364069705523202?ref_src=twsrc%5Etfw"&gt;November 5, 2020&lt;/a&gt;
&lt;/blockquote&gt; &lt;br&gt;
This is me. A lot. &lt;br&gt;
I'm currently learning how to use my stress in a good way and not let me turn into mush.  
&lt;h2&gt;
  
  
  #3: Doubts
&lt;/h2&gt;

&lt;p&gt;Related to the previous point, I found myself in a team that was better than at, well, everything. Initially, I struggled with this idea a lot.&lt;br&gt;&lt;br&gt;
&lt;em&gt;"What am I supposed to add"&lt;/em&gt;, &lt;em&gt;"They must be so annoyed with me"&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
Well, let me tell you something. If you arrive in a company, with 2 years experience, and you know more than them, you need to ask some questions (I know, there are &lt;em&gt;exceptions&lt;/em&gt;).&lt;br&gt;&lt;br&gt;
The idea when you start somewhere, especially at the beginning of your career is to learn. Let me repeat.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Learn&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It is not right to impose you to "figure it out" by yourself, with little to no mentoring. Believe me, I have been there. I used to think "I can do this, you see. I'm GOOD". I encourage you to read &lt;a href="https://www.jesuisundev.com/en/the-unbelievable-developers-ego/"&gt;jesuisundev article about developer's ego&lt;/a&gt;, which retraces the story of many new devs with too many responsibilities. I will write my own story one of these days.&lt;br&gt;&lt;br&gt;
Within the first month of working at the company, I have written the best Powershell scripts I have ever written. I have been asked "why" and having to form a coherent answer, not just "she's devops, she knows".&lt;br&gt;&lt;br&gt;
You should learn to depend on your colleague and to not hesitate to send them "hey, I'm not quite sure about this, what do you think?".  &lt;/p&gt;

&lt;p&gt;I'm going to wrap up this blog post here, but I hope you got a few things from this. I would be curious to know other people's experience during these &lt;em&gt;unprecedented&lt;/em&gt; times.&lt;br&gt;&lt;br&gt;
See you next time!&lt;/p&gt;

</description>
      <category>career</category>
    </item>
    <item>
      <title>Juniors and overtime</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Thu, 15 Oct 2020 14:33:54 +0000</pubDate>
      <link>https://dev.to/skylerdevops/juniors-and-overtime-icc</link>
      <guid>https://dev.to/skylerdevops/juniors-and-overtime-icc</guid>
      <description>&lt;p&gt;Junior and overtime seem to go together these days. I see a lot of people encouraging "staying in the office" (well, staying to your desk at home, more likely) because that's how you will get noticed, right?&lt;br&gt;&lt;br&gt;
I realise many people tell me "they don't have a choice". I wanted to write an article about my experience on the subject, being a young person in the field for now 2 years. I would be curious to learn more about people’s point of view before doing so.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;What is your opinion on juniors and overtime? Did you do it for your career? Did it help?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
But mainly... &lt;strong&gt;Do you regret doing it?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Disclaimer: This is a safe space. I am not here to make fun of your experience or belittle you. I am genuinely curious as to what push people to accept repeated overtimes. :) &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Monitoring for Kubernetes: introduction</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Sun, 11 Oct 2020 08:01:46 +0000</pubDate>
      <link>https://dev.to/skylerdevops/monitoring-for-kubernetes-introduction-2ci4</link>
      <guid>https://dev.to/skylerdevops/monitoring-for-kubernetes-introduction-2ci4</guid>
      <description>&lt;p&gt;After the &lt;a href="https://dev.to/skylerdevops/kubernetes-how-to-deploy-as-a-beginner-and-by-yourself-20bg"&gt;last blog post&lt;/a&gt;, you should now have a working Kubernetes cluster!&lt;br&gt;&lt;br&gt;
First of all, congrats!&lt;br&gt;&lt;br&gt;
I'm sure your next question is regarding monitoring, and you would be right. We have a brand new playground, but if something goes wrong, we won't really know &lt;em&gt;why&lt;/em&gt;.&lt;br&gt;&lt;br&gt;
This article will be an introduction to all the tools I would recommend, you won't see code in here (the article would be way too long). The tutorial part will come later.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Application logs
&lt;/h2&gt;

&lt;p&gt;The first type of monitoring would be the application logs. Are requests successful? Who is making that request?&lt;br&gt;&lt;br&gt;
I personally use &lt;a href="https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview"&gt;Azure App insights&lt;/a&gt; (as it's not very pricey plus you have a free tier), but feel free to look at others. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AX17v2pl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://docs.microsoft.com/en-us/azure/application-insights/media/app-insights-dashboards/010-oview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AX17v2pl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://docs.microsoft.com/en-us/azure/application-insights/media/app-insights-dashboards/010-oview.png" alt="application insight dashboard" width="784" height="667"&gt;&lt;/a&gt;&lt;br&gt;
You install a small SDK in your app, and &lt;strong&gt;bam&lt;/strong&gt;, you're sending the telemetry data to Azure. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You can instrument not only the web service application, but also any background components, and the JavaScript in the web pages themselves. The application and its components can run anywhere - it doesn't have to be hosted in Azure.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I know AWS has some logs for apps as well, but I personally haven't used them.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Infrastructure
&lt;/h2&gt;

&lt;p&gt;This part will be seen in more details in future articles.&lt;br&gt;
The usual combination for Kubernetes infra is Prometheus + Grafana + service mesh.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Prometheus + Grafana
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/prometheus/prometheus"&gt;Prometheus&lt;/a&gt; is a data collector, and you can add &lt;strong&gt;alertmanager&lt;/strong&gt; on top to send you alerts when things are not going exactly the way they should. Prometheus will pull the metrics from your system, which will not add load to it.&lt;br&gt;&lt;br&gt;
You can integrate AWS cloud watch metrics to be collected by Prometheus as well, as you will surely be using other AWS services (for example, RDS).&lt;br&gt;&lt;br&gt;
Grafana is the nice UI you usually see with Prometheus tutorials.&lt;br&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--emEjcGLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://external-content.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Flinoxide.com%252Fwp-content%252Fuploads%252F2017%252F09%252Fgrafana-dashboard.png%26f%3D1%26nofb%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--emEjcGLE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://external-content.duckduckgo.com/iu/%3Fu%3Dhttps%253A%252F%252Flinoxide.com%252Fwp-content%252Fuploads%252F2017%252F09%252Fgrafana-dashboard.png%26f%3D1%26nofb%3D1" alt="grafana dashboard" width="800" height="560"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Service mesh
&lt;/h3&gt;

&lt;p&gt;We personally use Linkerd as it was so easy to install (2h top), and we didn't need any of the 'fancy' ISTIO was promising.&lt;br&gt;&lt;br&gt;
By default, Linkerd stores metrics internally in prometheus style, on an internal Prometheus database. It is easy to add your own centralised Prometheus server, which is something you might want to consider as Linkerd only keeps metrics for 6hours (&lt;a href="https://linkerd.io/2/tasks/exporting-metrics/"&gt;more here&lt;/a&gt; ).&lt;br&gt;&lt;br&gt;
You can as well add a standalone grafana to it.&lt;br&gt;&lt;br&gt;
If you need to change the default configuration, it is possible, just a tad more work (I wanted to mention it, although I wouldn't expect first-time beginners to do this!).&lt;br&gt;&lt;br&gt;
I will as well add that it is a quite &lt;em&gt;new&lt;/em&gt; product (the first PR was in December 2017) so there are some things missing - or that could be done better. The team is quite helpful and quick to answer, so don't hesitate to ping them if needed.&lt;br&gt;&lt;br&gt;
With all those, you should have all the keys to identify problems related to your cluster. Obviously, if you haven't worked with Kubernetes before, you will find yourself looking at logs for a long time - and this is &lt;strong&gt;fine&lt;/strong&gt;!  &lt;/p&gt;

&lt;p&gt;I realise this is a very short article - and to be honest, my goal is not to re-explain documentation that can be found online (for example, Linkerd has a whole page explaining how they work).&lt;br&gt;&lt;br&gt;
I intend to write a couple of article regarding monitoring (alertmanager, for example). Is there anything that you would like more details on? 😊&lt;br&gt;&lt;br&gt;
See you in the next article!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kubernetes : how to deploy as a beginner and by yourself</title>
      <dc:creator>Skyler</dc:creator>
      <pubDate>Tue, 29 Sep 2020 19:48:01 +0000</pubDate>
      <link>https://dev.to/skylerdevops/kubernetes-how-to-deploy-as-a-beginner-and-by-yourself-20bg</link>
      <guid>https://dev.to/skylerdevops/kubernetes-how-to-deploy-as-a-beginner-and-by-yourself-20bg</guid>
      <description>&lt;p&gt;Kubernetes is one of those things that is very easy if simplified correctly but can be a tad hard once you start looking at the details. Do not worry about details right now, try to get something going.&lt;br&gt;&lt;br&gt;
Let's get to it.&lt;br&gt;&lt;br&gt;
Kubernetes is one of those things that is very easy if simplified correctly but can be a tad hard once you start looking at the details. Do not worry about details right now, try to get something going, and believe me, with time and experience, everything will make sense. :)&lt;br&gt;&lt;br&gt;
A couple of basics "reminders" first. I will not bore you with the definition, I assume you know what it is.&lt;br&gt;
Kubernetes stands on multiple "core" resources. You can add others (as StatefulSets, LimitRange, …) but with those, you will have something working :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Services&lt;/strong&gt;. It is basically what defines access to pods,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployments&lt;/strong&gt;: you declare the pods and the replicas you want (how many pods you want),&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ingress&lt;/strong&gt;: manage how to access your services in a cluster,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ingress Controller&lt;/strong&gt;: I highly recommend Ingress Nginx Controller,&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Namespaces&lt;/strong&gt;: Environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of that, you would add DNS names (route53 …) and certificates.&lt;/p&gt;

&lt;p&gt;To deploy, you would follow those "general" steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the cluster,&lt;/li&gt;
&lt;li&gt;Create the Ingress controller and load balancer, link the DNS/certificates,&lt;/li&gt;
&lt;li&gt;Write the resources needed (deployments, ingress, …), those "needs" to be cut by environments and applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this series, we will be focusing on EKS.&lt;/p&gt;
&lt;h2&gt;
  
  
  Create the cluster:
&lt;/h2&gt;

&lt;p&gt;You can create a cluster in various ways, with the console, CloudFormation and Terraform. I have tried those 3 different ways. I started with the Cloudformation, then went on manual then Terraform. I am someone that needs to understand how something works, therefore the need to do manually before going to TF.&lt;br&gt;&lt;br&gt;
I followed the guide of AWS &lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html"&gt;https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html&lt;/a&gt; and can only recommend it. I do know I struggled at the beginning, here are a few things I remembered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need to install everything in the same VPC.&lt;/li&gt;
&lt;li&gt;At the time, totally private clusters were not possible. I think they are working on this, but something will always be open. I reckon it was because the instances need to register they are Kubernetes. But that was in v1.10. The situation might have changed.&lt;/li&gt;
&lt;li&gt;If something does not work, try the "let me open too many ports, check it works, then restrict gradually".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best thing I can recommend is to try to do it a couple of times. If you struggle, twitter has a big kubernetes community. Feel free to contact me as well (&lt;a href="https://twitter.com/SkylerDevops"&gt;@SkylerDevops&lt;/a&gt; or in the comments here).&lt;/p&gt;
&lt;h2&gt;
  
  
  Create the Ingress Controller and Load balancer
&lt;/h2&gt;

&lt;p&gt;To be honest, this guide (&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes"&gt;https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes&lt;/a&gt; [you don't need the cert-manager]) is really straight forward and easy to follow.&lt;br&gt;&lt;br&gt;
An Ingress Controller basically gets the request someone places and send it to the correct services/deployment. I would suggest creating the nginx ingress controller, then the load balancer. The LB can take some time to appear in AWS.&lt;br&gt;
Here is the NLB version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kind: Service
apiVersion: v1
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: #{Certificate}
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "ssl"
spec:
  externalTrafficPolicy: Cluster
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: https
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Write the resources needed
&lt;/h2&gt;

&lt;p&gt;I will give you the template I am currently using. Feel free to tweak it.&lt;br&gt;
With time, you might look into moving the environment variables to a ConfigMap. Envs are not the "safest" way to do, but they do the job good enough.&lt;br&gt;
You don't need to use the same ports than me. However, you will need to expose those ports in your Dockerfile.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: apps/v1
kind: Deployment
metadata:
  name: #{Name}
  namespace: #{Namespace}
spec:
  replicas: 2
  selector:
    matchLabels:
      app: #{Name}
  template:
    metadata:
      labels:
        app: #{Name}
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - #{Name}
      containers:
        - name: #{Name}
          image: #{AWSAccount}.dkr.ecr.#{Region}.amazonaws.com/#{Name}:#{Number}
          env:
            - name: "something"
              value: "something"
          ports:
            - containerPort: 80
              name: #{ContainerPort}


---
apiVersion: v1
kind: Service
metadata:
  name: #{Name}-svc
  namespace: #{Namespace}
spec:
  ports:
    - port: 8080
      targetPort: 80
  selector:
    app: #{Name}
  type: NodePort

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: #{Name}
  namespace: #{Namespace}
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
    - host: #{Host}
      http:
        paths:
          - path: #{Path}(/|$)(.*)
            backend:
              serviceName: #{Name}-svc
              servicePort: 8080

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's basically it for a beginner-friendly EKS cluster!&lt;br&gt;&lt;br&gt;
I would as well suggest installing the UI dashboard (&lt;a href="https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html"&gt;https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html&lt;/a&gt;).&lt;br&gt;&lt;br&gt;
Have fun!&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>eks</category>
      <category>aws</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
