<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Armory Docs – QuickStart for Deploying to AWS from Spinnaker</title><link>/continuous-deployment/installation/guide/quickstart/</link><description>Recent content in QuickStart for Deploying to AWS from Spinnaker on Armory Docs</description><generator>Hugo -- gohugo.io</generator><atom:link href="/continuous-deployment/installation/guide/quickstart/index.xml" rel="self" type="application/rss+xml"/><item><title>Continuous-Deployment: AWS QuickStart Step 1</title><link>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-1/</guid><description>
&lt;p>The AWS QuickStart walks you through configuring your Spinnaker instance hosted on AWS to deploy to AWS.&lt;/p>
&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>
This guide assumes that Spinnaker is installed with Halyard, not Operator.
&lt;/div>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;p>Before you start, ensure that you complete the following requirements:&lt;/p>
&lt;ul>
&lt;li>Have your AWS Account number available in a text editor*&lt;/li>
&lt;li>Have Minnaker installed on AWS. For more information about Minnaker, see &lt;a href="https://github.com/armory/minnaker">Minnaker&lt;/a>.&lt;/li>
&lt;li>SSH into your Minnaker Instance with AWS keys&lt;/li>
&lt;/ul>
&lt;p>Need help setting this up? - For a guided tutorial, watch the &lt;strong>Video Walkthrough&lt;/strong> at the bottom of this document.&lt;/p>
&lt;h2 id="prepare-aws-by-creating-roles-permissions-and-trust">Prepare AWS by creating Roles, Permissions, and Trust&lt;/h2>
&lt;figure>
&lt;img src="/images/AWS-Roles-Spinnaker.png"/>
&lt;/figure>
&lt;h3 id="in-this-step-we-configure-2-aws-roles-to-enable-spinnaker-to-deploy-to-your-aws-environment">In this step, we configure 2 AWS Roles to enable Spinnaker to deploy to your AWS environment&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Create - &lt;strong>&amp;ldquo;Spinnaker-Managed-Role&amp;rdquo;&lt;/strong> in AWS Console -&amp;gt; IAM -&amp;gt; Roles.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Bind &lt;strong>&amp;ldquo;PowerUserAccess&amp;rdquo;&lt;/strong> to &lt;strong>&amp;ldquo;Spinnaker-Managed-Role&amp;rdquo;&lt;/strong> in &lt;strong>Permissions&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&amp;ldquo;PassRole-and-Certificate&amp;rdquo;&lt;/strong> (inline policy for &lt;strong>Spinnaker-Managed-Role&lt;/strong>):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Version&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;2012-10-17&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Statement&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Action&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;iam:ListServerCertificates&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;iam:PassRole&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Resource&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;*&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Effect&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Allow&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Create - &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Bind &lt;strong>&amp;ldquo;PowerUserAccess&amp;rdquo;&lt;/strong> to &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&amp;ldquo;BaseIAM-PassRole&amp;rdquo;&lt;/strong> (Create as inline policy on &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong>). You must replace [YOUR_AWS_ACCOUNT_ID] with your actual AWS account id.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Version&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;2012-10-17&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Statement&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Effect&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Allow&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Action&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;ec2:DescribeAvailabilityZones&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;ec2:DescribeRegions&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Resource&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;*&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Action&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;sts:AssumeRole&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Resource&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;arn:aws:iam::[YOUR_AWS_ACCOUNT_ID]:role/Spinnaker-Managed-Role&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Effect&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Allow&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Spinnaker-Managed-Role&lt;/strong> -&amp;gt; &lt;strong>Trust relationship&lt;/strong>&lt;/p>
&lt;p>Now, &lt;strong>&amp;ldquo;Spinnaker-Managed-Role&amp;rdquo;&lt;/strong> must have Trust relationship with &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong>. You must replace [YOUR_AWS_ACCOUNT_ID] with your actual AWS account id.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Version&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;2012-10-17&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Statement&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Effect&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;Allow&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Principal&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;AWS&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;arn:aws:iam::[YOUR_AWS_ACCOUNT_ID]:role/Spinnaker-Managing-Role&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Service&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;ecs.amazonaws.com&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;application-autoscaling.amazonaws.com&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;ecs-tasks.amazonaws.com&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;ec2.amazonaws.com&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">&amp;#34;Action&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;sts:AssumeRole&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h3 id="bind-spinnaker-managing-role-to-minnaker-instance-in-aws-console">Bind &amp;ldquo;Spinnaker-Managing-Role&amp;rdquo; to Minnaker Instance in AWS Console&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Locate your Minnaker EC2 instance in the AWS Console and click &lt;strong>Action&lt;/strong> &amp;gt; &lt;strong>Instance Settings&lt;/strong> &amp;gt; &lt;strong>Attach Replace IAM Role&lt;/strong>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>From the dropdown menu, find &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong> and click &lt;strong>Apply&lt;/strong> to bind the Role to the Minnaker Instance.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="login-to-your-minnaker-ec2-instance-with-ssh-outside-of-halyard-container">Login to your Minnaker EC2 Instance with SSH (Outside of Halyard Container)&lt;/h2>
&lt;h3 id="verify-roles-are-configured-correctly">Verify Roles are configured correctly&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>Download the aws-cli:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo snap install aws-cli --classic
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Verify &lt;strong>&amp;ldquo;Spinnaker-Managing-Role&amp;rdquo;&lt;/strong>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>aws sts get-caller-identity
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns output similar to the following output:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>ubuntu:~$ aws sts get-caller-identity
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;UserId&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;AROA3SQXSP.............7893f355&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;Account&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;[YOUR_AWS_ACCOUNT_ID]&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;Arn&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;arn:aws:sts::[YOUR_AWS_ACCOUNT_ID]:assumed-role/Spinnaker-Managing-Role/i-0e.........7893f355&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Verify that Spinnaker Managing Role can Assume Managing Role:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>aws sts assume-role --role-arn arn:aws:iam::&lt;span style="color:#ff79c6">[&lt;/span>YOUR_AWS_ACCOUNT_ID&lt;span style="color:#ff79c6">]&lt;/span>:role/Spinnaker-Managed-Role --role-session-name &lt;span style="color:#8be9fd;font-style:italic">test&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns output similar to the following output:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>ubuntu:~$ aws sts assume-role --role-arn arn:aws:iam::&lt;span style="color:#ff79c6">[&lt;/span>YOUR_AWS_ACCOUNT_ID&lt;span style="color:#ff79c6">]&lt;/span>:role/Spinnaker-Managed-Role --role-session-name &lt;span style="color:#8be9fd;font-style:italic">test&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;Credentials&amp;#34;&lt;/span>: &lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;Expiration&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;2020-01-09T01:03:05Z&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;AccessKeyId&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;AWS_ACCESS_KEY&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;SecretAccessKey&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;AWS_SECRET_ACCESS_KEY&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;SessionToken&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;FwoGZXIvYXdzEGEaDEyTECcALWUjAgy0GyKoAZ5PapC1qqFwN55X0vRISdtZh19mR3V9p3i5dGZugt3FQ4DNOamVgIG82I1qaspn83aBefdbpUtznN9fJxwPNoRhYinVgIXGdsTWnBuQ57U7s/cDoHosvV5+J3oZj8ffjLInzsI05IrRBiOTmqU3caEP/e+6N5nzHg/9+aS6TCWjCIzjL0mHtclBBQ7k/dijrg/5vTVFh8UGakcJL3SV6gaCHj0k6BUzEii529nwBTItq6/QISV8wfGNLQJOPDB5P3zoQkHjkpoWCEh1p0oc4hEwki8F7NutXNrg14W+&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">}&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;AssumedRoleUser&amp;#34;&lt;/span>: &lt;span style="color:#ff79c6">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;AssumedRoleId&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;AROA3SQXSP6SGOWFHHJ7B:test&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f1fa8c">&amp;#34;Arn&amp;#34;&lt;/span>: &lt;span style="color:#f1fa8c">&amp;#34;arn:aws:sts::[YOUR_AWS_ACCOUNT_ID]:assumed-role/Spinnaker-Managed-Role/test&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h2 id="congratulations">Congratulations&lt;/h2>
&lt;p>You have completed the 1st step in setting up the Spinnaker AWS Provider. For Step 2, see &lt;a href="/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-2/">AWS Quick Start Step 2&lt;/a>.&lt;/p></description></item><item><title>Continuous-Deployment: AWS QuickStart Step 2</title><link>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-2/</guid><description>
&lt;p>Need help setting this up? - For a guided tutorial, see the &lt;a href="#aws-quickstart-step-2-video">video walkthrough&lt;/a> at the bottom of this page.&lt;/p>
&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>
This guide assumes that Spinnaker is installed with Halyard, not Operator.
&lt;/div>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;p>Before you start, ensure that have completed the following requirements:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Finish &lt;a href="/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-1/">AWS QuickStart Step 1&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Have access to the Kubernetes cluster you would like to deploy to, and you need cluster admin permissions on that Kubernetes cluster.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Have &lt;code>kubectl&lt;/code> installed on your local workstation have the context set to the EKS cluster you want to deploy to.&lt;/p>
&lt;p>Running the following command from your local machine should return the namespaces for the EKS cluster you want to deploy to.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl get ns
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Have a way to copy files from your local workstation to the Minnaker VM, such as &lt;code>scp&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="first-configure-the-aws-provider-for-spinnaker">First: Configure the AWS Provider for Spinnaker&lt;/h2>
&lt;figure>
&lt;img src="/images/AWS-Deploy-Spinnaker.png"/>
&lt;/figure>
&lt;h3 id="adding-aws-role-to-spinnaker-through-halyard-configuration--note-aws-account-name-is-within-spinnaker-and-will-appear-in-ui">Adding AWS Role to Spinnaker through Halyard configuration. Note AWS account name is within Spinnaker and will appear in UI&lt;/h3>
&lt;p>&lt;strong>NOTE&lt;/strong>: You &lt;strong>MUST&lt;/strong> configure the regions that Spinnaker can deploy to in the &lt;code>hal&lt;/code> command below.&lt;/p>
&lt;p>The Account name is arbitrary and should be a name that is an identifiable. The name is visable in Spinnaker UI. The following examples use &lt;code>aws-dev-1&lt;/code>.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Set environment variables for halyard command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8be9fd;font-style:italic">export&lt;/span> &lt;span style="color:#8be9fd;font-style:italic">AWS_ACCOUNT_NAME&lt;/span>&lt;span style="color:#ff79c6">=&lt;/span>aws-dev-1 &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span>&lt;span style="color:#8be9fd;font-style:italic">export&lt;/span> &lt;span style="color:#8be9fd;font-style:italic">ACCOUNT_ID&lt;/span>&lt;span style="color:#ff79c6">=[&lt;/span>YOUR_ACCOUNT_ID&lt;span style="color:#ff79c6">]&lt;/span> &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span>&lt;span style="color:#8be9fd;font-style:italic">export&lt;/span> &lt;span style="color:#8be9fd;font-style:italic">ROLE_NAME&lt;/span>&lt;span style="color:#ff79c6">=&lt;/span>role/Spinnaker-Managed-Role
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Add the AWS provider account to Spinnaker:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal config provider aws account add &lt;span style="color:#f1fa8c">${&lt;/span>&lt;span style="color:#8be9fd;font-style:italic">AWS_ACCOUNT_NAME&lt;/span>&lt;span style="color:#f1fa8c">}&lt;/span> &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --account-id &lt;span style="color:#f1fa8c">${&lt;/span>&lt;span style="color:#8be9fd;font-style:italic">ACCOUNT_ID&lt;/span>&lt;span style="color:#f1fa8c">}&lt;/span> &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --assume-role &lt;span style="color:#f1fa8c">${&lt;/span>&lt;span style="color:#8be9fd;font-style:italic">ROLE_NAME&lt;/span>&lt;span style="color:#f1fa8c">}&lt;/span> &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --regions us-east-1,us-west-2
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Enable the AWS provider:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal config provider aws &lt;span style="color:#8be9fd;font-style:italic">enable&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Add an account to the ECS provider:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal config provider ecs account add ecs-account-name --aws-account aws-dev-1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Enable the ECS provider:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal config provider ecs &lt;span style="color:#8be9fd;font-style:italic">enable&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>Apply the new configurations and redeploy Spinnaker:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal deploy apply
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;/ol>
&lt;h3 id="tag-aws-subnets-for-spinnaker-auto-discovery">Tag AWS Subnets for Spinnaker Auto Discovery&lt;/h3>
&lt;p>If subnets do not appear in Deck (the Spinnaker UI), perform AWS Subnet tagging. &amp;ldquo;example-purpose&amp;rdquo; should be a descriptor of the subnet and will appear in the Spinnaker UI dropdown.&lt;/p>
&lt;p>For more information about AWS Subnet tagging, see &lt;a href="/continuous-deployment/armory-admin/aws/aws-subnets-configure/">AWS: Configuring AWS Networking&lt;/a>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Key Value
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>immutable_metadata {&amp;#34;purpose&amp;#34;:&amp;#34;example-purpose&amp;#34;}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>Replace &lt;code>example-purpose&lt;/code> with your subnet identifier. The subnet shows up in Deck as a dropdown option.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Example:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Key: &lt;code>immutable_metadata&lt;/code>&lt;/li>
&lt;li>Value: &lt;code>{&amp;quot;purpose&amp;quot;:&amp;quot;us-west-2-dev-subnet&amp;quot;}&lt;/code>&lt;/li>
&lt;/ul>
&lt;h2 id="second-connect-spinnaker-to-an-amazon-eks-cluster">Second: Connect Spinnaker to an Amazon EKS cluster&lt;/h2>
&lt;p>For the tasks in this section, complete them on your local workstation, &lt;em>not from the Minnaker VM&lt;/em>.&lt;/p>
&lt;figure>
&lt;img src="/images/Spinnaker-to-EKS.png"/>
&lt;/figure>
&lt;h2 id="using-spinnaker-tools">Using spinnaker-tools&lt;/h2>
&lt;p>spinnaker-tools is a wrapper that performs a series of &lt;code>kubectl&lt;/code> commands for you to automate creating a service account.&lt;/p>
&lt;p>On your local workstation (where you currently have access to Kubernetes), download the spinnaker-tools binary:&lt;/p>
&lt;p>If you&amp;rsquo;re on a Mac:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>curl -L https://github.com/armory/spinnaker-tools/releases/download/0.0.7/spinnaker-tools-darwin -o spinnaker-tools
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod +x spinnaker-tools
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you&amp;rsquo;re on Linux:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>curl -L https://github.com/armory/spinnaker-tools/releases/download/0.0.7/spinnaker-tools-linux -o spinnaker-tools
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>chmod +x spinnaker-tools
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then, run it:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>./spinnaker-tools create-service-account
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Provide the following information:&lt;/p>
&lt;ul>
&lt;li>Select the Kubernetes cluster to deploy to (this helps if you have multiple Kubernetes clusters configured in your local kubeconfig)&lt;/li>
&lt;li>Select the namespace (choose the &lt;code>kube-system&lt;/code> namespace, or select some other namespace or select the option to create a new namespace). This is the namespace that the Kubernetes ServiceAccount will be created in.&lt;/li>
&lt;li>Enter a name for the service account. You can use the default &lt;code>spinnaker-service-account&lt;/code>, or enter a new (unique) name.&lt;/li>
&lt;li>Enter a name for the output file. You can use the default &lt;code>kubeconfig-sa&lt;/code>, or you can enter a unique name. You should use something that identifies the Kubernetes cluster you are deploying to (for example, if you are setting up Spinnaker to deploy to your us-west-2 dev cluster, then you could do something like &lt;code>kubeconfig-us-west-2-dev&lt;/code>)&lt;/li>
&lt;/ul>
&lt;p>&lt;code>spinnaker-tools&lt;/code> uses this information to create the service account (and namespace, if applicable) and the ClusterRoleBinding. It then creates the kubeconfig file with the specified name.&lt;/p>
&lt;p>Copy this file from your local workstation to your Minnaker VM. You can use &lt;code>scp&lt;/code> or some other copy mechanism.&lt;/p>
&lt;h2 id="add-the-kubeconfig-to-spinnakers-halyard-configuration">Add the kubeconfig to Spinnaker&amp;rsquo;s Halyard configuration&lt;/h2>
&lt;p>On the Minnaker VM, move or copy the file to &lt;code>/etc/spinnaker/.hal/.secret&lt;/code>. Make sure you are creating a new file, not overwriting an existing one.&lt;/p>
&lt;p>Then, run this command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal config provider kubernetes account add kubeconfig-sa-eks &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --provider-version v2 &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --kubeconfig-file /home/spinnaker/.hal/.secret/kubeconfig-sa-eks &lt;span style="color:#f1fa8c">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f1fa8c">&lt;/span> --only-spinnaker-managed &lt;span style="color:#8be9fd;font-style:italic">true&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Note:&lt;/p>
&lt;ul>
&lt;li>Update the &lt;code>--kubeconfig-file&lt;/code> path with the correct filename. Note that the path will be &lt;code>/home/spinnaker/...&lt;/code> &lt;strong>not&lt;/strong> &lt;code>/etc/spinnaker/...&lt;/code>. This is because this command runs inside the Halyard container, which has local volumes mounted into it.&lt;/li>
&lt;/ul>
&lt;h2 id="apply-your-changes">Apply your changes&lt;/h2>
&lt;p>Run this command to apply your changes to Spinnaker:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>hal deploy apply --wait-for-completion
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="congratulations">Congratulations&lt;/h2>
&lt;p>You have configured the Spinnaker AWS Provider and Kubernetes Account for EKS. You can now deploy to EC2, ECS, Fargate, and EKS. Lets build some pipelines in &lt;a href="/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-3/">AWS QuickStart Step 3&lt;/a>.&lt;/p></description></item><item><title>Continuous-Deployment: AWS QuickStart Step 3</title><link>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-3/</guid><description>
&lt;p>Need help setting this up? - For a guided tutorial, see the &lt;a href="#aws-quickstart-step-3-video">video walkthrough&lt;/a> at the bottom of this page.&lt;/p>
&lt;div class="alert alert-primary" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>
This guide assumes that Spinnaker is installed with Halyard, not Operator.
&lt;/div>
&lt;h2 id="prerequisite">Prerequisite&lt;/h2>
&lt;p>Before you start, ensure that have completed the following requirements:&lt;/p>
&lt;ul>
&lt;li>Finish &lt;a href="/continuous-deployment/installation/guide/quickstart/armory-spinnaker-quickstart-2/">AWS QuickStart Step 2&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="deploy-to-ec2-and-eks">Deploy to EC2 and EKS&lt;/h2>
&lt;p>Before you start, you need to log in to Deck, the Spinnaker UI.&lt;/p>
&lt;p>You can access it by navigating to the Public IP address of your instance in a browser. You can get the Public IP address from your AWS Console.&lt;/p>
&lt;p>If you have forgotten the password to your Minnaker instance you can recover your password with the following steps:&lt;/p>
&lt;ol>
&lt;li>SSH to the Minnaker host VM. Do not exec into the Halyard pod though.&lt;/li>
&lt;li>Run the following command:&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cat /etc/spinnaker/.hal/.secret/spinnaker_password
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The command returns the password for Minnaker.&lt;/p>
&lt;p>After you log in to Deck, perform the following steps:&lt;/p>
&lt;ol>
&lt;li>Create an Application called &lt;strong>QuickStart&lt;/strong> by clicking &amp;ldquo;&lt;strong>Applications&lt;/strong>&amp;rdquo; tab &amp;gt; &amp;ldquo;&lt;strong>Action&lt;/strong>&amp;rdquo; (top right) &amp;gt; &amp;ldquo;&lt;strong>Create New App&lt;/strong>&amp;rdquo; with the following Settings&lt;/li>
&lt;/ol>
&lt;figure>
&lt;img src="/images/New-App.png"/>
&lt;/figure>
&lt;ol start="2">
&lt;li>
&lt;p>Go into Application &lt;strong>QuickStart&lt;/strong> and create your first pipeline. This pipeline will deploy to an EC2 instance.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Click &lt;strong>Add Stage +&lt;/strong> and search for a &lt;strong>Bake&lt;/strong> stage to bake an AMI.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Select the AWS Region you want to deploy to.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Click &lt;strong>Add Server Group&lt;/strong> and configure basic AMI bake settings: Account, Region, Subnet, Instance Type, and AWS SSH key. Note: For more information about setting up your Bake Stage, please check out &lt;a href="/continuous-deployment/armory-admin/aws/packer/#configuring-aws-networks">configuring AWS networks&lt;/a>, which includes guides about requirements regarding subnet configuration.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Click &lt;strong>Done&lt;/strong> and then &lt;strong>Save Changes&lt;/strong> in the bottom right corner.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Click &lt;strong>Add Stage&lt;/strong> and add another stage called &lt;strong>Deploy&lt;/strong> for AWS EC2.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Click the &amp;ldquo;&lt;strong>Back to Execution&lt;/strong>&amp;rdquo; button on the top left of the Pipeline Name&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Run your Pipeline and Validate! The end result will be an Auto Scaling Group build within your AWS subnet.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="ec2-pipeline-and-deployment">EC2 Pipeline and deployment&lt;/h2>
&lt;figure>
&lt;img src="/images/Deploy-to-EC2.png"/>
&lt;/figure>
&lt;p>&lt;strong>Note&lt;/strong> - Don&amp;rsquo;t mind the red dot in the Bake Stage. It&amp;rsquo;s an informational tip suggesting a CI Trigger should be configured for a Bake Stage to ensure you are deploying the latest code and artifacts.&lt;/p>
&lt;figure>
&lt;img src="/images/AutoScale-Group.png"/>
&lt;/figure>
&lt;h2 id="eks-deployment">EKS deployment&lt;/h2>
&lt;p>&lt;strong>Note&lt;/strong> As a prerequisite, create a &amp;ldquo;quickstart&amp;rdquo; namespace in EKS:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl create ns quickstart
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;figure>
&lt;img src="/images/Deploy-Service-EKS.png"/>
&lt;/figure>
&lt;ol>
&lt;li>Navigate to the pipeline page within your &lt;strong>QuickStart&lt;/strong> application.&lt;/li>
&lt;li>Click &lt;strong>Create&lt;/strong> button in top right corner.&lt;/li>
&lt;li>Give the name &lt;strong>Deploy-to-EKS&lt;/strong>.&lt;/li>
&lt;li>Click &lt;strong>Add Stage&lt;/strong> and Search / Select &lt;strong>Deploy(Manifest)&lt;/strong>.&lt;/li>
&lt;li>Select the &lt;strong>kubeconfig-sa-eks&lt;/strong> account created in Step 2.&lt;/li>
&lt;li>Select the &lt;strong>quickstart&lt;/strong> namespace.&lt;/li>
&lt;li>Scroll down and paste in the &lt;strong>Deployment&lt;/strong> yaml below.&lt;/li>
&lt;li>Click &lt;strong>Save Changes&lt;/strong> in the bottom right corner.&lt;/li>
&lt;li>Now create another stange after the &lt;strong>Deployment&lt;/strong> stage. Again select &lt;strong>Deploy(Manifest)&lt;/strong>.&lt;/li>
&lt;li>Select the &lt;strong>kubeconfig-sa-eks&lt;/strong> account and the &lt;strong>quickstart&lt;/strong> namespace for deployment.&lt;/li>
&lt;li>Scroll down and paste in the &lt;strong>Service&lt;/strong> yaml below.&lt;/li>
&lt;li>Click &lt;strong>Save Changes&lt;/strong>.&lt;/li>
&lt;/ol>
&lt;h2 id="time-to-run-your-eks-pipeline-and-validate">Time to run your EKS pipeline and validate&lt;/h2>
&lt;ol>
&lt;li>Click back to the pipeline page using the &lt;strong>Back to Executions&lt;/strong> to the left of the pipeline name.&lt;/li>
&lt;li>Click on the &lt;strong>Start Manual Execution&lt;/strong> on the new pipeline. Then, click &lt;strong>Execution Details&lt;/strong> to see pipeline in action.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Deployment yaml definition&lt;/strong>&lt;/p>
&lt;p>Copy and paste the following example into the text field in the 1st Deploy Manifest stage.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: apps/v1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: Deployment
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">replicas&lt;/span>: &lt;span style="color:#bd93f9">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">matchLabels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">run&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">template&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">run&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">containers&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">image&lt;/span>: nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ports&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">containerPort&lt;/span>: &lt;span style="color:#bd93f9">80&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Service yaml for last Deployment Stage&lt;/strong>&lt;/p>
&lt;p>Copy and paste the following example into the text field in the 2nd Deploy Manifest stage.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">apiVersion&lt;/span>: v1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">kind&lt;/span>: Service
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">metadata&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">labels&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">run&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">name&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#ff79c6">spec&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">ports&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> - &lt;span style="color:#ff79c6">port&lt;/span>: &lt;span style="color:#bd93f9">80&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">protocol&lt;/span>: TCP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">targetPort&lt;/span>: &lt;span style="color:#bd93f9">80&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">selector&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">run&lt;/span>: my-nginx
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ff79c6">type&lt;/span>: LoadBalancer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="validation-in-eks-and-in-spinnaker">Validation in EKS and in Spinnaker&lt;/h2>
&lt;ol>
&lt;li>In EKS run the following commands to see nginx pods being created: &lt;code>kubectl get pods -n quickstart&lt;/code>.&lt;/li>
&lt;li>In Deck, the Spinnaker UI, navigate to the &lt;strong>Applications&lt;/strong> page and see the deployment and containers there.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>Under &lt;strong>Load Balancers&lt;/strong>, click on Apps to view the status of your service.&lt;/li>
&lt;li>In the Status section on the right of the page, locate the Ingress address that was created to allow public access to your new deployment.&lt;/li>
&lt;/ul>
&lt;ol start="3">
&lt;li>Copy and paste the FQDN from the load balancer status section into a web browser to test the NGINX landing page.&lt;/li>
&lt;/ol>
&lt;figure>
&lt;img src="/images/kubectl-validate.png"/>
&lt;/figure>
&lt;figure>
&lt;img src="/images/Deployment-Validation.png"/>
&lt;/figure>
&lt;h2 id="congratulations">Congratulations&lt;/h2>
&lt;p>You completed the QuickStart exercise! You can now deploy to AWS using Spinnaker. What&amp;rsquo;s Next?&lt;/p>
&lt;ul>
&lt;li>Connect your Spinnaker instance to your repositories / artifacts (Github, Sonatype, Artifactory, DockerHub, ECR, GCR, etc).&lt;/li>
&lt;li>Build in a automated trigger from your CI systems (Jenkins, Bamboo, CircleCI, TravisCI, Nexus, Git, Generic Webhook, etc).&lt;/li>
&lt;li>Integrate with 3rd party systems (OKTA, Sumo Logic, Splunk, Datadog, Newrelic, Slack, etc).&lt;/li>
&lt;li>Integrate with DevSecOps tools (Xray, ChaosMonkey, Artifactory, etc).&lt;/li>
&lt;/ul>
&lt;p>To get expert help in any of the areas above you can contact Armory.io at &lt;a href="https://go.armory.io/needs-analysis">https://go.armory.io/needs-analysis&lt;/a>&lt;/p></description></item></channel></rss>