<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2026-02-22T12:14:20+00:00</updated><id>/feed.xml</id><title type="html">Janne Mattila</title><subtitle>From programmer to programmer -- Programming just for the fun of it</subtitle><author><name>Janne Mattila</name></author><entry><title type="html">ACR cleanup</title><link href="/azure/2030/12/31/acr-cleanup.html" rel="alternate" type="text/html" title="ACR cleanup" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/acr-cleanup</id><content type="html" xml:base="/azure/2030/12/31/acr-cleanup.html"><![CDATA[<!--
https://learn.microsoft.com/en-us/azure/container-registry/container-registry-retention-policy
https://learn.microsoft.com/en-us/azure/container-registry/container-registry-tasks-scheduled

-->]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="acr" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">AKS and Topology Aware Routing</title><link href="/azure/2030/12/31/aks-and-topology-aware-routing.html" rel="alternate" type="text/html" title="AKS and Topology Aware Routing" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/aks-and-topology-aware-routing</id><content type="html" xml:base="/azure/2030/12/31/aks-and-topology-aware-routing.html"><![CDATA[<div class="image-section">
    <a href="/assets/posts/2024/10/21/azure-firewall-and-availability-zones/export1.png" target="_blank" style="vertical-align: middle" title=""><img src="/assets/posts/2024/10/21/azure-firewall-and-availability-zones/export1.png" width="100%" height="100%" alt="" title="" class="image-embedded-section" />
    </a>
</div>

<div class="image-section">
    <a href="/assets/posts/common/magic-large.gif" target="_blank" style="vertical-align: middle" title="Cosmos DB and networking is magic"><img src="/assets/posts/common/magic-large.gif" width="100%" height="100%" alt="Cosmos DB and networking is magic" title="Cosmos DB and networking is magic" class="image-embedded-section" />
    </a>
</div>

<p>Sometimes modules encapsulate the functionality so well that you don’t really understand
what’s happening under the hood anymore. And as you might know, I hate <a href="/azure/2023/08/14/cosmosdb-and-magic.html">magic</a>.</p>

<p><a href="https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/">text</a></p>

<p><a href="https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/">text</a></p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">v1</span>
<span class="na">kind</span><span class="pi">:</span> <span class="s">Service</span>
<span class="na">metadata</span><span class="pi">:</span>
  <span class="na">name</span><span class="pi">:</span> <span class="s">network-app-svc</span>
  <span class="na">namespace</span><span class="pi">:</span> <span class="s">network-app</span>
<span class="na">spec</span><span class="pi">:</span>
  <span class="na">type</span><span class="pi">:</span> <span class="s">ClusterIP</span>
  <span class="na">ports</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="na">port</span><span class="pi">:</span> <span class="m">80</span>
      <span class="na">targetPort</span><span class="pi">:</span> <span class="m">8080</span>
  <span class="na">selector</span><span class="pi">:</span>
    <span class="na">app</span><span class="pi">:</span> <span class="s">network-app</span>
</code></pre></div></div>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">apps/v1</span>
<span class="na">kind</span><span class="pi">:</span> <span class="s">Deployment</span>
<span class="na">metadata</span><span class="pi">:</span>
  <span class="na">name</span><span class="pi">:</span> <span class="s">network-app-deployment</span>
  <span class="na">namespace</span><span class="pi">:</span> <span class="s">network-app</span>
<span class="na">spec</span><span class="pi">:</span>
  <span class="na">replicas</span><span class="pi">:</span> <span class="m">3</span>
  <span class="na">selector</span><span class="pi">:</span>
    <span class="na">matchLabels</span><span class="pi">:</span>
      <span class="na">app</span><span class="pi">:</span> <span class="s">network-app</span>
  <span class="na">template</span><span class="pi">:</span>
    <span class="na">metadata</span><span class="pi">:</span>
      <span class="na">labels</span><span class="pi">:</span>
        <span class="na">app</span><span class="pi">:</span> <span class="s">network-app</span>
    <span class="na">spec</span><span class="pi">:</span>
      <span class="na">nodeSelector</span><span class="pi">:</span>
        <span class="na">kubernetes.io/os</span><span class="pi">:</span> <span class="s">linux</span>
      <span class="na">topologySpreadConstraints</span><span class="pi">:</span>
        <span class="pi">-</span> <span class="na">maxSkew</span><span class="pi">:</span> <span class="m">1</span>
          <span class="na">topologyKey</span><span class="pi">:</span> <span class="s">topology.kubernetes.io/zone</span>
          <span class="na">whenUnsatisfiable</span><span class="pi">:</span> <span class="s">ScheduleAnyway</span>
          <span class="na">labelSelector</span><span class="pi">:</span>
            <span class="na">matchLabels</span><span class="pi">:</span>
              <span class="na">app</span><span class="pi">:</span> <span class="s">network-app</span>
      <span class="na">containers</span><span class="pi">:</span>
        <span class="pi">-</span> <span class="na">image</span><span class="pi">:</span> <span class="s">jannemattila/webapp-network-tester:1.0.75</span>
          <span class="na">name</span><span class="pi">:</span> <span class="s">network-app</span>
          <span class="na">resources</span><span class="pi">:</span>
            <span class="na">requests</span><span class="pi">:</span>
              <span class="na">cpu</span><span class="pi">:</span> <span class="s">100m</span>
              <span class="na">memory</span><span class="pi">:</span> <span class="s">100Mi</span>
            <span class="na">limits</span><span class="pi">:</span>
              <span class="na">cpu</span><span class="pi">:</span> <span class="s">150m</span>
              <span class="na">memory</span><span class="pi">:</span> <span class="s">150Mi</span>
          <span class="na">ports</span><span class="pi">:</span>
            <span class="pi">-</span> <span class="na">containerPort</span><span class="pi">:</span> <span class="m">8080</span>
              <span class="na">name</span><span class="pi">:</span> <span class="s">http</span>
              <span class="na">protocol</span><span class="pi">:</span> <span class="s">TCP</span>
</code></pre></div></div>

<p>Update the service:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="na">apiVersion</span><span class="pi">:</span> <span class="s">v1</span>
<span class="na">kind</span><span class="pi">:</span> <span class="s">Service</span>
<span class="na">metadata</span><span class="pi">:</span>
  <span class="na">name</span><span class="pi">:</span> <span class="s">network-app-svc</span>
  <span class="na">namespace</span><span class="pi">:</span> <span class="s">network-app</span>
  <span class="na">annotations</span><span class="pi">:</span>
    <span class="na">service.kubernetes.io/topology-mode</span><span class="pi">:</span> <span class="s">Auto</span>
<span class="na">spec</span><span class="pi">:</span>
  <span class="na">type</span><span class="pi">:</span> <span class="s">ClusterIP</span>
  <span class="na">trafficDistribution</span><span class="pi">:</span> <span class="s">PreferClose</span>
  <span class="na">internalTrafficPolicy</span><span class="pi">:</span> <span class="s">Local</span>
  <span class="na">ports</span><span class="pi">:</span>
    <span class="pi">-</span> <span class="na">port</span><span class="pi">:</span> <span class="m">80</span>
      <span class="na">targetPort</span><span class="pi">:</span> <span class="m">8080</span>
  <span class="na">selector</span><span class="pi">:</span>
    <span class="na">app</span><span class="pi">:</span> <span class="s">network-app</span>
</code></pre></div></div>]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="chaos-studio" /><category term="chaos-engineering" /><category term="chaos-mesh" /><category term="kubernetes" /><category term="aks" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Anonymous access to my images from Azure Container Registry</title><link href="/azure/2030/12/31/anonymous-access-to-acr.html" rel="alternate" type="text/html" title="Anonymous access to my images from Azure Container Registry" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/anonymous-access-to-acr</id><content type="html" xml:base="/azure/2030/12/31/anonymous-access-to-acr.html"><![CDATA[<p>If I want to deploy Azure Container Instances (ACI) with my images from Docker Hub, I’m quite frequently 
running into these deployment errors:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">resource_group_name</span><span class="o">=</span><span class="s2">"rg-aci-demo"</span>
<span class="nv">location</span><span class="o">=</span><span class="s2">"swedencentral"</span>

az group create <span class="nt">-l</span> <span class="nv">$location</span> <span class="nt">-n</span> <span class="nv">$resource_group_name</span> <span class="nt">-o</span> table

<span class="nv">aci_ip</span><span class="o">=</span><span class="si">$(</span>az container create <span class="se">\</span>
  <span class="nt">--name</span> <span class="s2">"aci-demo"</span> <span class="se">\</span>
  <span class="nt">--resource-group</span> <span class="nv">$resource_group_name</span> <span class="se">\</span>
  <span class="nt">--image</span> <span class="s2">"jannemattila/webapp-network-tester:1.0.76"</span> <span class="se">\</span>
  <span class="nt">--ports</span> 80 <span class="se">\</span>
  <span class="nt">--ip-address</span> Public <span class="se">\</span>
  <span class="nt">--cpu</span> 1 <span class="se">\</span>
  <span class="nt">--memory</span> 1 <span class="se">\</span>
  <span class="nt">--environment-variables</span> <span class="s2">"ASPNETCORE_URLS=http://*:80"</span> <span class="se">\</span>
  <span class="nt">--restart-policy</span> Always <span class="se">\</span>
  <span class="nt">--query</span> ipAddress.ip <span class="nt">-o</span> tsv<span class="si">)</span>

curl <span class="nv">$aci_ip</span>
</code></pre></div></div>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az acr update <span class="nt">--name</span> <span class="s2">"jannemattila"</span> <span class="nt">--anonymous-pull-enabled</span> <span class="nb">true</span>
</code></pre></div></div>

<ul>
  <li>Public ACR to avoid ACI issues
    <ul>
      <li></li>
      <li>https://github.com/Azure/acr/blob/main/docs/custom-domain/README.md</li>
      <li>az acr update –name <your-registry-name> --custom-domain <your-custom-domain></your-custom-domain></your-registry-name></li>
    </ul>

    <p>az acr import –name jannemattila –source docker.io/jannemattila/web-navigator:latest –image web-navigator</p>
  </li>
</ul>]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="containers" /><category term="acr" /><category term="aci" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">App Gateway and Load Balancer and Connection Draining</title><link href="/networking/2030/12/31/appgw-and-lb-and-connection-draining.html" rel="alternate" type="text/html" title="App Gateway and Load Balancer and Connection Draining" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/networking/2030/12/31/appgw-and-lb-and-connection-draining</id><content type="html" xml:base="/networking/2030/12/31/appgw-and-lb-and-connection-draining.html"><![CDATA[<!--
https://learn.microsoft.com/en-us/azure/load-balancer/admin-state-overview
-->]]></content><author><name>Janne Mattila</name></author><category term="networking" /><category term="networking" /><category term="azure" /><category term="aks" /><category term="appservice" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Azure Change Analysis</title><link href="/azure/2030/12/31/azure-change-analysis.html" rel="alternate" type="text/html" title="Azure Change Analysis" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/azure-change-analysis</id><content type="html" xml:base="/azure/2030/12/31/azure-change-analysis.html"><![CDATA[<p>Recently, I’ve had two customer cases with weird problems in their applications. For both the solution was clear when we used Azure Change Analysis to understand what was going on in their environment. 
Change Analysis is nothing new but I feel that it’s not still used as much in troubleshooting scenarios as it should. Therefore, I wanted to remind people about.
Easy filtering.</p>

<div class="image-section">
    <a href="/assets/posts/2025/08/09/waf-on-application-gateway-for-containers/alb.png" target="_blank" style="vertical-align: middle" title=""><img src="/assets/posts/2025/08/09/waf-on-application-gateway-for-containers/alb.png" width="100%" height="100%" alt="" title="" class="image-embedded-section" />
    </a>
</div>

<p><a href="https://learn.microsoft.com/en-us/azure/governance/resource-graph/changes/view-resource-changes">text</a></p>

<p><a href="https://learn.microsoft.com/en-us/azure/governance/resource-graph/changes/resource-graph-changes">text</a></p>

<p><a href="https://learn.microsoft.com/en-us/azure/azure-monitor/change/change-analysis#supported-resource-types">Supported resource types</a></p>

<p>Activity Log</p>

<p>Add a tag: It comes fast, Web app deployment: might take a while (11:50 -&gt; )</p>

<p>I hope you find this useful!</p>]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="governance" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/posts/drafts/change-analysis/change-analysis3.png" /><media:content medium="image" url="/assets/posts/drafts/change-analysis/change-analysis3.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Monitoring connectivity from your edge using connection monitor</title><link href="/azure/2030/12/31/connection-monitoring.html" rel="alternate" type="text/html" title="Monitoring connectivity from your edge using connection monitor" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/connection-monitoring</id><content type="html" xml:base="/azure/2030/12/31/connection-monitoring.html"><![CDATA[]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="networking" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/posts/2025/03/23/export-as-bicep/export.png" /><media:content medium="image" url="/assets/posts/2025/03/23/export-as-bicep/export.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Load Balancer</title><link href="/azure/2030/12/31/load-balancer.html" rel="alternate" type="text/html" title="Load Balancer" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/load-balancer</id><content type="html" xml:base="/azure/2030/12/31/load-balancer.html"><![CDATA[<p>https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-tcp-reset
A common practice is to use a TCP keep-alive. This practice keeps the connection active for a longer period. For more information, see these .NET examples. With keep-alive enabled, packets are sent during periods of inactivity on the connection. Keep-alive packets ensure the idle timeout value isn’t reached and the connection is maintained for a long period.</p>

<p>https://carsonip.me/posts/azure-tcp-idle-timeout-tcp-keepalive-python/</p>

<p>https://github.com/wbuchwalter/azure-content/blob/master/includes/guidance-tcp-session-timeout-include.md</p>

<p>https://support.esri.com/en-us/knowledge-base/change-the-operating-system-s-keepalive-settings-146247-000006285</p>

<p>https://www.reddit.com/r/networking/comments/1f4ystv/if_i_enable_tcp_keepalive_on_a_server_but_not_on/?rdt=41623</p>

<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span><span class="w"> </span>netsh int tcp show global
<span class="go">Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Receive Window Auto-Tuning Level    : normal
Add-On Congestion Control Provider  : default
ECN Capability                      : enabled
RFC 1323 Timestamps                 : allowed
Initial RTO                         : 1000
Receive Segment Coalescing State    : enabled
Non Sack Rtt Resiliency             : disabled
Max SYN Retransmissions             : 4
Fast Open                           : disabled
Fast Open Fallback                  : enabled
HyStart                             : enabled
Proportional Rate Reduction         : enabled
Pacing Profile                      : off

</span><span class="gp">$</span><span class="w"> </span>netsh int tcp <span class="nb">set </span>global <span class="nv">tcpkeepalive</span><span class="o">=</span>enabled
<span class="go">
</span></code></pre></div></div>

<p>Linux</p>

<p>https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html</p>

<div class="language-console highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gp">$</span><span class="w"> </span><span class="nb">cat</span> /proc/sys/net/ipv4/tcp_keepalive_time
<span class="go">7200

</span><span class="gp">$</span><span class="w"> </span><span class="nb">cat</span> /proc/sys/net/ipv4/tcp_keepalive_intvl
<span class="go">75

</span><span class="gp">$</span><span class="w"> </span><span class="nb">sudo </span>bash <span class="nt">-c</span> <span class="s2">"echo 60 &gt; /proc/sys/net/ipv4/tcp_keepalive_time"</span>
<span class="gp">$</span><span class="w"> </span><span class="nb">sudo </span>bash <span class="nt">-c</span> <span class="s2">"echo 60 &gt; /proc/sys/net/ipv4/tcp_keepalive_intvl"</span>
<span class="go">
</span><span class="gp">$</span><span class="w"> </span><span class="nb">cat</span> /etc/sysctl.conf
<span class="go">  net.ipv4.tcp_keepalive_time = 60

</span><span class="gp">$</span><span class="w"> </span>nc <span class="nt">-l</span> 5000
<span class="go">
</span><span class="gp">$</span><span class="w"> </span>sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_intvl
<span class="gp">$</span><span class="w"> </span>sysctl <span class="nt">-w</span> net.ipv4.tcp_keepalive_time<span class="o">=</span>60
<span class="gp">$</span><span class="w"> </span><span class="nb">sudo </span>nano /etc/sysctl.conf
</code></pre></div></div>

<p>Capture filter</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>tcp port 5000 and not src host 168.63.129.16 and not dst host 168.63.129.16
</code></pre></div></div>]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="networking" /><category term="load-balancer" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/posts/2024/11/18/logic-app-and-easyauth/authentication1.png" /><media:content medium="image" url="/assets/posts/2024/11/18/logic-app-and-easyauth/authentication1.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Network security groups and Flush Connection property</title><link href="/azure/2030/12/31/nsg-flushconnection.html" rel="alternate" type="text/html" title="Network security groups and Flush Connection property" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/nsg-flushconnection</id><content type="html" xml:base="/azure/2030/12/31/nsg-flushconnection.html"><![CDATA[<p>I previously wrote about
<a href="/azure/2024/03/18/network-security-groups-and-existing-connections.html">Network security groups and existing connections</a>
which explains how Network Security Groups (NSG) work in Azure.</p>

<p>However, there is a new property <code class="language-plaintext highlighter-rouge">flushConnection</code> in
<a href="https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep">Network Security Group</a>:
&lt;!–</p>
<ul>
  <li>NSG Flush Connection
    <ul>
      <li>https://learn.microsoft.com/en-us/powershell/module/az.network/new-aznetworksecuritygroup?view=azps-13.3.0</li>
      <li>https://learn.microsoft.com/en-us/azure/templates/microsoft.network/networksecuritygroups?pivots=deployment-language-bicep</li>
      <li>https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.network.models.networksecuritygroup.flushconnection?view=azure-dotnet</li>
    </ul>
  </li>
</ul>

<p>https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.management.network.models.virtualnetwork.flowtimeoutinminutes?view=azure-dotnet
–&gt;</p>

<blockquote>
  <p><strong>flushConnection</strong><br />
When enabled, <strong>flows created from Network Security Group connections will be re-evaluated when rules are updates</strong>.
Initial enablement will trigger re-evaluation.</p>
</blockquote>

<p>To enable this functionality, you need to set <code class="language-plaintext highlighter-rouge">flushConnection</code> to <code class="language-plaintext highlighter-rouge">true</code>:</p>

<pre><code class="language-bicep">resource nsg 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
  name: nsgName
  location: location
  properties: {
    flushConnection: true // &lt;- This is the new property
    securityRules: [
      {
        name: 'HttpInbound'
        properties: {
          protocol: 'Tcp'
          sourcePortRange: '*'
          destinationPortRange: '80'
          sourceAddressPrefix: '*'
          destinationAddressPrefix: '*'
          access: 'Deny' // Toggle with 'Allow'
          priority: 100
          direction: 'Inbound'
        }
      }
    ]
  }
}
</code></pre>

<p>Let’s see how it looks in practice. I’ll repeat the same example as in the previous post but with the new property.</p>

<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">New-AzResourceGroupDeployment:</span><span class="w"> </span><span class="nx">C:\GitHub\JanneMattila\bicep-demos\nsg\deploy.ps1:38:11</span><span class="w">
</span><span class="n">Line</span><span class="w"> </span><span class="o">|</span><span class="w">
  </span><span class="mi">38</span><span class="w"> </span><span class="o">|</span><span class="w">  </span><span class="nv">$result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">New-AzResourceGroupDeployment</span><span class="w"> </span><span class="se">`
</span><span class="w">     </span><span class="o">|</span><span class="w">            </span><span class="n">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</span><span class="w">
     </span><span class="o">|</span><span class="w"> </span><span class="mf">11.00</span><span class="o">.</span><span class="nf">00</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="nx">deployment</span><span class="w"> </span><span class="s1">'Local-2024-06-25-10-59-44'</span><span class="w"> </span><span class="nx">failed</span><span class="w"> </span><span class="nx">with</span><span class="w"> </span><span class="nx">error</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="o">.</span><span class="w"> </span><span class="n">Showing</span><span class="w"> </span><span class="nx">1</span><span class="w"> </span><span class="nx">out</span><span class="w"> </span><span class="nx">of</span><span class="w"> </span><span class="nx">1</span><span class="w"> </span><span class="nx">error</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="o">.</span><span class="w"> </span><span class="n">Status</span><span class="w"> </span><span class="nx">Message:</span><span class="w"> </span><span class="nx">Network</span><span class="w"> </span><span class="nx">Security</span><span class="w"> </span><span class="nx">Group</span><span class="w"> </span><span class="nx">Connection</span><span class="w"> </span><span class="nx">Flushing</span><span class="w"> </span><span class="nx">is</span><span class="w"> 
     </span><span class="o">|</span><span class="w"> </span><span class="n">not</span><span class="w"> </span><span class="nx">enabled</span><span class="w"> </span><span class="nx">yet</span><span class="w"> </span><span class="nx">for</span><span class="w"> </span><span class="nx">uksouth</span><span class="w"> </span><span class="nx">region.</span><span class="w"> </span><span class="nx">Please</span><span class="w"> </span><span class="nx">set</span><span class="w"> </span><span class="nx">networkSecurityGroup.FlushConnection</span><span class="w"> </span><span class="nx">property</span><span class="w"> </span><span class="nx">to</span><span class="w"> </span><span class="nx">false.</span><span class="w"> </span><span class="p">(</span><span class="n">Code:</span><span class="w"> </span><span class="nx">FlushingNetworkSecurityGroupConnectionIsNotEnabled</span><span class="p">)</span><span class="w">      
     </span><span class="o">|</span><span class="w"> </span><span class="n">CorrelationId:</span><span class="w"> </span><span class="nx">674b9a1f-7516-44d0-81c2-db7666973e76</span><span class="w">
</span></code></pre></div></div>]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="chaos-studio" /><category term="chaos-engineering" /><category term="chaos-mesh" /><category term="kubernetes" /><category term="aks" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">PowerShell automations and email</title><link href="/azure/2030/12/31/powershell-automations-and-email.html" rel="alternate" type="text/html" title="PowerShell automations and email" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/azure/2030/12/31/powershell-automations-and-email</id><content type="html" xml:base="/azure/2030/12/31/powershell-automations-and-email.html"><![CDATA[<!--
https://techcommunity.microsoft.com/t5/azure-communication-services/send-emails-via-smtp-relay-with-azure-communication-service/ba-p/4175396
-->]]></content><author><name>Janne Mattila</name></author><category term="azure" /><category term="azure" /><category term="chaos-studio" /><category term="chaos-engineering" /><category term="chaos-mesh" /><category term="kubernetes" /><category term="aks" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Hello SNAT my old friend</title><link href="/networking/2030/12/31/snat.html" rel="alternate" type="text/html" title="Hello SNAT my old friend" /><published>2030-12-31T03:00:00+00:00</published><updated>2030-12-31T03:00:00+00:00</updated><id>/networking/2030/12/31/snat</id><content type="html" xml:base="/networking/2030/12/31/snat.html"><![CDATA[<!--
https://4lowtherabbit.github.io/blogs/2019/10/SNAT/

Updates:
- Metric is available

Plan is VMs:
- Apps are within VMs

https://learn.microsoft.com/en-us/azure/azure-functions/manage-connections?tabs=csharp
https://learn.microsoft.com/en-us/azure/architecture/antipatterns/improper-instantiation/
https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections#scenarios
https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints
https://learn.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections#port-exhaustion
https://learn.microsoft.com/en-us/azure/app-service/troubleshoot-intermittent-outbound-connection-errors#avoiding-the-problem

AKS & Azure CNI

Scenario:
- 3rd party integration endpoint

-->]]></content><author><name>Janne Mattila</name></author><category term="networking" /><category term="networking" /><category term="azure" /><category term="aks" /><category term="appservice" /><summary type="html"><![CDATA[Janne Mattila's blog \| From programmer to programmer -- Programming just for the fun of it]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="/assets/share.png" /><media:content medium="image" url="/assets/share.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>