<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Skaffold – Environment Management</title>
    <link>https://skaffold.dev/docs/environment/</link>
    <description>Recent content in Environment Management on Skaffold</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://skaffold.dev/docs/environment/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Load environment variables from a file</title>
      <link>https://skaffold.dev/docs/environment/env-file/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/env-file/</guid>
      <description>
        
        
        &lt;p&gt;In Skaffold, a &lt;code&gt;skaffold.env&lt;/code&gt; file can be defined in the project root directory to specify environment variables that Skaffold will load into the process. This provides a more organized and manageable way of setting environment variables, rather than passing them as command line arguments.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;skaffold.env&lt;/code&gt; file should be in the format of &lt;code&gt;KEY=value&lt;/code&gt; pairs, with one pair per line. Skaffold will automatically load these variables into the environment before running any commands.&lt;/p&gt;
&lt;p&gt;Here is an example &lt;code&gt;skaffold.env&lt;/code&gt; file:&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-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENV_VAR_1=value1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENV_VAR_2=value2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
    &lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;
    Values set in a &lt;code&gt;skaffold.env&lt;/code&gt; file will not overwrite existing environment variables in the process.
&lt;/div&gt;

&lt;h3 id=&#34;setting-skaffold-flags-with-environment-variables&#34;&gt;Setting Skaffold Flags with Environment Variables&lt;/h3&gt;
&lt;p&gt;In addition to loading environment variables from the &lt;code&gt;skaffold.env&lt;/code&gt; file, Skaffold also allows users to set flags using environment variables. To set a flag using an environment variable, use the &lt;code&gt;SKAFFOLD_&lt;/code&gt; prefix and convert the flag name to uppercase.&lt;/p&gt;
&lt;p&gt;For example, to set the &lt;code&gt;--cache-artifacts&lt;/code&gt; flag to &lt;code&gt;true&lt;/code&gt;, the equivalent environment variable would be &lt;code&gt;SKAFFOLD_CACHE_ARTIFACTS=true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Here is an example usage in the &lt;code&gt;skaffold.env&lt;/code&gt; file:&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-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SKAFFOLD_CACHE_ARTIFACTS=true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SKAFFOLD_NAMESPACE=mynamespace
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
    &lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;
    If a flag is set both in the &lt;code&gt;skaffold.env&lt;/code&gt; file and as a command line argument, the value specified in the command line argument will take precedence.
&lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Docs: Local Cluster</title>
      <link>https://skaffold.dev/docs/environment/local-cluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/local-cluster/</guid>
      <description>
        
        
        &lt;p&gt;Skaffold supports fast deployments to supported locally-hosted clusters,
