<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Spinnaker – Providers</title>
    <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/</link>
    <description>Recent content in Providers on Spinnaker</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Amazon ECS</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/ecs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/ecs/</guid>
      <description>
        
        
        &lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to an 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html#service_concepts&#34; target=&#34;_blank&#34;&gt;Amazon ECS service&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;There are two ways to specify server group settings for Amazon ECS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inputs (default)&lt;/strong&gt;:
Specify the container image, resource limits, and other settings needed to create an 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html&#34; target=&#34;_blank&#34;&gt;Amazon ECS task definition&lt;/a&gt;
 and 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html#service_concepts&#34; target=&#34;_blank&#34;&gt;service&lt;/a&gt;
 directly in the server group. This option supports deploying one container per Amazon ECS task (equivalent to a Spinnaker &amp;ldquo;instance&amp;rdquo;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Artifact (supported as of 1.15.0)&lt;/strong&gt;:
Specify a pipeline artifact to use as an Amazon ECS task definition for the service. The artifact should be a JSON file in the format of an Amazon ECS 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html&#34; target=&#34;_blank&#34;&gt;Register Task Definiton request&lt;/a&gt;
. This option also requires that you specify &lt;code&gt;containerName&lt;/code&gt;:&lt;code&gt;imageDescription&lt;/code&gt; mappings for each image in your pipeline that you want to be deployed within the service. You can deploy multiple containers (up to 10) per Amazon ECS task using this option.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to an Amazon ECS 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_run_task.html&#34; target=&#34;_blank&#34;&gt;task&lt;/a&gt;
.  Amazon ECS services manage tasks to ensure desired capacity is reached.&lt;/p&gt;
&lt;h3 id=&#34;cluster&#34;&gt;Cluster&lt;/h3&gt;
&lt;p&gt;An 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_clusters.html&#34; target=&#34;_blank&#34;&gt;Amazon ECS cluster&lt;/a&gt;
 does not map to any core Spinnaker concept.  You can choose what cluster you deploy to in your deploy stage parameters.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys a new Amazon ECS service to the specified server group(s). For load balanced services, the previous service will be drained after the new service is considered healthy.&lt;/p&gt;
&lt;p&gt;Deployments to Amazon ECS take two actions in regards to Amazon ECS resources:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Register a new Amazon ECS task definition that contains the specified container(s), their image(s), and other information needed for your application to run.&lt;/li&gt;
&lt;li&gt;Create a new Amazon ECS service that runs the registered task definition with the desired instance (task) count, load balancer, and scaling policies.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Scales the desired count for the Amazon ECS service down to 0 instances (tasks), then deletes the service.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Scales the desired count for the Amazon ECS service down to 0 instances (tasks), so no instances are running.&lt;/p&gt;
&lt;h3 id=&#34;resize&#34;&gt;Resize&lt;/h3&gt;
&lt;p&gt;Scales the Amazon ECS service up or down to the desired number of instances (tasks).&lt;/p&gt;
&lt;h1 id=&#34;resource-naming&#34;&gt;Resource Naming&lt;/h1&gt;
&lt;p&gt;From Spinnaker 1.24 the ECS provider can be configured to use either 
&lt;a href=&#34;https://github.com/Netflix/frigga&#34; target=&#34;_blank&#34;&gt;Frigga&lt;/a&gt;
 or a tag based naming strategy which Spinnaker manages using its

&lt;a href=&#34;https://github.com/spinnaker/moniker&#34; target=&#34;_blank&#34;&gt;Moniker&lt;/a&gt;
 library. The naming strategy is configurable per-account or applied as a default across all accounts.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;ecs&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;enabled&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;defaultNamingStrategy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;default&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;   &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;&amp;lt;--- &amp;#39;default&amp;#39; naming used by default (field absent) or if specified&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;accounts&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ecs-moniker-acct&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;awsAccount&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ec2-aws-acct&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;namingStrategy&lt;/span&gt;&lt;span style=&#34;color:#000;font-weight:bold&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;tags&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;         &lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;&amp;lt;--- &amp;#39;tags&amp;#39; specified for specific account&lt;/span&gt;&lt;span style=&#34;color:#f8f8f8;text-decoration:underline&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;default-naming-strategy&#34;&gt;&lt;code&gt;default&lt;/code&gt; Naming Strategy&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;default&lt;/code&gt; naming strategy uses the 
&lt;a href=&#34;https://github.com/Netflix/frigga&#34; target=&#34;_blank&#34;&gt;Frigga&lt;/a&gt;
 naming convention to parse information about resources. This derives all values for application, stack, detail, etc from the name of the resource.&lt;/p&gt;
&lt;h2 id=&#34;tags-naming-strategy&#34;&gt;&lt;code&gt;tags&lt;/code&gt; Naming Strategy&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;tags&lt;/code&gt; naming strategy uses information from tags on the resource to derive information like application, stack, detail, etc.&lt;/p&gt;
&lt;p&gt;To use ECS service tags, your Amazon ECS account must be 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids&#34; target=&#34;_blank&#34;&gt;opted into using the long Amazon Resource Name (ARN) format&lt;/a&gt;
. In addition, your AWS &lt;code&gt;SpinnakerManaged&lt;/code&gt; role will need to call 
&lt;a href=&#34;https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html&#34; target=&#34;_blank&#34;&gt;&amp;lt;code&amp;gt;ecs:ListAccountSettings&amp;lt;/code&amp;gt;&lt;/a&gt;
 in order to validate whether your account is compatible with tags.&lt;/p&gt;
&lt;p&gt;Currently these tags are only applied at the ECS service level which is then configured to propagate the tags to any tasks created by the service scheduler.&lt;/p&gt;
&lt;h3 id=&#34;reserved-tags&#34;&gt;Reserved Tags&lt;/h3&gt;
&lt;p&gt;Several tags are used as metadata by Spinnaker to describe a resource.
Tags listed below followed by a 📝 symbol may also be written by
Spinnaker.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/application&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;The application this resource belongs to.&lt;/p&gt;
&lt;p&gt;This affects where the resource is accessible in the UI, and depending on your
Spinnaker Authorization setup, can affect which users can read/write to this
resource.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/cluster&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;The cluster this resource belongs to.&lt;/p&gt;
&lt;p&gt;This is purely a logical grouping for rendering resources in the UI and to
help with dynamic target selection in Pipeline stages. For example, some
stages allow you to select &amp;ldquo;the newest workload in cluster &lt;strong&gt;X&lt;/strong&gt;&amp;rdquo;. How you set
up these groupings depends on your delivery needs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/stack&lt;/code&gt; 📝, and &lt;code&gt;moniker.spinnaker.io/detail&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;These provide ways to group resources using Spinnaker&amp;rsquo;s cluster filters
as well as apply policies such as 
&lt;a href=&#34;https://blog.spinnaker.io/can-i-push-that-building-safer-low-risk-deployments-with-spinnaker-a27290847ac4&#34; target=&#34;_blank&#34;&gt;Traffic
Guards&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/sequence&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;The sequence number of the release this resource belongs to.&lt;/p&gt;
&lt;p&gt;Each modification of a resource is deployed with a new sequence number in the format &lt;code&gt;vNNN&lt;/code&gt;. This allows for multiple versions to be running and provides
for rollback.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Amazon Web Services</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/aws/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/aws/</guid>
      <description>
        
        
        &lt;p&gt;Reference documentation coming soon!&lt;/p&gt;
&lt;p&gt;See setup 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/aws/&#34;&gt;here&lt;/a&gt;
&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Azure</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/azure/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/azure/</guid>
      <description>
        
        
        &lt;blockquote&gt;
&lt;p&gt;If you are not familiar with Azure or any of the terms used below, please consult the Azure 
&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/&#34; target=&#34;_blank&#34;&gt;reference documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;In 
&lt;a href=&#34;https://azure.microsoft.com/&#34; target=&#34;_blank&#34;&gt;Azure&lt;/a&gt;
 (AZ), an 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/concepts/providers/#accounts&#34;&gt;Account&lt;/a&gt;

maps to a credential able to authenticate against a given 
&lt;a href=&#34;https://azure.microsoft.com/&#34; target=&#34;_blank&#34;&gt;Azure&lt;/a&gt;
 (AZ)
project - see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/azure&#34;&gt;setup guide&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;load balancer&lt;/strong&gt; maps to an Azure 
&lt;a href=&#34;https://azure.microsoft.com/services/application-gateway/&#34; target=&#34;_blank&#34;&gt;Application Gateway&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to an Azure

&lt;a href=&#34;https://azure.microsoft.com/services/virtual-machine-scale-sets/&#34; target=&#34;_blank&#34;&gt;Virtual Machine Scale Set&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to an Azure 
&lt;a href=&#34;https://azure.microsoft.com/services/virtual-machines/&#34; target=&#34;_blank&#34;&gt;Virtual Machine Instance&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Instances in a Virtual Machine Scale set all use the same standard/custom VHD.&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#34;https://docs.microsoft.com/azure/virtual-machines/linux/sizes&#34; target=&#34;_blank&#34;&gt;Linux VM sizes&lt;/a&gt;


&lt;a href=&#34;https://docs.microsoft.com/azure/virtual-machines/windows/sizes&#34; target=&#34;_blank&#34;&gt;WIndows VM sizes&lt;/a&gt;
&lt;/p&gt;
&lt;h3 id=&#34;firewall&#34;&gt;Firewall&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;firewall&lt;/strong&gt; maps to an Azure 
&lt;a href=&#34;https://docs.microsoft.com/azure/virtual-network/virtual-networks-nsg&#34; target=&#34;_blank&#34;&gt;Network Security Group&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys a new Azure Virtual Machine Scale set.&lt;/p&gt;
&lt;h3 id=&#34;clone&#34;&gt;Clone&lt;/h3&gt;
&lt;p&gt;Clones an Azure Virtual Machine Scale Set into a new Virtual Machine Scale set.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Destroys an Azure Virtual Machine Scale set.&lt;/p&gt;
&lt;h3 id=&#34;resize&#34;&gt;Resize&lt;/h3&gt;
&lt;p&gt;Not supported&lt;/p&gt;
&lt;h3 id=&#34;enable&#34;&gt;Enable&lt;/h3&gt;
&lt;p&gt;Enables an Azure Virtual Machine Scale Set to receive traffic.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Disables an Azure Virtual Machine Scale set from receiving traffic.&lt;/p&gt;
&lt;h3 id=&#34;create-load-balancer&#34;&gt;Create Load Balancer&lt;/h3&gt;
&lt;p&gt;Creates a new Application Gateway in Azure.&lt;/p&gt;
&lt;h3 id=&#34;edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/h3&gt;
&lt;p&gt;Edits the properties of an Application Gateway.&lt;/p&gt;
&lt;h3 id=&#34;delete-load-balancer&#34;&gt;Delete Load Balancer&lt;/h3&gt;
&lt;p&gt;Deletes an Application Gateway.  Delete will fail if the App Gatway is connected to a Virtual Machine Scale Set.&lt;/p&gt;
&lt;h3 id=&#34;create-firewall&#34;&gt;Create Firewall&lt;/h3&gt;
&lt;p&gt;Creates a Network Security Group in the specified Virtual Network.&lt;/p&gt;
&lt;h3 id=&#34;clone-firewall&#34;&gt;Clone Firewall&lt;/h3&gt;
&lt;p&gt;Clones a Network Security Group in the same virtual Network.&lt;/p&gt;
&lt;h3 id=&#34;edit-inbound-rules&#34;&gt;Edit inbound rules&lt;/h3&gt;
&lt;p&gt;Edit the inbound traffic rules on the corresponding Network Security Group.&lt;/p&gt;
&lt;h3 id=&#34;delete-firewall&#34;&gt;Delete Firewall&lt;/h3&gt;
&lt;p&gt;Deletes the Network Security Group.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Cloud Foundry</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/cf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/cf/</guid>
      <description>
        
        
        &lt;p&gt;If you are not familiar with Cloud Foundry (CF) or any of the terms used below, please consult 
&lt;a href=&#34;https://docs.cloudfoundry.org&#34; target=&#34;_blank&#34;&gt;Cloud Foundry&amp;amp;rsquo;s reference documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;In CF, an Account maps to a user account on a CF foundation (where a foundation is a BOSH Director and all the VMs it deploys). This user account is provided via configuration to Spinnaker, and Spinnaker&amp;rsquo;s privileges are determined by the CF user account&amp;rsquo;s permissions; for example, Spinnaker can manage CF apps across all of the 
&lt;a href=&#34;https://docs.cloudfoundry.org/concepts/roles.html&#34; target=&#34;_blank&#34;&gt;orgs and spaces&lt;/a&gt;
 which its CF user account can access.&lt;/p&gt;
&lt;p&gt;A Spinnaker instance can use multiple CF user accounts to access one or multiple CF foundations.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker Load Balancer maps to a CF 
&lt;a href=&#34;https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#routes&#34; target=&#34;_blank&#34;&gt;route&lt;/a&gt;
, which is associated with a CF app and does not have a separate resource name. The name of the route is the fully-qualified path, including host, domain, port, and path. A Load Balancer is created as part of a Server Group definition.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;host&amp;gt;.&amp;lt;domain&amp;gt;:&amp;lt;port&amp;gt;/&amp;lt;path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker Server Group maps to a deployment of a CF app in a specific foundation, org, and space. The CF app is named as &lt;code&gt;APPNAME_STACK_DETAIL_VERSION&lt;/code&gt;, where &lt;code&gt;APP_NAME&lt;/code&gt; is the app&amp;rsquo;s name in Spinnaker.  If the app was deployed by Spinnaker, the CF app name will also include an appended &lt;code&gt;-V&lt;/code&gt; with a version number.&lt;/p&gt;
&lt;p&gt;When configuring a Server Group, you can either provide a 
&lt;a href=&#34;https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html&#34; target=&#34;_blank&#34;&gt;manifest&lt;/a&gt;
 for your CF app or enter the parameters directly into the form (direct).&lt;/p&gt;
&lt;h3 id=&#34;region&#34;&gt;Region&lt;/h3&gt;
&lt;p&gt;A Spinnaker Region maps to a CF 
&lt;a href=&#34;https://docs.cloudfoundry.org/concepts/roles.html#spaces&#34; target=&#34;_blank&#34;&gt;space&lt;/a&gt;
. The Region is named as &amp;ldquo;ORG &amp;gt; SPACE&amp;rdquo;, where &amp;ldquo;ORG&amp;rdquo; is the name of the CF 
&lt;a href=&#34;https://docs.cloudfoundry.org/concepts/roles.html#orgs&#34; target=&#34;_blank&#34;&gt;org&lt;/a&gt;
 and &amp;ldquo;SPACE&amp;rdquo; is the name of the CF space.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker Server Group Instance maps to a CF app instance.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys a CF app (&lt;code&gt;cf push&lt;/code&gt;). A deployment of a Server Group in Spinnaker causes a new CF app deployment.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Deletes a CF app (&lt;code&gt;cf delete&lt;/code&gt;). Deletion of a Server Group in Spinnaker causes deletion of a CF app.&lt;/p&gt;
&lt;h3 id=&#34;resize&#34;&gt;Resize&lt;/h3&gt;
&lt;p&gt;Scales a CF app up or down (&lt;code&gt;cf scale&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;enable&#34;&gt;Enable&lt;/h3&gt;
&lt;p&gt;Starts a CF app (&lt;code&gt;cf start&lt;/code&gt;). Enabling a Server Group in Spinnaker causes a stopped CF app to start.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Stops a CF app (&lt;code&gt;cf stop&lt;/code&gt;). Disabling a Server Group in Spinnaker causes a CF app to stop.&lt;/p&gt;
&lt;h3 id=&#34;rollback&#34;&gt;Rollback&lt;/h3&gt;
&lt;p&gt;Starts the previous version of the Server Group (&lt;code&gt;cf start&lt;/code&gt;) and disables the current running Server Group (&lt;code&gt;cf stop&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;terminate-instance&#34;&gt;Terminate Instance&lt;/h3&gt;
&lt;p&gt;Restarts a CF app instance. In CF, &amp;ldquo;Terminate Instance&amp;rdquo; is index-based. In the Spinnaker Server Group Instance name, the last digit is the CF 
&lt;a href=&#34;https://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#CF-INSTANCE-INDEX&#34; target=&#34;_blank&#34;&gt;app instance index&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer-create&#34;&gt;Load Balancer Create&lt;/h3&gt;
&lt;p&gt;A Load Balancer is created as part of a Server Group definition.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer-delete&#34;&gt;Load Balancer Delete&lt;/h3&gt;
&lt;p&gt;Deletes a CF route.&lt;/p&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See Also&lt;/h2&gt;
&lt;p&gt;
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/pipeline/stages/#cloud-foundry&#34;&gt;Cloud Foundry specific Pipeline Stages&lt;/a&gt;
&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Google App Engine</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/appengine/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/appengine/</guid>
      <description>
        
        
        &lt;blockquote&gt;
&lt;p&gt;If you are not familiar with App Engine or any of the terms used below, please consult App Engine&amp;rsquo;s 
&lt;a href=&#34;https://cloud.google.com/appengine/docs&#34; target=&#34;_blank&#34;&gt;reference documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;account&lt;/strong&gt; maps to a single App Engine &lt;strong&gt;application&lt;/strong&gt;, a top-level resource that contains
services, versions, and instances. Spinnaker authenticates itself with App Engine
using service account credentials for a Google Cloud Platform project -
see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/appengine&#34;&gt;setup guide&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;load balancer&lt;/strong&gt; maps to an App Engine &lt;strong&gt;service&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A service has many versions (discussed 
&lt;a href=&#34;#server-group&#34;&gt;below&lt;/a&gt;
), and a version&amp;rsquo;s &lt;code&gt;app.yaml&lt;/code&gt; determines the service
it belongs to. If a version&amp;rsquo;s &lt;code&gt;app.yaml&lt;/code&gt; does not specify the name of a service, it will be deployed to the service named &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Spinnaker cannot create a service, but if a service does not exist when a version is deployed, it will be created automatically.&lt;/p&gt;
&lt;p&gt;A service&amp;rsquo;s &lt;strong&gt;traffic split&lt;/strong&gt; determines how incoming traffic is allocated between versions.&lt;/p&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to an App Engine &lt;strong&gt;version&lt;/strong&gt;. An &lt;code&gt;app.yaml&lt;/code&gt; file (which typically lives alongside your application source code) determines
a version&amp;rsquo;s configuration. If necessary, you can provide Spinnaker with the contents of an &lt;code&gt;app.yaml&lt;/code&gt;
file when you deploy a version.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to an App Engine &lt;strong&gt;instance&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys an App Engine version.&lt;/p&gt;
&lt;p&gt;At a high level, deploying to App Engine using Spinnaker has three steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You provide Spinnaker with a reference to a git repository, and some information about where your application lives
inside that repository (e.g., branch).&lt;/li&gt;
&lt;li&gt;Spinnaker clones your repository and finds your application.&lt;/li&gt;
&lt;li&gt;Spinnaker deploys your application to a new version by executing &lt;code&gt;gcloud app deploy&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If your pipeline includes a Deploy stage and has been triggered by a webhook or Jenkins job, you can dynamically resolve the git repository branch that Spinnaker uses to deploy.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Destroys a version.&lt;/p&gt;
&lt;p&gt;If a version is serving traffic, it will first be 
&lt;a href=&#34;#disable&#34;&gt;disabled&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;You cannot destroy a version if it is the only version serving traffic from a service.&lt;/p&gt;
&lt;h3 id=&#34;enable&#34;&gt;Enable&lt;/h3&gt;
&lt;p&gt;Sets a version&amp;rsquo;s traffic allocation to 100%.&lt;/p&gt;
&lt;p&gt;This operation is provided as a convenience method. If
you would like more fine-grained control over your versions&amp;rsquo; traffic allocations, see 
&lt;a href=&#34;#edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Sets a version&amp;rsquo;s traffic allocation to 0%, and sets the other enabled versions&amp;rsquo; allocations to their
relative proportions before the disable operation.&lt;/p&gt;
&lt;p&gt;This operation is provided as a convenience method, and because it is used implicitly when destroying a version. If you would like more fine-grained control over your versions&amp;rsquo; traffic allocations, see 
&lt;a href=&#34;#edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;You cannot disable a version if it is the only version serving traffic from a service.&lt;/p&gt;
&lt;h3 id=&#34;start&#34;&gt;Start&lt;/h3&gt;
&lt;p&gt;Starts an App Engine version - i.e., allows a version to scale according to its scaling policy.&lt;/p&gt;
&lt;p&gt;This operation is only available if the version uses manual or basic scaling, or is running in the flexible environment.&lt;/p&gt;
&lt;h3 id=&#34;stop&#34;&gt;Stop&lt;/h3&gt;
&lt;p&gt;Stops an App Engine version - i.e., scales a version down to zero instances.&lt;/p&gt;
&lt;p&gt;This operation is only available if the version uses manual or basic scaling, or is running in the flexible environment.&lt;/p&gt;
&lt;h3 id=&#34;edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/h3&gt;
&lt;p&gt;Edits a service&amp;rsquo;s traffic split - i.e., the relative proportion of traffic that each version receives.&lt;/p&gt;
&lt;p&gt;If your pipeline includes an Edit Load Balancer stage, you can resolve the targets of a traffic split dynamically.&lt;/p&gt;
&lt;h3 id=&#34;delete-load-balancer&#34;&gt;Delete Load Balancer&lt;/h3&gt;
&lt;p&gt;Deletes a service. Deleting a service will also delete all of its versions.&lt;/p&gt;
&lt;p&gt;You cannot delete the &lt;code&gt;default&lt;/code&gt; service. However, you can disable your App Engine application from within the

&lt;a href=&#34;https://console.cloud.google.com&#34; target=&#34;_blank&#34;&gt;Google Cloud Console&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;terminate-instance&#34;&gt;Terminate instance&lt;/h3&gt;
&lt;p&gt;Deletes an instance.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Google Cloud Run</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/cloudrun/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/cloudrun/</guid>
      <description>
        
        
        &lt;blockquote&gt;
&lt;p&gt;If you are not familiar with Cloud Run or any of the terms used below, please consult Cloud Run&amp;rsquo;s 
&lt;a href=&#34;https://cloud.google.com/run/docs&#34; target=&#34;_blank&#34;&gt;reference documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;account&lt;/strong&gt; maps to a single Cloud Run &lt;strong&gt;application&lt;/strong&gt;, a top-level resource that contains
services, versions, and instances. Spinnaker authenticates itself with Cloud Run
using service account credentials for a Google Cloud Platform project -
see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/cloudrun&#34;&gt;setup guide&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;load balancer&lt;/strong&gt; maps to an Cloud Run &lt;strong&gt;service&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;A service has many versions (discussed 
&lt;a href=&#34;#server-group&#34;&gt;below&lt;/a&gt;
), and a version&amp;rsquo;s &lt;code&gt;app.yaml&lt;/code&gt; determines the service
it belongs to. If a version&amp;rsquo;s &lt;code&gt;app.yaml&lt;/code&gt; does not specify the name of a service, it will be deployed to the service named &lt;code&gt;default&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Spinnaker cannot create a service, but if a service does not exist when a version is deployed, it will be created automatically.&lt;/p&gt;
&lt;p&gt;A service&amp;rsquo;s &lt;strong&gt;traffic split&lt;/strong&gt; determines how incoming traffic is allocated between versions.&lt;/p&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to an Cloud Run &lt;strong&gt;version&lt;/strong&gt;. An &lt;code&gt;app.yaml&lt;/code&gt; file (which typically lives alongside your application source code) determines
a version&amp;rsquo;s configuration. If necessary, you can provide Spinnaker with the contents of an &lt;code&gt;app.yaml&lt;/code&gt;
file when you deploy a version.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to an Cloud Run &lt;strong&gt;instance&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys an Cloud Run version.&lt;/p&gt;
&lt;p&gt;At a high level, deploying to Cloud Run using Spinnaker has three steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You provide Spinnaker with a reference to a git repository, and some information about where your application lives
inside that repository (e.g., branch).&lt;/li&gt;
&lt;li&gt;Spinnaker clones your repository and finds your application.&lt;/li&gt;
&lt;li&gt;Spinnaker deploys your application to a new version by executing &lt;code&gt;gcloud run deploy&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If your pipeline includes a Deploy stage and has been triggered by a webhook or Jenkins job, you can dynamically resolve the git repository branch that Spinnaker uses to deploy.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Destroys a version.&lt;/p&gt;
&lt;p&gt;If a version is serving traffic, it will first be 
&lt;a href=&#34;#disable&#34;&gt;disabled&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;You cannot destroy a version if it is the only version serving traffic from a service.&lt;/p&gt;
&lt;h3 id=&#34;enable&#34;&gt;Enable&lt;/h3&gt;
&lt;p&gt;Sets a version&amp;rsquo;s traffic allocation to 100%.&lt;/p&gt;
&lt;p&gt;This operation is provided as a convenience method. If
you would like more fine-grained control over your versions&amp;rsquo; traffic allocations, see 
&lt;a href=&#34;#edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Sets a version&amp;rsquo;s traffic allocation to 0%, and sets the other enabled versions&amp;rsquo; allocations to their
relative proportions before the disable operation.&lt;/p&gt;
&lt;p&gt;This operation is provided as a convenience method, and because it is used implicitly when destroying a version. If you would like more fine-grained control over your versions&amp;rsquo; traffic allocations, see 
&lt;a href=&#34;#edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;You cannot disable a version if it is the only version serving traffic from a service.&lt;/p&gt;
&lt;h3 id=&#34;start&#34;&gt;Start&lt;/h3&gt;
&lt;p&gt;Starts an Cloud Run version - i.e., allows a version to scale according to its scaling policy.&lt;/p&gt;
&lt;p&gt;This operation is only available if the version uses manual or basic scaling, or is running in the flexible environment.&lt;/p&gt;
&lt;h3 id=&#34;stop&#34;&gt;Stop&lt;/h3&gt;
&lt;p&gt;Stops an Cloud Run version - i.e., scales a version down to zero instances.&lt;/p&gt;
&lt;p&gt;This operation is only available if the version uses manual or basic scaling, or is running in the flexible environment.&lt;/p&gt;
&lt;h3 id=&#34;edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/h3&gt;
&lt;p&gt;Edits a service&amp;rsquo;s traffic split - i.e., the relative proportion of traffic that each version receives.&lt;/p&gt;
&lt;p&gt;If your pipeline includes an Edit Load Balancer stage, you can resolve the targets of a traffic split dynamically.&lt;/p&gt;
&lt;h3 id=&#34;delete-load-balancer&#34;&gt;Delete Load Balancer&lt;/h3&gt;
&lt;p&gt;Deletes a service. Deleting a service will also delete all of its versions.&lt;/p&gt;
&lt;p&gt;You cannot delete the &lt;code&gt;default&lt;/code&gt; service. However, you can disable your Cloud Run application from within the

&lt;a href=&#34;https://console.cloud.google.com&#34; target=&#34;_blank&#34;&gt;Google Cloud Console&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;terminate-instance&#34;&gt;Terminate instance&lt;/h3&gt;
&lt;p&gt;Deletes an instance.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Google Compute Engine</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/gce/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/gce/</guid>
      <description>
        
        
        &lt;p&gt;If you are not familiar with Google Compute Engine or any of the terms used below, please consult
Compute Engine&amp;rsquo;s 
&lt;a href=&#34;https://cloud.google.com/compute&#34; target=&#34;_blank&#34;&gt;reference documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;In 
&lt;a href=&#34;https://cloud.google.com/compute&#34; target=&#34;_blank&#34;&gt;Google Compute Engine&lt;/a&gt;
 (GCE), an 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/concepts/providers/#accounts&#34;&gt;Account&lt;/a&gt;

maps to a credential able to authenticate against a given 
&lt;a href=&#34;https://cloud.google.com/&#34; target=&#34;_blank&#34;&gt;Google Cloud Platform&lt;/a&gt;
 (GCP)
project - see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/gce&#34;&gt;setup guide&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;load balancer&lt;/strong&gt; maps to a GCE 
&lt;a href=&#34;https://cloud.google.com/compute/docs/load-balancing/&#34; target=&#34;_blank&#34;&gt;load balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;GCE supports many different types of load balancers, including: HTTPS(S), SSL Proxy, Network and Internal. Each of these
is supported by Spinnaker.&lt;/p&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to a GCE

&lt;a href=&#34;https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances&#34; target=&#34;_blank&#34;&gt;Managed Instance Group&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;GCE allows for both zonal and

&lt;a href=&#34;https://cloud.google.com/compute/docs/instance-groups/distributing-instances-with-regional-instance-groups&#34; target=&#34;_blank&#34;&gt;regional&lt;/a&gt;

Managed Instance Groups, and Spinnaker supports both types.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to a GCE 
&lt;a href=&#34;https://cloud.google.com/compute/docs/instances/&#34; target=&#34;_blank&#34;&gt;Virtual Machine Instance&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;GCE supports 
&lt;a href=&#34;https://cloud.google.com/compute/docs/machine-types#predefined_machine_types&#34; target=&#34;_blank&#34;&gt;predefined machine types&lt;/a&gt;
 as
well as 
&lt;a href=&#34;https://cloud.google.com/compute/docs/machine-types#custom_machine_types&#34; target=&#34;_blank&#34;&gt;custom machine types&lt;/a&gt;
, and Spinnaker
has support for the full range.&lt;/p&gt;
&lt;h3 id=&#34;firewall&#34;&gt;Firewall&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;firewall&lt;/strong&gt; maps to a GCE 
&lt;a href=&#34;https://cloud.google.com/compute/docs/vpc/firewalls&#34; target=&#34;_blank&#34;&gt;Firewall&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Spinnaker has user-friendly support for associating a new server group with a set of firewalls, and the correct
target tags will be set on the newly-provisioned server group.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys a GCE managed instance group.&lt;/p&gt;
&lt;p&gt;A new GCE 
&lt;a href=&#34;https://cloud.google.com/compute/docs/instance-templates&#34; target=&#34;_blank&#34;&gt;instance template&lt;/a&gt;
 is created for each new managed
instance group.&lt;/p&gt;
&lt;p&gt;If a deployed server group is load-balanced, Spinnaker uses 
&lt;a href=&#34;https://cloud.google.com/compute/docs/storing-retrieving-metadata&#34; target=&#34;_blank&#34;&gt;instance metadata&lt;/a&gt;

to store the relationship between the server group and load balancer. This is necessary to represent the object models in Spinnaker&amp;rsquo;s UI
and to remember server group to load balancer relationships during server group enable and disable operations.
Note that manipulating infrastructure (MIGs, load balancers) in GCE directly does not create the relationship metadata, and will most likely cause
Spinnaker to misbehave.&lt;/p&gt;
&lt;h3 id=&#34;clone&#34;&gt;Clone&lt;/h3&gt;
&lt;p&gt;Clones a GCE managed instance group.&lt;/p&gt;
&lt;p&gt;Similar to a 
&lt;a href=&#34;#deploy&#34;&gt;deploy&lt;/a&gt;
 operation, except that most of the attributes are optional. Any elided attributes will be
inherited from the source managed instance group being cloned.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Destroys a GCE managed instance group and its instance template.&lt;/p&gt;
&lt;p&gt;If a managed instance group is serving traffic, it will first be 
&lt;a href=&#34;#disable&#34;&gt;disabled&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;resize&#34;&gt;Resize&lt;/h3&gt;
&lt;p&gt;Resizes a GCE managed instance group.&lt;/p&gt;
&lt;p&gt;If the managed instance group has an 
&lt;a href=&#34;https://cloud.google.com/compute/docs/autoscaler/&#34; target=&#34;_blank&#34;&gt;autoscaler&lt;/a&gt;
 configured, resize
affects its min/max settings.&lt;/p&gt;
&lt;h3 id=&#34;enable&#34;&gt;Enable&lt;/h3&gt;
&lt;p&gt;Registers a GCE managed instance group with its associated load balancers and discovery service so that it can receive
traffic.&lt;/p&gt;
&lt;h3 id=&#34;disable&#34;&gt;Disable&lt;/h3&gt;
&lt;p&gt;Deregisters a GCE managed instance group from its associated load balancers and discovery service so that it no longer
receives traffic.&lt;/p&gt;
&lt;h3 id=&#34;rollback&#34;&gt;Rollback&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&#34;#enable&#34;&gt;Enables&lt;/a&gt;
 one server group and 
&lt;a href=&#34;#disable&#34;&gt;disables&lt;/a&gt;
 another. The disable is only initiated once the
newly-enabled server group&amp;rsquo;s instances are all determined to be healthy.&lt;/p&gt;
&lt;h3 id=&#34;reboot-instance&#34;&gt;Reboot instance&lt;/h3&gt;
&lt;p&gt;Performs a 
&lt;a href=&#34;https://cloud.google.com/compute/docs/instances/restarting-an-instance&#34; target=&#34;_blank&#34;&gt;hard reset&lt;/a&gt;
 on an instance.&lt;/p&gt;
&lt;h3 id=&#34;terminate-instance&#34;&gt;Terminate instance&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&#34;https://cloud.google.com/compute/docs/instances/stopping-or-deleting-an-instance#delete_an_instance&#34; target=&#34;_blank&#34;&gt;Deletes&lt;/a&gt;
 an
instance. In most cases, the managed instance group will provision a new instance to replace the terminated instance.&lt;/p&gt;
&lt;h3 id=&#34;terminate-instance-and-shrink-server-group&#34;&gt;Terminate instance and shrink Server Group&lt;/h3&gt;
&lt;p&gt;Atomically 
&lt;a href=&#34;https://cloud.google.com/sdk/gcloud/reference/compute/instance-groups/managed/delete-instances&#34; target=&#34;_blank&#34;&gt;deletes&lt;/a&gt;
 an
instance and shrinks the target size of the managed instance group.&lt;/p&gt;
&lt;h3 id=&#34;create-load-balancer&#34;&gt;Create Load Balancer&lt;/h3&gt;
&lt;p&gt;Upserts and wires together all of the necessary resources to support Network, HTTP(S), Internal or SSL load balancing.&lt;/p&gt;
&lt;p&gt;Depending on the type of load balancing desired, an assortment of regional/gobal forwarding rules, target pools/proxies,
URL maps, backend services and health checks are required to be assembled. The create load balancer operation performs all of this configuration implicitly.&lt;/p&gt;
&lt;h3 id=&#34;edit-load-balancer&#34;&gt;Edit Load Balancer&lt;/h3&gt;
&lt;p&gt;Modifies the attributes of an existing load balancer.&lt;/p&gt;
&lt;h3 id=&#34;delete-load-balancer&#34;&gt;Delete Load Balancer&lt;/h3&gt;
&lt;p&gt;Deletes a load balancer and all of its resources.&lt;/p&gt;
&lt;p&gt;This operation is not permitted unless there are no instances associated with the load balancer.&lt;/p&gt;
&lt;h3 id=&#34;create-firewall&#34;&gt;Create Firewall&lt;/h3&gt;
&lt;p&gt;Creates a firewall rule.&lt;/p&gt;
&lt;p&gt;Target tags can be explicitly specified, or one can be automatically generated. Supports source filtering based on both
tags and CIDRs.&lt;/p&gt;
&lt;h3 id=&#34;clone-firewall&#34;&gt;Clone Firewall&lt;/h3&gt;
&lt;p&gt;Clones a firewall rule.&lt;/p&gt;
&lt;p&gt;Supported only via the ui. The create firewall wizard is pre-populated with the attributes of the firewall&lt;/p&gt;
&lt;h3 id=&#34;edit-inbound-rules&#34;&gt;Edit inbound rules&lt;/h3&gt;
&lt;p&gt;Modifies the source filters, target tags and ingress rules of an existing firewall rule.&lt;/p&gt;
&lt;h3 id=&#34;delete-firewall&#34;&gt;Delete Firewall&lt;/h3&gt;
&lt;p&gt;Deletes a firewall rule.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kubernetes Provider Overview</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/kubernetes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/kubernetes/</guid>
      <description>
        
        
        &lt;blockquote&gt;
&lt;p&gt;If you&amp;rsquo;re unfamiliar with Kubernetes terminology, see the 
&lt;a href=&#34;https://kubernetes.io/docs/home/&#34; target=&#34;_blank&#34;&gt;Kubernetes documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This article describes how the Kubernetes provider works and how it differs
from other providers in Spinnaker. If you&amp;rsquo;re unfamiliar with Kubernetes
terminology, see the 
&lt;a href=&#34;https://kubernetes.io/docs/home/&#34; target=&#34;_blank&#34;&gt;Kubernetes
documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;the-manifest-based-approach&#34;&gt;The manifest-based approach&lt;/h2&gt;
&lt;p&gt;The Kubernetes provider combines the strengths of Kubernetes&amp;rsquo;s 
&lt;a href=&#34;https://kubernetes.io/docs/tutorials/object-management-kubectl/declarative-object-management-configuration/&#34; target=&#34;_blank&#34;&gt;declarative
infrastructure
management&lt;/a&gt;

with Spinnaker&amp;rsquo;s workflow engine for imperative steps when you need them. You
can fully specify all your infrastructure in the native Kubernetes manifest
format but still express, for example, a multi-region canary-driven rollout.&lt;/p&gt;
&lt;p&gt;This is a significant departure from how deployments are managed in Spinnaker
using other providers (including the 
&lt;a href=&#34;https://www.spinnaker.io/reference/providers/kubernetes/&#34; target=&#34;_blank&#34;&gt;legacy Kubernetes provider&lt;/a&gt;
).
The rest of this doc explains the differences.&lt;/p&gt;
&lt;h2 id=&#34;no-restrictive-naming-policies&#34;&gt;No restrictive naming policies&lt;/h2&gt;
&lt;p&gt;You can deploy existing manifests without rewriting them to adhere to

&lt;a href=&#34;https://github.com/Netflix/frigga&#34; target=&#34;_blank&#34;&gt;Frigga&lt;/a&gt;
. Resource relationships (for example
between applications and clusters) are managed using 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/&#34; target=&#34;_blank&#34;&gt;Kubernetes
annotations&lt;/a&gt;
,
and Spinnaker manages these using its

&lt;a href=&#34;https://github.com/spinnaker/moniker&#34; target=&#34;_blank&#34;&gt;Moniker&lt;/a&gt;
 library.&lt;/p&gt;
&lt;p&gt;The policies and strategies are configurable per account. See 
&lt;a href=&#34;#reserved-annotations&#34;&gt;Reserved
Annotations&lt;/a&gt;
 for more details.&lt;/p&gt;
&lt;h2 id=&#34;accommodating-level-based-deployments&#34;&gt;Accommodating level-based deployments&lt;/h2&gt;
&lt;p&gt;See the 
&lt;a href=&#34;https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status&#34; target=&#34;_blank&#34;&gt;Kubernetes API
conventions&lt;/a&gt;

for a description of edge-based vs. level-based APIs.&lt;/p&gt;
&lt;p&gt;Other providers in Spinnaker track operations that modify cloud resources. For
example, if you run a resize operation, Spinnaker monitors that operation until
the specified resize target is met. But because Kubernetes only tries to satisfy
the desired &lt;em&gt;state&lt;/em&gt;, and offers a level-based API for this purpose, the
Kubernetes provider uses the concept of &amp;ldquo;manifest stability.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;A deployed manifest is considered stable when the Kubernetes controller-manager
no longer needs to modify it, and it’s deemed “ready.” This assessment is
different, obviously, for different &lt;code&gt;kind&lt;/code&gt;s of manifests: a &lt;code&gt;Deployment&lt;/code&gt; is
stable when its managed pods are updated, available, and ready (running your
desired container and serving traffic). A &lt;code&gt;Service&lt;/code&gt; is stable once it is
created, unless it is of type &lt;code&gt;LoadBalancer&lt;/code&gt;, in which case it is considered
stable once the underlying load balancer has been created and bound to the
&lt;code&gt;Service&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This manifest stability is how Spinnaker ensures that operations have succeeded.
Because there are a number of reasons why a manifest never becomes stable (lack
of CPU quota, failing readiness checks, no IP for a service to bind&amp;hellip;) every
stage that modifies or deploys a manifest waits until your affected manifests
are stable, or it times out after a configurable period (30-minute default).&lt;/p&gt;
&lt;h2 id=&#34;using-externally-stored-manifests&#34;&gt;Using externally stored manifests&lt;/h2&gt;
&lt;p&gt;You can store and version your manifest definitions in Git (or elsewhere outside
of the Spinnaker pipeline store).&lt;/p&gt;
&lt;p&gt;With Spinnaker&amp;rsquo;s Artifact mechanism, file modifications/creations are surfaced
as artifacts in pipeline executions. For example, you can configure a pipeline
that triggers either when&amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a new Docker image is uploaded, or&lt;/li&gt;
&lt;li&gt;your manifest file is changed in Git&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;reserved-annotations&#34;&gt;Reserved annotations&lt;/h1&gt;
&lt;p&gt;Several annotations are used as metadata by Spinnaker to describe a resource.
Annotations listed below followed by a 📝 symbol may also be written by
Spinnaker.&lt;/p&gt;
&lt;p&gt;You can always edit or apply annotations using the 
&lt;a href=&#34;https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#annotate&#34; target=&#34;_blank&#34;&gt;&amp;lt;code&amp;gt;kubectl annotate&amp;lt;/code&amp;gt;
command&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;moniker&#34;&gt;Moniker&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/application&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;The application this resource belongs to.&lt;/p&gt;
&lt;p&gt;This affects where the resource is accessible in the UI, and depending on your
Spinnaker Authorization setup, can affect which users can read/write to this
resource.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/cluster&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;The cluster this resource belongs to.&lt;/p&gt;
&lt;p&gt;This is purely a logical grouping for rendering resources in the UI and to
help with dynamic target selection in Pipeline stages. For example, some
stages allow you to select &amp;ldquo;the newest workload in cluster &lt;strong&gt;X&lt;/strong&gt;&amp;rdquo;. How you set
up these groupings depends on your delivery needs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;moniker.spinnaker.io/stack&lt;/code&gt; 📝, and &lt;code&gt;moniker.spinnaker.io/detail&lt;/code&gt; 📝&lt;/p&gt;
&lt;p&gt;These simply provide ways to group resources using Spinnaker&amp;rsquo;s cluster filters
as well as apply policies such as 
&lt;a href=&#34;https://blog.spinnaker.io/can-i-push-that-building-safer-low-risk-deployments-with-spinnaker-a27290847ac4&#34; target=&#34;_blank&#34;&gt;Traffic
Guards&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;caching&#34;&gt;Caching&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;caching.spinnaker.io/ignore&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt;, tells Spinnaker to ignore this resource.
The resource is not cached and does not show up in the Spinnaker UI.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;strategy&#34;&gt;Strategy&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/versioned&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt; or &lt;code&gt;&#39;false&#39;&lt;/code&gt;, this overrides the resource&amp;rsquo;s default
&amp;ldquo;version&amp;rdquo; behavior described in the 
&lt;a href=&#34;#resource-management-policies&#34;&gt;resource management
policies&lt;/a&gt;
. This can be used to force a
ConfigMap or Secret to be deployed without appending a new version when the
contents change, for example.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/use-source-capacity&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt; or &lt;code&gt;&#39;false&#39;&lt;/code&gt;, this overrides the resource&amp;rsquo;s replica count
with the currently deployed resource&amp;rsquo;s replica count. This is supported for
Deployment, ReplicaSet or StatefulSet. This can be used to allow resizing a resource
in the Spinnaker UI or with kubectl without overriding the new size during subsequent
manifest deployments.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/max-version-history&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;When set to a non-negative integer, this configures how many versions of a
resource to keep around. When more than &lt;code&gt;max-version-history&lt;/code&gt; versions of a
Kubernetes artifact exist, Spinnaker deletes all older versions.
&lt;strong&gt;Resources are sorted by the &lt;code&gt;metadata.creationTimestamp&lt;/code&gt; kubernetes property
rather than the version number.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Keep in mind, if you are trying to restrict how many copies of a ReplicaSet
a Deployment is managing, that is configured by

&lt;a href=&#34;https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy&#34; target=&#34;_blank&#34;&gt;&amp;lt;code&amp;gt;spec.revisionHistoryLimit&amp;lt;/code&amp;gt;&lt;/a&gt;
.
If instead Spinnaker is deploying ReplicaSets directly without a Deployment,
this annotation does the job.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/recreate&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As of Spinnaker 1.13, you can force Spinnaker to delete a resource (if it
already exists) before creating it again. This is useful for kinds such
as 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/&#34; target=&#34;_blank&#34;&gt;&amp;lt;code&amp;gt;Job&amp;lt;/code&amp;gt;&lt;/a&gt;
,
which cannot be edited once created, or must be re-created to run again.&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt; for a versioned resource, this will only re-create your
resource if no edits have been made since the last deployment (i.e. the
same version of the resource is redeployed).&lt;/p&gt;
&lt;p&gt;The default behavior is &lt;code&gt;&#39;false&#39;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/replace&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As of Spinnaker 1.14, you can force Spinnaker to use &lt;code&gt;replace&lt;/code&gt; instead of
&lt;code&gt;apply&lt;/code&gt; while deploying a Kubernetes resource. This may be useful for resources
such as &lt;code&gt;ConfigMap&lt;/code&gt; which may exceed the annotation size limit of 262144 characters.&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt; for a versioned resource, this will update your resources using
&lt;code&gt;replace&lt;/code&gt;. Refer to 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/object-management-kubectl/overview/#imperative-object-configuration&#34; target=&#34;_blank&#34;&gt;Kubernetes Object Management&lt;/a&gt;
 for more details on object
configuration and trade-offs.&lt;/p&gt;
&lt;p&gt;As of Spinnaker 1.35, deploy manifest stages support label selectors.
However, label selectors don&amp;rsquo;t work with kubectl replace, so deploy manifest
stages that specify label selectors to deploy resources with the replace
strategy fail.&lt;/p&gt;
&lt;p&gt;The default behavior is &lt;code&gt;&#39;false&#39;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;strategy.spinnaker.io/server-side-apply&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As of Spinnaker 1.33, you can force Spinnaker to use server-side apply instead of the default client-side apply
while deploying a Kubernetes resource. Server-side apply is a new merging algorithm, which allows calculating
the final patch to update resources in the Kubernetes api-server instead of the client.
This may be useful for &lt;code&gt;CustomResourceDefinition&lt;/code&gt; or &lt;code&gt;ConfigMap&lt;/code&gt; which  may exceed the annotation size limit and cannot
tolerate the &lt;code&gt;replace&lt;/code&gt; strategy. Additionally, it will better identify and handle conflicts during merge by
analyzing the &lt;code&gt;managedFields&lt;/code&gt; annotation instead of the &lt;code&gt;last-applied-configuration&lt;/code&gt; annotation.&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;true&#39;&lt;/code&gt; for a resource, this will update your resources using
server-side apply. Refer to 
&lt;a href=&#34;https://kubernetes.io/docs/reference/using-api/server-side-apply/&#34; target=&#34;_blank&#34;&gt;Kubernetes Server Side Apply&lt;/a&gt;
 for more details.&lt;/p&gt;
&lt;p&gt;When set to &lt;code&gt;&#39;force-conflicts&#39;&lt;/code&gt; for a resource, this will update your resources using server-side apply and becomes the sole manager. Refer to 
&lt;a href=&#34;https://kubernetes.io/docs/reference/using-api/server-side-apply/#conflicts&#34; target=&#34;_blank&#34;&gt;Conflicts&lt;/a&gt;
 for more details.&lt;/p&gt;
&lt;p&gt;Server-side apply feature was introduced as 
&lt;a href=&#34;https://kubernetes.io/blog/2020/04/01/kubernetes-1.18-feature-server-side-apply-beta-2/&#34; target=&#34;_blank&#34;&gt;beta in Kubernetes 1.18&lt;/a&gt;

and graduated to 
&lt;a href=&#34;https://kubernetes.io/blog/2021/08/06/server-side-apply-ga/&#34; target=&#34;_blank&#34;&gt;GA in Kubernetes 1.22&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;The default behavior is &lt;code&gt;&#39;false&#39;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;traffic&#34;&gt;Traffic&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;traffic.spinnaker.io/load-balancers&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As of Spinnaker 1.10, you can specify which load balancers
(
&lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/service/&#34; target=&#34;_blank&#34;&gt;Services&lt;/a&gt;
)
a workload is attached to at deployment time. This will automatically set the
required labels on the workload&amp;rsquo;s Pods to match that of the Services&amp;rsquo; 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors&#34; target=&#34;_blank&#34;&gt;label
selectors&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;This annotation must be supplied as a list of &lt;code&gt;&amp;lt;kind&amp;gt; &amp;lt;name&amp;gt;&lt;/code&gt; pairs where
&lt;code&gt;kind&lt;/code&gt; and &lt;code&gt;name&lt;/code&gt; refer to the load balancer in the same namespace as the
resource. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;traffic.spinnaker.io/load-balancers: &#39;[&amp;quot;service my-service&amp;quot;]&#39;&lt;/code&gt; attaches to
the Service named &lt;code&gt;my-service&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;traffic.spinnaker.io/load-balancers: &#39;[&amp;quot;service my-service&amp;quot;, &amp;quot;service my-canary-service&amp;quot;]&#39;&lt;/code&gt;
attaches to the Services named &lt;code&gt;my-service&lt;/code&gt; and &lt;code&gt;my-canary-service&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As of Spinnaker 1.14, instead of manually adding the &lt;code&gt;traffic.spinnaker.io/load-balancers&lt;/code&gt;
annotation, you can select which load balancers to associate with a workload from the Deploy
(Manifest) stage. Spinnaker will then add the appropriate annotation for you.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;reserved-labels&#34;&gt;Reserved labels&lt;/h1&gt;
&lt;p&gt;In accordance with 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/#labels&#34; target=&#34;_blank&#34;&gt;Kubernetes&amp;amp;rsquo; recommendations on common
labels&lt;/a&gt;
,
Spinnaker applies the following labels as of release 1.9:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;app.kubernetes.io/name&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is the name of the Spinnaker application this resource is deployed to,
and matches the value of the &lt;code&gt;moniker.spinnaker.io/application&lt;/code&gt; annotation
desribed 
&lt;a href=&#34;#moniker&#34;&gt;here&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;app.kubernetes.io/managed-by&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Always set to &lt;code&gt;&amp;quot;spinnaker&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;This labeling behavior can be disabled by setting the property
&lt;code&gt;kubernetes.v2.applyAppLabels: false&lt;/code&gt; in &lt;code&gt;clouddriver-local.yml&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&#34;how-kubernetes-resources-are-managed-by-spinnaker&#34;&gt;How Kubernetes resources are managed by Spinnaker&lt;/h1&gt;
&lt;p&gt;Resource mapping between Spinnaker and Kubernetes constructs, as well as the
introduction of new types of resources, is a lot more flexible in the
Kubernetes provider than for other providers, because of how many types of
resources Kubernetes supports. Also the Kubernetes extension
mechanisms—called 
&lt;a href=&#34;https://kubernetes.io/docs/concepts/api-extension/custom-resources/&#34; target=&#34;_blank&#34;&gt;Custom Resource Definitions
(CRDs)&lt;/a&gt;
—make
it easy to build new types of resources, and Spinnaker accommodates that by
making it simple to 
&lt;a href=&#34;https://www.spinnaker.io/guides/developer/extending/crd-extensions/&#34; target=&#34;_blank&#34;&gt;extend Spinnaker to support a user&amp;amp;rsquo;s
CRDs&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;terminology-mapping&#34;&gt;Terminology mapping&lt;/h2&gt;
&lt;p&gt;It is worth noting that the resource mapping exists primarily to render
resources in the UI according to Spinnaker conventions. It does not affect how
resources are deployed or managed.&lt;/p&gt;
&lt;p&gt;There are three major groupings of resources in Spinnaker:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;server groups&lt;/li&gt;
&lt;li&gt;load balancers&lt;/li&gt;
&lt;li&gt;firewalls&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These correspond to Kubernetes resource kinds as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Server Groups ≈ Workloads&lt;/li&gt;
&lt;li&gt;Load Balancers ≈ Services, Ingresses&lt;/li&gt;
&lt;li&gt;Firewalls ≈ NetworkPolicies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resource-management-policies&#34;&gt;Resource management policies&lt;/h2&gt;
&lt;p&gt;How you manage the deployment and updates of a Kubernetes resource is dictated
by its kind, via the policies that apply to a particular kind. Below are
descriptions of these policies, followed by a mapping of kinds to policies.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are several operations that can be implemented by each kind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Deploy:&lt;/em&gt;
Can this resource be deployed and redeployed? It&amp;rsquo;s worth
mentioning that all deployments are carried out using &lt;code&gt;kubectl apply&lt;/code&gt; to
capitalize on &lt;code&gt;kubectl&lt;/code&gt;&amp;rsquo;s three-way merge on deploy. This is done to
accommodate running against your cluster, alongside Spinnaker, other tools
that rely on the three-way merge semantics.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Delete:&lt;/em&gt;
Can this resource be deleted?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Scale:&lt;/em&gt;
For workloads only, can this resource be scaled to a desired replica
count?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Undo Rollout:&lt;/em&gt;
For workloads only, can this resource be rolled back/forward
to an existing revision?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Pause Rollout:&lt;/em&gt;
For workloads only, when rolling out, can the rollout be
stopped?&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Resume Rollout:&lt;/em&gt;
For workloads only, when the rollout is paused, can it be
started again?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Versioning&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If a resource is &amp;ldquo;versioned&amp;rdquo;, it is always deployed with a new sequence
number &lt;code&gt;vNNN&lt;/code&gt;, unless no change has been made to it. This is important for
resources like &lt;code&gt;ConfigMaps&lt;/code&gt; and &lt;code&gt;ReplicaSets&lt;/code&gt;, which don&amp;rsquo;t have their own
built-in update policy like &lt;code&gt;Deployments&lt;/code&gt; or &lt;code&gt;StatefulSets&lt;/code&gt; do. Making an edit to
the resource in place, rather than redeploying, can have unexpected results and can delete
history. Regardless, whatever the policy is, it can be overriden
during a deploy manifest stage.&lt;/p&gt;
&lt;p&gt;This policy can be overriden per-manifest using the
&lt;code&gt;strategy.spinnaker.io/versioned&lt;/code&gt; annotation 
&lt;a href=&#34;#strategy&#34;&gt;described here&lt;/a&gt;
.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This describes under what conditions this kind is considered stable after a
new &lt;code&gt;spec&lt;/code&gt; has been submitted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;workloads&#34;&gt;Workloads&lt;/h2&gt;
&lt;p&gt;Anything classified as a Spinnaker server group is rendered on the
&lt;strong&gt;Clusters&lt;/strong&gt; tab in Spinnaker. If possible, any pods owned by the workload are rendered as well.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Deploy&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Scale&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Undo Rollout&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Pause Rollout&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Resume Rollout&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Versioned&lt;/th&gt;
&lt;th&gt;Stability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;DaemonSet&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.currentNumberScheduled&lt;/code&gt;, &lt;code&gt;status.updatedNumberScheduled&lt;/code&gt;, &lt;code&gt;status.numberAvailable&lt;/code&gt;, and &lt;code&gt;status.numberReady&lt;/code&gt; must all be at least the &lt;code&gt;status.desiredNumberScheduled&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;Deployment&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.updatedReplicas&lt;/code&gt;, &lt;code&gt;status.availableReplicas&lt;/code&gt;, and &lt;code&gt;status.readyReplicas&lt;/code&gt; must all match the desired replica count for the Deployment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;Pod&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td&gt;The pod must be scheduled, and pass all probes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;ReplicaSet&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.fullyLabledReplicas&lt;/code&gt;, &lt;code&gt;status.availableReplicas&lt;/code&gt;, and &lt;code&gt;status.readyReplicas&lt;/code&gt; must all match the desired replica count for the ReplicaSet.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;StatefulSet&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.currentRevision&lt;/code&gt;, and &lt;code&gt;status.updatedRevision&lt;/code&gt; must match, and &lt;code&gt;status.currentReplicas&lt;/code&gt;, and &lt;code&gt;status.readyReplicas&lt;/code&gt; must match the spec&amp;rsquo;s replica count.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;services-ingresses&#34;&gt;Services, ingresses&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Deploy&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Versioned&lt;/th&gt;
&lt;th&gt;Stability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;Service&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.loadBalancer&lt;/code&gt; field reports that a load balancer was found if and only if the service type is &lt;code&gt;LoadBalancer&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;Ingress&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;The &lt;code&gt;status.loadBalancer&lt;/code&gt; field reports that a load balancer was bound.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;networkpolicies&#34;&gt;NetworkPolicies&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Deploy&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Versioned&lt;/th&gt;
&lt;th&gt;Stability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;NetworkPolicy&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;No&lt;/td&gt;
&lt;td&gt;Automatically 
&lt;a href=&#34;#accommodating-level-based-deployments&#34;&gt;stable&lt;/a&gt;
.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;configmaps-secrets&#34;&gt;ConfigMaps, secrets&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Resource&lt;/strong&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Deploy&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;&lt;em&gt;Delete&lt;/em&gt;&lt;/th&gt;
&lt;th style=&#34;text-align:center&#34;&gt;Versioned&lt;/th&gt;
&lt;th&gt;Stability&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;ConfigMap&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td&gt;Automatically 
&lt;a href=&#34;#accommodating-level-based-deployments&#34;&gt;stable&lt;/a&gt;
.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;Secret&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td style=&#34;text-align:center&#34;&gt;Yes&lt;/td&gt;
&lt;td&gt;Automatically 
&lt;a href=&#34;#accommodating-level-based-deployments&#34;&gt;stable&lt;/a&gt;
.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Oracle Cloud</title>
      <link>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/oracle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-629--spinnaker-io.netlify.app/docs/reference/providers/oracle/</guid>
      <description>
        
        
        &lt;p&gt;For more information about Oracle Cloud or any of the terms used below, please consult

&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/home.htm&#34; target=&#34;_blank&#34;&gt;Oracle Cloud Infrastructure Documentation&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;resource-mapping&#34;&gt;Resource mapping&lt;/h2&gt;
&lt;h3 id=&#34;account&#34;&gt;Account&lt;/h3&gt;
&lt;p&gt;The Oracle Cloud provider in Spinnaker maps a Spinnaker 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/concepts/providers/#accounts&#34;&gt;Account&lt;/a&gt;

to an 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/GSG/Tasks/addingusers.htm&#34; target=&#34;_blank&#34;&gt;Oracle Cloud Infrastructure user&lt;/a&gt;
 in

&lt;a href=&#34;https://cloud.oracle.com/&#34; target=&#34;_blank&#34;&gt;Oracle Cloud Infrastructure&lt;/a&gt;
 (OCI).
Spinnaker authenticates itself with Oracle Cloud using OCI user credentials -
see the 
&lt;a href=&#34;https://deploy-preview-629--spinnaker-io.netlify.app/docs/setup/install/providers/oracle&#34;&gt;setup guide&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;load-balancer&#34;&gt;Load Balancer&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;load balancer&lt;/strong&gt; maps to an 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Balance/Concepts/balanceoverview.htm&#34; target=&#34;_blank&#34;&gt;OCI Load Balancer&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;The OCI Load Balancing service offers a load balancer with your choice of a public or private IP
address, and provisioned bandwidth. The essential components for load balancing include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A load balancer with pre-provisioned bandwidth.&lt;/li&gt;
&lt;li&gt;A backend set with a health check policy. See 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Balance/Tasks/managingbackendsets.htm&#34; target=&#34;_blank&#34;&gt;Managing Backend Sets&lt;/a&gt;
.&lt;/li&gt;
&lt;li&gt;One or more listeners . See 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Balance/Tasks/managinglisteners.htm&#34; target=&#34;_blank&#34;&gt;Managing Load Balancer Listeners&lt;/a&gt;
.&lt;/li&gt;
&lt;li&gt;Optionally, you can associate your listeners with SSL server certificates to manage how your system handles SSL traffic. See 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Balance/Tasks/managingcertificates.htm&#34; target=&#34;_blank&#34;&gt;Managing SSL Certificates&lt;/a&gt;
.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;server-group&#34;&gt;Server Group&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;server group&lt;/strong&gt; maps to a group of 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm&#34; target=&#34;_blank&#34;&gt;OCI Virtual Machine Instances&lt;/a&gt;
.&lt;/p&gt;
&lt;h3 id=&#34;instance&#34;&gt;Instance&lt;/h3&gt;
&lt;p&gt;A Spinnaker &lt;strong&gt;instance&lt;/strong&gt; maps to an 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm&#34; target=&#34;_blank&#34;&gt;OCI Virtual Machine Instance&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;When you launch an instance, you choose the most appropriate shape which is a template describing
the number of CPUs, amount of memory, and other resources allocated to a newly created instance.
See 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Compute/References/computeshapes.htm&#34; target=&#34;_blank&#34;&gt;Compute Shapes&lt;/a&gt;

for a list of available VM shapes.&lt;/p&gt;
&lt;h3 id=&#34;firewall&#34;&gt;Firewall&lt;/h3&gt;
&lt;p&gt;In OCI, a 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/securitylists.htm&#34; target=&#34;_blank&#34;&gt;security list&lt;/a&gt;

provides a virtual firewall for an instance, with ingress and egress rules that specify the types
of traffic allowed in and out. Each security list is enforced at the instance level.&lt;/p&gt;
&lt;p&gt;The Oracle Cloud provider in Spinnaker currently does not support the ability to create firewalls
for Oracle Cloud from Spinnaker. You can use the Oracle Cloud console to create and manage Security
Lists to provide a virtual firewall for an instance.&lt;/p&gt;
&lt;h2 id=&#34;operation-mapping&#34;&gt;Operation mapping&lt;/h2&gt;
&lt;h3 id=&#34;deploy&#34;&gt;Deploy&lt;/h3&gt;
&lt;p&gt;Deploys a group of VM instances in OCI.&lt;/p&gt;
&lt;p&gt;The Oracle Cloud provider in Spinnaker creates an Oracle Object Storage bucket named &lt;code&gt;_spinnaker_server_group_data&lt;/code&gt;
in the user’s tenancy to keep track of all the server groups created.&lt;/p&gt;
&lt;p&gt;If a deployed server group is configured with load balancer, all VM instances of the server group
are added to the backend set of corresponding listener in the load balancer.&lt;/p&gt;
&lt;h3 id=&#34;destroy&#34;&gt;Destroy&lt;/h3&gt;
&lt;p&gt;Destroys a server group and terminates all its VM instances. This also removes the server group
information stored in &lt;code&gt;_spinnaker_server_group_data&lt;/code&gt; bucket. If the server group is configured with
a load balancer, all the VM instances of the server group are removed from the backend set.&lt;/p&gt;
&lt;h3 id=&#34;resize&#34;&gt;Resize&lt;/h3&gt;
&lt;p&gt;Resizes a server group. If the server group is configured with load balancer, Oracle Cloud provider
adds launched VM instances to the backend set, and removes terminated VM instances from the backend
set.&lt;/p&gt;
&lt;h3 id=&#34;create-load-balancer&#34;&gt;Create Load Balancer&lt;/h3&gt;
&lt;p&gt;Creates a new Load Balancer in OCI.&lt;/p&gt;
&lt;p&gt;Before you can implement a working OCI Load Balancer, you need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A VCN with at least two public subnets for a public load balancer. Each subnet must reside in a
separate availability domain. For more information on subnets,
See 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVCNs.htm&#34; target=&#34;_blank&#34;&gt;VCNs and Subnets&lt;/a&gt;

and 
&lt;a href=&#34;https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm#Public&#34; target=&#34;_blank&#34;&gt;Public vs. Private Subnets&lt;/a&gt;
.&lt;/li&gt;
&lt;li&gt;A VCN with at least one subnet for a private load balancer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;delete-load-balancer&#34;&gt;Delete Load Balancer&lt;/h3&gt;
&lt;p&gt;Deletes a load balancer and all of its resources.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