such as &lt;a href=&#34;https://github.com/kubernetes/minikube/&#34;&gt;&lt;code&gt;minikube&lt;/code&gt;&lt;/a&gt; and &lt;a href=&#34;https://www.docker.com/products/docker-desktop&#34;&gt;&lt;code&gt;Docker Desktop&lt;/code&gt;&lt;/a&gt;, by loading images directly
into the cluster.  Loading images is typically much faster than the
roundtrip required to push an image to a remote registry and then
for the cluster to pull that image again.&lt;/p&gt;
&lt;h3 id=&#34;auto-detection&#34;&gt;Auto detection&lt;/h3&gt;
&lt;p&gt;Skaffold&amp;rsquo;s heuristic to detect local clusters is based on the Kubernetes context name
set on kubectl. You can find your the current context name by running:&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl config current-context
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Skaffold checks for the following context names:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kubernetes context&lt;/th&gt;
&lt;th&gt;Local cluster type&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;docker-desktop&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://www.docker.com/products/docker-desktop&#34;&gt;&lt;code&gt;Docker Desktop&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;docker-for-desktop&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://www.docker.com/products/docker-desktop&#34;&gt;&lt;code&gt;Docker Desktop&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This context name is deprecated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;minikube &lt;sup&gt;1&lt;/sup&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/kubernetes/minikube/&#34;&gt;&lt;code&gt;minikube&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;See &lt;sup&gt;1&lt;/sup&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;kind-(.*)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/kubernetes-sigs/kind&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This pattern is used by kind &amp;gt;= v0.6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(.*)@kind&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/kubernetes-sigs/kind&#34;&gt;&lt;code&gt;kind&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This pattern was used by kind &amp;lt; v0.6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;k3d-(.*)&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;https://github.com/rancher/k3d&#34;&gt;&lt;code&gt;k3d&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;This pattern is used by k3d &amp;gt;= v3.0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For any other name, Skaffold assumes that the cluster is remote and that images
have to be pushed.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;1&lt;/sup&gt; Additionally, a Kubernetes context may be considered as &lt;code&gt;minikube&lt;/code&gt;
even if it&amp;rsquo;s not named &lt;code&gt;minikube&lt;/code&gt; but it&amp;rsquo;s cluster certificate is stored at
&lt;code&gt;$HOME/.minikube&lt;/code&gt; or the &lt;code&gt;minikube profile list&lt;/code&gt; command returns the Kubernetes
context name.&lt;/p&gt;
&lt;h3 id=&#34;manual-override&#34;&gt;Manual override&lt;/h3&gt;
&lt;p&gt;For non-standard local setups, such as a custom &lt;code&gt;minikube&lt;/code&gt; profile,
some extra configuration is necessary. The essential steps are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ensure that Skaffold builds the images with the same docker daemon that runs the pods&amp;rsquo; containers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tell Skaffold to skip pushing images either by configuring&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;build&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;local&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;push&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;false&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;p&gt;or by marking a Kubernetes context as local (see the following example).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, when running &lt;code&gt;minikube&lt;/code&gt; with a custom profile (e.g. &lt;code&gt;minikube start -p my-profile&lt;/code&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Set up the docker environment for Skaffold with &lt;code&gt;source &amp;lt;(minikube docker-env -p my-profile)&lt;/code&gt;.
This should set some environment variables for docker (check with &lt;code&gt;env | grep DOCKER&lt;/code&gt;).
&lt;strong&gt;It is important to do this in the same shell where Skaffold is executed.&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tell Skaffold that the Kubernetes context &lt;code&gt;my-profile&lt;/code&gt; refers to a local cluster with&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold config &lt;span style=&#34;color:#204a87&#34;&gt;set&lt;/span&gt; --kube-context my-profile local-cluster &lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;caveats&#34;&gt;Caveats&lt;/h2&gt;
&lt;p&gt;There are some caveats to note with local clusters.&lt;/p&gt;
&lt;h3 id=&#34;minikube-has-a-separate-docker-daemon&#34;&gt;Minikube has a separate Docker Daemon&lt;/h3&gt;
&lt;p&gt;Minikube has a separate Docker daemon that runs inside the minikube
virtual machine, which is independent of the Docker installation
that may be running on the host.  Skaffold automatically uses
&lt;code&gt;minikube docker-env&lt;/code&gt; to configure image builders to use this internal
Docker daemon as it &lt;a href=&#34;https://minikube.sigs.k8s.io/docs/benchmarks/imagebuild/minikubevsothers/&#34;&gt;results in a dramatic speed-up as compared to
other approaches&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The use of minikube&amp;rsquo;s internal daemon does means that images are
not available from the host&amp;rsquo;s daemon:&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-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# build the image `skaffold-example`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ skaffold build
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Starting build...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Found &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;minikube&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt; context, using &lt;span style=&#34;color:#204a87&#34;&gt;local&lt;/span&gt; docker daemon.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Successfully tagged skaffold-example:v1.35.0-37-g7ccebe58e
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Build &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;skaffold-example&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt; succeeded
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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:#8f5902;font-style:italic&#34;&gt;# but the image is not found in the host docker!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ docker images skaffold-example
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You must instead configure the Docker CLI to use the Minikube daemon:&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-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ minikube docker-env
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;DOCKER_HOST&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;tcp://127.0.0.1:54168&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#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:#204a87&#34;&gt;eval&lt;/span&gt; &lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;$(&lt;/span&gt;minikube docker-env&lt;span style=&#34;color:#204a87;font-weight:bold&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; docker images skaffold-example
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REPOSITORY         TAG                                                                IMAGE ID       CREATED       SIZE
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold-example   160fe3a3c1358ef7b3fbfd1ae19fc8c5ac096635c39171e22ad1e5242b6ad8fd   160fe3a3c135   &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt; weeks ago   7.43MB
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold-example   v1.35.0-37-g7ccebe58e                                              160fe3a3c135   &lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;3&lt;/span&gt; weeks ago   7.43MB
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Minikube also offers a set of helper commands to manage images through &lt;a href=&#34;https://minikube.sigs.k8s.io/docs/commands/image/&#34;&gt;&lt;code&gt;minikube image&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;impacts-of-imagepullpolicy&#34;&gt;Impacts of &lt;code&gt;imagePullPolicy&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Skaffold&amp;rsquo;s direct loading of images into a local cluster does mean that resources specifying
an &lt;a href=&#34;https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy&#34;&gt;&lt;code&gt;imagePullPolicy: Always&lt;/code&gt;&lt;/a&gt;
may fail as the images are not be pushed to the remote registry.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Image Repository Handling</title>
      <link>https://skaffold.dev/docs/environment/image-registries/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/image-registries/</guid>
      <description>
        
        
        &lt;p&gt;Often, a Kubernetes manifest (or &lt;code&gt;skaffold.yaml&lt;/code&gt;) makes references to images that push to
registries that we might not have access to. Modifying these individual image names manually
is tedious, so Skaffold supports automatically prefixing these image names with a registry
specified by the user. Using this, any project configured with Skaffold can be run by any user
with minimal configuration, and no manual YAML editing!&lt;/p&gt;
&lt;p&gt;This is accomplished through the &lt;code&gt;default-repo&lt;/code&gt; functionality, and can be used one of three ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--default-repo&lt;/code&gt; flag&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev --default-repo &amp;lt;myrepo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;SKAFFOLD_DEFAULT_REPO&lt;/code&gt; environment variable&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;SKAFFOLD_DEFAULT_REPO&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&amp;lt;myrepo&amp;gt; skaffold dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Skaffold&amp;rsquo;s global config&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold config &lt;span style=&#34;color:#204a87&#34;&gt;set&lt;/span&gt; default-repo &amp;lt;myrepo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If no &lt;code&gt;default-repo&lt;/code&gt; is provided by the user, there is no automated image name rewriting, and Skaffold will
try to push the image as provided in the yaml.&lt;/p&gt;
&lt;p&gt;The image name rewriting strategies are designed to be &lt;em&gt;conflict-free&lt;/em&gt;:
the full image name is rewritten on top of the default-repo so similar image names don&amp;rsquo;t collide in the base namespace (e.g.: repo1/example and repo2/example would collide in the target_namespace/example without this)&lt;/p&gt;
&lt;p&gt;Automated image name rewriting strategies are determined based on the default-repo and the original image repository:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;default-repo domain does not contain &lt;code&gt;gcr.io&lt;/code&gt; or &lt;code&gt;-docker.pkg.dev&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;strategy&lt;/strong&gt;: 		escape &amp;amp; concat &amp;amp; truncate to 256&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; original image: 	gcr.io/k8s-skaffold/skaffold-example1
 default-repo:      aws_account_id.dkr.ecr.region.amazonaws.com
 rewritten image:   aws_account_id.dkr.ecr.region.amazonaws.com/gcr_io_k8s-skaffold_skaffold-example1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;default-repo contain &lt;code&gt;gcr.io&lt;/code&gt; or &lt;code&gt;-docker.pkg.dev&lt;/code&gt; (special cases - as GCR and AR allow for arbitrarily deep directory structure in image repo names)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;strategy&lt;/strong&gt;: concat unless prefix matches&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;example1&lt;/strong&gt;: prefix doesn&amp;rsquo;t match:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  original image: 	gcr.io/k8s-skaffold/skaffold-example1
  default-repo: 	gcr.io/myproject/myimage
  rewritten image:  gcr.io/myproject/myimage/gcr.io/k8s-skaffold/skaffold-example1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;example2&lt;/strong&gt;: prefix matches:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  original image: 	gcr.io/k8s-skaffold/skaffold-example1
  default-repo: 	gcr.io/k8s-skaffold
  rewritten image:  gcr.io/k8s-skaffold/skaffold-example1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;example3&lt;/strong&gt;: shared prefix:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  original image: 	gcr.io/k8s-skaffold/skaffold-example1
  default-repo: 	gcr.io/k8s-skaffold/myimage
  rewritten image:  gcr.io/k8s-skaffold/myimage/skaffold-example1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;insecure-image-registries&#34;&gt;Insecure image registries&lt;/h2&gt;
&lt;p&gt;During development you may be forced to push images to a registry that does not support HTTPS.
By itself, Skaffold will never try to downgrade a connection to a registry to plain HTTP.
In order to access insecure registries, this has to be explicitly configured per registry name.&lt;/p&gt;
&lt;p&gt;There are several levels of granularity to allow insecure communication with some registry:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Per Skaffold run via the repeatable &lt;code&gt;--insecure-registry&lt;/code&gt; flag&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev --insecure-registry insecure1.io --insecure-registry insecure2.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Per Skaffold run via &lt;code&gt;SKAFFOLD_INSECURE_REGISTRY&lt;/code&gt; environment variable&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#000&#34;&gt;SKAFFOLD_INSECURE_REGISTRY&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;insecure1.io,insecure2.io&amp;#39;&lt;/span&gt; skaffold dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Per project via the Skaffold pipeline config &lt;code&gt;skaffold.yaml&lt;/code&gt;&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;build&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;insecureRegistries&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:#000&#34;&gt;insecure1.io&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:#000&#34;&gt;insecure2.io&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;/li&gt;
&lt;li&gt;
&lt;p&gt;Per user via Skaffold&amp;rsquo;s global config&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold config &lt;span style=&#34;color:#204a87&#34;&gt;set&lt;/span&gt; insecure-registries insecure1.io           &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# for the current kube-context&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold config &lt;span style=&#34;color:#204a87&#34;&gt;set&lt;/span&gt; --global insecure-registries insecure2.io  &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# for any kube-context&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that multiple set commands &lt;em&gt;add&lt;/em&gt; to the existing list of insecure registries.
To clear the list, run &lt;code&gt;skaffold config unset insecure-registries&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Skaffold will join the lists of insecure registries, if configured via multiple sources.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Profiles</title>
      <link>https://skaffold.dev/docs/environment/profiles/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/profiles/</guid>
      <description>
        
        
        &lt;p&gt;Skaffold profiles allow you to define build, test and deployment
configurations for different contexts. Different contexts are typically different
environments in your app&amp;rsquo;s lifecycle, like Production or Development.&lt;/p&gt;
&lt;p&gt;You can create profiles in the &lt;code&gt;profiles&lt;/code&gt; section of &lt;code&gt;skaffold.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For a detailed discussion on Skaffold configuration, see
&lt;a href=&#34;../../docs/design/config/&#34;&gt;Skaffold Concepts&lt;/a&gt; and
&lt;a href=&#34;../../docs/references/yaml/&#34;&gt;skaffold.yaml References&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;profiles-profiles&#34;&gt;Profiles (&lt;code&gt;profiles&lt;/code&gt;)&lt;/h2&gt;
&lt;p&gt;Each profile has six parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name (&lt;code&gt;name&lt;/code&gt;): The name of the profile&lt;/li&gt;
&lt;li&gt;Build configuration (&lt;code&gt;build&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Test configuration (&lt;code&gt;test&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Deploy configuration (&lt;code&gt;deploy&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Patches (&lt;code&gt;patches&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Activation (&lt;code&gt;activation&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once a profile is activated, the specified &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt; and &lt;code&gt;deploy&lt;/code&gt; configuration
in it will be laid onto, but won&amp;rsquo;t completely replace, the &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt; and &lt;code&gt;deploy&lt;/code&gt; sections declared
in the main section of &lt;code&gt;skaffold.yaml&lt;/code&gt;. The &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt; and &lt;code&gt;deploy&lt;/code&gt; configuration in the &lt;code&gt;profiles&lt;/code&gt;
section use the same syntax as the &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt; and &lt;code&gt;deploy&lt;/code&gt; sections of
&lt;code&gt;skaffold.yaml&lt;/code&gt;; for more information, see &lt;a href=&#34;../../docs/builders/&#34;&gt;Builders&lt;/a&gt;,
&lt;a href=&#34;../../docs/testers&#34;&gt;Testers&lt;/a&gt;, &lt;a href=&#34;../../docs/deployers/&#34;&gt;Deployers&lt;/a&gt; and you can always refer to
&lt;a href=&#34;../../docs/references/yaml/&#34;&gt;skaffold.yaml reference&lt;/a&gt; for an overview of the syntax.
Alternatively, you can override the main configuration with finer grained control using &lt;code&gt;patches&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;activation&#34;&gt;Activation&lt;/h3&gt;
&lt;p&gt;You can activate a profile two ways: CLI flag or skaffold.yaml activations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLI flag&lt;/strong&gt;: You can activate profiles with the &lt;code&gt;-p&lt;/code&gt; (&lt;code&gt;--profile&lt;/code&gt;) parameter in the
&lt;code&gt;skaffold dev&lt;/code&gt; and &lt;code&gt;skaffold run&lt;/code&gt; commands.&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold run -p &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;PROFILE&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Activations in skaffold.yaml&lt;/strong&gt;: You can auto-activate a profile based on&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kubecontext (could be either a string or a regexp: prefixing with &lt;code&gt;!&lt;/code&gt; will negate the match)&lt;/li&gt;
&lt;li&gt;environment variable value&lt;/li&gt;
&lt;li&gt;skaffold command (dev/run/build/deploy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A profile is auto-activated if any one of the activations under it are triggered.
An activation is triggered if all of the criteria (&lt;code&gt;env&lt;/code&gt;, &lt;code&gt;kubeContext&lt;/code&gt;, &lt;code&gt;command&lt;/code&gt;) are triggered.&lt;/p&gt;
&lt;p&gt;In the example below:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;profile1&lt;/code&gt; is activated if &lt;code&gt;MAGIC_VAR&lt;/code&gt; is 42&lt;/li&gt;
&lt;li&gt;&lt;code&gt;profile2&lt;/code&gt; is activated if &lt;code&gt;MAGIC_VAR&lt;/code&gt; is 1337 or we are running &lt;code&gt;skaffold dev&lt;/code&gt; while kubecontext is set to &lt;code&gt;minikube&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&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;build&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;artifacts&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/skaffold-example&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;manifests&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;rawYaml&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:#000&#34;&gt;k8s-pod&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;profiles&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:#000&#34;&gt;profile1&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;activation&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;env&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:#000&#34;&gt;MAGIC_VAR=42&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:#000&#34;&gt;profile2&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;activation&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;env&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:#000&#34;&gt;MAGIC_VAR=1337&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;kubeContext&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:#000&#34;&gt;minikube&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;command&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:#000&#34;&gt;dev&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;h3 id=&#34;override-via-replacement&#34;&gt;Override via replacement&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt; and &lt;code&gt;deploy&lt;/code&gt; sections defined in the profile will be laid onto the main configuration.
The default values are the same in profiles as in the main config.&lt;/p&gt;
&lt;p&gt;The following example showcases a &lt;code&gt;skaffold.yaml&lt;/code&gt; with one profile named &lt;code&gt;gcb&lt;/code&gt;,
for building with Google Cloud Build:&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;build&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;artifacts&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/skaffold-example&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;manifests&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;rawYaml&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:#000&#34;&gt;k8s-pod&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;profiles&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:#000&#34;&gt;gcb&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;build&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;googleCloudBuild&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;projectId&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:#000&#34;&gt;k8s-skaffold&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;p&gt;With no profile activated, Skaffold will build the artifact
&lt;code&gt;gcr.io/k8s-skaffold/skaffold-example&lt;/code&gt; using local Docker daemon and deploy it
with &lt;code&gt;kubectl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;However, if you run Skaffold with the following command:&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev -p gcb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Skaffold will switch to Google Cloud Build for building artifacts.&lt;/p&gt;
&lt;p&gt;Note that
since the &lt;code&gt;gcb&lt;/code&gt; profile does not specify a deploy configuration, Skaffold will
continue using &lt;code&gt;kubectl&lt;/code&gt; for deployments.&lt;/p&gt;
&lt;h3 id=&#34;override-via-patches&#34;&gt;Override via patches&lt;/h3&gt;
&lt;p&gt;Patches are a more verbose way of overriding your config, but they provide a powerful, fine-grained way
to override individual values in your yaml config. They are based on &lt;a href=&#34;http://jsonpatch.com/&#34;&gt;JSON Patch&lt;/a&gt; under the hood.&lt;/p&gt;
&lt;p&gt;In the example below instead of overriding the whole &lt;code&gt;build&lt;/code&gt; section, the &lt;code&gt;dev&lt;/code&gt; profile specifically
defines a different Dockerfile to use for the first artifact.&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;build&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;artifacts&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/skaffold-example&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;docker&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;dockerfile&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:#000&#34;&gt;Dockerfile&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/skaffold2&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/skaffold3&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;manifests&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;rawYaml&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:#000&#34;&gt;k8s-pod&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;profiles&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:#000&#34;&gt;dev&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;patches&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;op&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:#000&#34;&gt;replace&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;path&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:#000&#34;&gt;/build/artifacts/0/docker/dockerfile&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;value&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:#000&#34;&gt;Dockerfile_dev&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;h3 id=&#34;activating-multiple-profiles-at-the-same-time&#34;&gt;Activating multiple profiles at the same time&lt;/h3&gt;
&lt;p&gt;Multiple profiles can be specified either by using the &lt;code&gt;-p&lt;/code&gt; flag multiple times or by comma separated profiles.&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev -p hello,world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Skaffold will activate both profiles, &lt;code&gt;hello&lt;/code&gt; and &lt;code&gt;world&lt;/code&gt;.
This is e.g. useful when combined with patches to provide a composable development setup where &lt;code&gt;hello&lt;/code&gt; and &lt;code&gt;world&lt;/code&gt; can be added on demand.&lt;/p&gt;
&lt;h3 id=&#34;deactivating-profiles&#34;&gt;Deactivating Profiles&lt;/h3&gt;
&lt;p&gt;Profiles can also be manually deactivated by prefixing the profile name with &lt;code&gt;-&lt;/code&gt; like so:&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev -p hello,-world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Skaffold will activate the &lt;code&gt;hello&lt;/code&gt; profile, and deactivate the &lt;code&gt;world&lt;/code&gt; profile, even if it had otherwise been activated through the configuration.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Kube-context Activation</title>
      <link>https://skaffold.dev/docs/environment/kube-context/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/kube-context/</guid>
      <description>
        
        
        &lt;p&gt;When interacting with a Kubernetes cluster, just like any other Kubernetes-native tool,
Skaffold requires a valid Kubernetes context to be configured.
The selected kube-context determines the Kubernetes cluster, the Kubernetes user, and the default namespace.
By default, Skaffold uses the &lt;em&gt;current&lt;/em&gt; kube-context from your kube-config file.&lt;/p&gt;
&lt;p&gt;You can override this default one of two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--kube-context&lt;/code&gt; flag&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-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;skaffold dev --kube-context &amp;lt;myrepo&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Specify &lt;code&gt;deploy.kubeContext&lt;/code&gt; configuration in &lt;code&gt;skaffold.yaml&lt;/code&gt;&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;deploy&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;kubeContext&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:#000&#34;&gt;minikube&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;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The CLI flag always takes precedence over the config field in the &lt;code&gt;skaffold.yaml&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;kube-context-activation-and-skaffold-profiles&#34;&gt;Kube-context activation and Skaffold profiles&lt;/h3&gt;
&lt;p&gt;The kube-context has a double role for Skaffold profiles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;A Skaffold profile may be auto-activated by the current kube-context (via &lt;code&gt;profiles.activation.kubeContext&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A Skaffold profile may change the kube-context (via &lt;code&gt;profiles.deploy.kubeContext&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Skaffold ensures that these two roles are not conflicting.
To that end, profile activation is done with the original kube-context.
If any profile is auto-activated by a matching kube-context, the resulting kube-context must remain unchanged.
This rule prevents profile-specific settings for one context to be deployed into a different context.&lt;/p&gt;
&lt;p&gt;For example, given the following profiles:&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;profiles&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:#000&#34;&gt;profile-1&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;deploy&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;kubeContext&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:#000&#34;&gt;docker-for-desktop&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&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:#000&#34;&gt;profile-2&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;activation&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;kubeContext&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:#000&#34;&gt;minikube&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;p&gt;It is illegal to activate both profiles here, because &lt;code&gt;profile-2&lt;/code&gt; has an activation by &lt;code&gt;kube-context&lt;/code&gt; and &lt;code&gt;profile-1&lt;/code&gt; changes the effective &lt;code&gt;kube-context&lt;/code&gt;.
This happens for&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skaffold run -p profile-1,profile-2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skaffold run -p profile-1&lt;/code&gt; if the current kube-context is &lt;code&gt;minikube&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
    &lt;h4 class=&#34;alert-heading&#34;&gt;Note&lt;/h4&gt;
    It is possible to activate conflicting profiles in conjunction with the CLI flag. So the following example is valid &lt;code&gt;skaffold run --kube-context minikube -p profile-1,profile-2&lt;/code&gt;
&lt;/div&gt;

&lt;h3 id=&#34;limitations&#34;&gt;Limitations&lt;/h3&gt;
&lt;p&gt;It is not possible to change the kube-context of a running &lt;code&gt;skaffold dev&lt;/code&gt; session.
To pick up the changes to &lt;code&gt;kubeContext&lt;/code&gt;, you will need to quit and re-run &lt;code&gt;skaffold dev&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;kubeconfig-selection&#34;&gt;Kubeconfig selection&lt;/h2&gt;
&lt;p&gt;The kubeconfig file is only loaded once during Skaffold&amp;rsquo;s startup phase.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If the &lt;code&gt;--kubeconfig&lt;/code&gt; flag is set, then only that file is loaded.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;$KUBECONFIG&lt;/code&gt; environment variable is set, then it is used as a list of paths (normal path delimiting rules for your system). These paths are merged.&lt;/li&gt;
&lt;li&gt;Otherwise, ${HOME}/.kube/config is used.&lt;/li&gt;
&lt;li&gt;If neither &lt;code&gt;--kubeconfig&lt;/code&gt; or &lt;code&gt;--kube-context&lt;/code&gt; are given and no kubeconfig file is found, Skaffold will try to guess an in-cluster
configuration using the secrets stored in &lt;code&gt;/var/run/secrets/kubernetes.io/serviceaccount/&lt;/code&gt;. This is useful when Skaffold runs inside
a kubernetes Pod and should deploy to the same cluster.&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Templated Fields</title>
      <link>https://skaffold.dev/docs/environment/templating/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://skaffold.dev/docs/environment/templating/</guid>
      <description>
        
        
        &lt;p&gt;Skaffold allows for certain fields in the config to be templated via the &lt;a href=&#34;https://pkg.go.dev/text/template&#34;&gt;Go &lt;code&gt;text/template&lt;/code&gt; package&lt;/a&gt;.
Environment variables and certain special values computed by Skaffold (see below) are available in the templating
context (defined as &amp;ldquo;dot&amp;rdquo; or &lt;code&gt;.&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Go templates are quite powerful, including &lt;a href=&#34;https://pkg.go.dev/text/template#hdr-Actions&#34;&gt;control flow&lt;/a&gt;,
&lt;a href=&#34;https://pkg.go.dev/text/template#hdr-Arguments&#34;&gt;arguments&lt;/a&gt;, &lt;a href=&#34;https://pkg.go.dev/text/template#hdr-Pipelines&#34;&gt;pipelining&lt;/a&gt;
and &lt;a href=&#34;https://pkg.go.dev/text/template#hdr-Variables&#34;&gt;variables&lt;/a&gt;. &lt;a href=&#34;https://pkg.go.dev/text/template#hdr-Functions&#34;&gt;Predefined functions&lt;/a&gt;
in the standard library are complemented in Skaffold by the  &lt;a href=&#34;http://masterminds.github.io/sprig/&#34;&gt;Sprig template function library&lt;/a&gt;.&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;build&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;tagPolicy&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;envTemplate&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;template&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;{{.FOO}}&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;artifacts&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;image&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:#000&#34;&gt;gcr.io/k8s-skaffold/example&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;p&gt;Suppose the value of the &lt;code&gt;FOO&lt;/code&gt; environment variable is &lt;code&gt;v1&lt;/code&gt;, the image built
will be &lt;code&gt;gcr.io/k8s-skaffold/example:v1&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;list-of-fields-that-support-templating&#34;&gt;List of fields that support templating:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;build.artifacts[].docker.buildArgs&lt;/code&gt; (see &lt;a href=&#34;../../docs/builders/&#34;&gt;builders&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;build.artifacts[].ko.{env,flags,labels,ldflags}&lt;/code&gt; (see &lt;a href=&#34;../../docs/builders/builder-types/ko/&#34;&gt;&lt;code&gt;ko&lt;/code&gt; builder&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;build.tagPolicy.envTemplate.template&lt;/code&gt; (see &lt;a href=&#34;../../docs/taggers/#envtemplate-using-values-of-environment-variables-as-tags)&#34;&gt;envTemplate tagger&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].chartPath&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].name&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].namespace&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].repo&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].setValueTemplates&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases[].version&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.helm.releases.valuesFiles&lt;/code&gt; (see &lt;a href=&#34;../../docs/deployers/#deploying-with-helm)&#34;&gt;Deploying with helm&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.kubectl.defaultNamespace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;deploy.kustomize.defaultNamespace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;manifests.kustomize.paths.[]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;manifests.helm.releases[].setValueTemplates&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;portForward.namespace&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;portForward.resourceName&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Please note, this list is not exhaustive.&lt;/em&gt;&lt;/p&gt;
&lt;h4 id=&#34;list-of-variables-that-are-available-for-templating&#34;&gt;List of variables that are available for templating:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;all environment variables passed to the Skaffold process at startup&lt;/li&gt;
&lt;li&gt;For the &lt;code&gt;envTemplate&lt;/code&gt; tagger:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IMAGE_NAME&lt;/code&gt; - the artifact&amp;rsquo;s image name - the &lt;a href=&#34;../../docs/environment/image-registries/&#34;&gt;image name rewriting&lt;/a&gt; acts after the template is calculated&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;For Helm deployments:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;IMAGE_NAME&lt;/code&gt;, &lt;code&gt;IMAGE_TAG&lt;/code&gt;, &lt;code&gt;IMAGE_DIGEST, IMAGE_DOMAIN, IMAGE_REPO_NO_DOMAIN&lt;/code&gt; - the first (by order of declaration in &lt;code&gt;build.artifacts&lt;/code&gt;) artifact&amp;rsquo;s image name, repo, tag, sha256 digest, registry/domain and repository w/o the registry/domain prefixed . Note: the &lt;a href=&#34;../../docs/environment/image-registries/&#34;&gt;image name rewriting&lt;/a&gt; acts after the template is calculated.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IMAGE_NAME_&amp;lt;artifact-name&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_REPO_&amp;lt;artifact-name&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_TAG_&amp;lt;artifact-name&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_DIGEST_&amp;lt;artifact-name&amp;gt;&lt;/code&gt; - the named artifact&amp;rsquo;s image name, repo, tag, and sha256 digest. NOTE: When used in for templating all &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; chars must be changed to &lt;code&gt;_&lt;/code&gt; characters as go templates do not accept &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IMAGE_NAME2&lt;/code&gt;, &lt;code&gt;IMAGE_REPO2&lt;/code&gt;, &lt;code&gt;IMAGE_TAG2&lt;/code&gt;, &lt;code&gt;IMAGE_DIGEST2&lt;/code&gt; - the 2nd artifact&amp;rsquo;s image name, tag, and sha256 digest&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IMAGE_NAME&amp;lt;N&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_REPO&amp;lt;N&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_TAG&amp;lt;N&amp;gt;&lt;/code&gt;, &lt;code&gt;IMAGE_DIGEST&amp;lt;N&amp;gt;&lt;/code&gt; - the Nth artifact&amp;rsquo;s image name, tag, and sha256 digest&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;local-template-functions&#34;&gt;Local template functions&lt;/h3&gt;
&lt;p&gt;In addition to the functions listed above, Skaffold locally provides the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cmd&lt;/code&gt;: This allows users to use the result from external commands in template, for example &lt;code&gt;{{cmd &amp;quot;bash&amp;quot; &amp;quot;-c&amp;quot; &amp;quot;xxx xxx xxx&amp;quot;}}&lt;/code&gt; can be used to execute bash script and get the result into the template.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;usage-examples&#34;&gt;Usage Examples&lt;/h3&gt;
&lt;p&gt;The templating pipelines provided by Go templates can be quite comprehensive when combined with Sprig. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The environment variable &lt;code&gt;SOURCE_DATE_EPOCH&lt;/code&gt; commonly specifies a UNIX timestamp to be used in replacement of the
current date and time in compiler &lt;code&gt;__DATE__&lt;/code&gt; and &lt;code&gt;__TIME__&lt;/code&gt; macros, so that the embedded timestamps become reproducible.
A numeric UNIX timestamp is less readable than a proper date, and the environment variable may not exist at all,
in which case we would want to use the current date. This could be written as:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;default now .SOURCE_DATE_EPOCH | date &amp;quot;2006-01-02T15:04:05-0700&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The idiomatic seven-character abbreviated Git hash is easily accessible:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cmd &amp;quot;bash&amp;quot; &amp;quot;-c&amp;quot; &amp;quot;git rev-parse HEAD&amp;quot; | substr 0 7&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

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