<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ashutosh's Blog]]></title><description><![CDATA[Ashutosh's Blog]]></description><link>https://blog.ashutoshrathore.in</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 13:33:44 GMT</lastBuildDate><atom:link href="https://blog.ashutoshrathore.in/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What AI says on EUR-INR forecast (Mid 2025-2026)]]></title><description><![CDATA[EUR/INR at Record Highs: Recent Performance
The euro has surged to all-time highs against the Indian rupee in early 2025. As of April 2025, EUR/INR is trading around ₹98 per euro, after climbing roughly 10% over the past year (Indian exporters should...]]></description><link>https://blog.ashutoshrathore.in/what-ai-says-on-eur-inr-forecast-mid-2025-2026</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/what-ai-says-on-eur-inr-forecast-mid-2025-2026</guid><category><![CDATA[Euro]]></category><category><![CDATA[inr]]></category><category><![CDATA[finance]]></category><category><![CDATA[Investment Research]]></category><category><![CDATA[Investment]]></category><category><![CDATA[money]]></category><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Tue, 22 Apr 2025 06:59:06 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-eurinr-at-record-highs-recent-performance">EUR/INR at Record Highs: Recent Performance</h2>
<p><strong>The euro has surged to all-time highs against the Indian rupee in early 2025.</strong> As of April 2025, EUR/INR is trading around ₹98 per euro, after climbing roughly 10% over the past year (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=The%20dollar%27s%20slide%20has%20aided,is%20at%20a%20lifetime%20high">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>) (<a target="_blank" href="https://www.livemint.com/market/commodities/gold-prices-scales-to-new-record-high-ahead-of-gudi-padwa-is-it-right-time-to-invest-11743224144502.html#:~:text=In%20FY25%2C%20gold%20prices%20have,on%20April%201%20last%20year">Gold prices scales to new record high ahead of Gudi Padwa; Is it right time to invest? | Stock Market News</a>). This upward spike has pushed the pair above its prior record (around ₹95 set in Feb 2025) (<a target="_blank" href="https://www.litefinance.org/blog/analysts-opinions/eur-to-inr-forecast-and-prediction/#:~:text=2025,The">EUR to INR Forecast for 2025, 2026, 2027–2030 and Beyond</a>). The rupee’s weakness has been most pronounced against non-dollar majors – in fact, <em>the euro/rupee cross jumped ~5% in April alone</em>, even as USD/INR remained relatively flat (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=The%20dollar%27s%20slide%20has%20aided,is%20at%20a%20lifetime%20high">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>). The chart below illustrates how currencies like the euro and yen have outpaced the rupee amid recent global developments (e.g. U.S. tariff announcements causing a dollar sell-off):</p>
<p>(<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>) <em>Euro and other major currency crosses (EUR/INR, JPY/INR, GBP/INR) have surged in 2025 while USD/INR has stayed relatively flat, reflecting dollar-specific weakness (</em><a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=The%20dollar%27s%20slide%20has%20aided,is%20at%20a%20lifetime%20high"><em>Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</em></a><em>).</em></p>
<p>Several factors set the backdrop for this record euro strength versus INR:</p>
<ul>
<li><p><strong>Trade War and Dollar Weakness:</strong> Escalating U.S. tariffs (the “reciprocal tariffs” announced in April 2025) spurred investors to flee U.S. assets, weakening the dollar. The euro and other majors rallied, and the rupee – though it strengthened slightly against the dollar – <em>did not keep pace with the euro’s rise</em>. This led to euro/rupee hitting new highs (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=The%20dollar%27s%20slide%20has%20aided,is%20at%20a%20lifetime%20high">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>) (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=weakness">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>). In April, the EUR/INR was ~9.7% higher YTD, while USD/INR was roughly unchanged (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=The%20dollar%27s%20slide%20has%20aided,is%20at%20a%20lifetime%20high">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>).</p>
</li>
<li><p><strong>Interest Rate Differentials:</strong> India’s <strong>RBI</strong> and the <strong>ECB</strong> are now in easing mode. The ECB began cutting rates in early 2025 as eurozone inflation cooled, reducing euro yields (<a target="_blank" href="https://www.ecb.europa.eu/press/economic-bulletin/html/eb202502.en.html#:~:text=Economic%20Bulletin%20Issue%202%2C%202025,rates%20by%2025%20basis%20points">Economic Bulletin Issue 2, 2025 - European Central Bank</a>). The RBI likewise cut rates (25 bps in April) to support growth amid moderate inflation (<a target="_blank" href="https://economictimes.indiatimes.com/markets/forex/indian-rupee#:~:text=rate%20by%2025%20bps%3A%20Care,Edge">Rupee: Indian Rupee, Latest News on Rupee, Find out why Rupee is down or up? - The Economic Times</a>). Typically, India’s higher rates support the rupee, but as that advantage narrows and global investors anticipate deeper Fed rate cuts (due to U.S. slowdown/recession risks), capital is rotating out of dollars into euros and other currencies (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=weakness">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>). This dynamic – lower U.S. yields and only modest Indian yields – has undercut INR.</p>
</li>
<li><p><strong>Economic Growth and Inflation:</strong> The eurozone economy, while weaker than India’s, is recovering from its energy/inflation shock. Eurozone growth is projected around +1.5% in 2025 with inflation falling towards ~2% (<a target="_blank" href="https://capital.com/euro-forecast#:~:text=Euro%20forecast%202025">Euro Forecast | Will Euro Go Up or Down?</a>) (<a target="_blank" href="https://capital.com/euro-forecast#:~:text=JP%20Morgan%27s%20predictions%20for%20the,significant%20appreciation%20of%20the%20euro">Euro Forecast | Will Euro Go Up or Down?</a>). India’s growth remains higher (~6%+), but India’s <strong>current account deficit</strong> (due to oil imports, etc.) and <strong>higher inflation</strong> mean the rupee tends to structurally depreciate in the long run. This steady inflation differential historically pressures INR – e.g. EUR/INR has risen from the low ₹50s in 2008 to nearly ₹100 now (<a target="_blank" href="https://www.litefinance.org/blog/analysts-opinions/eur-to-inr-forecast-and-prediction/#:~:text=Beyond%20www,The%20EURINR">EUR to INR Forecast for 2025, 2026, 2027–2030 and Beyond</a>).</p>
</li>
<li><p><strong>Geopolitical Uncertainty:</strong> Ongoing geopolitical risks (Russia-Ukraine war, and now U.S.-China trade tensions) have prompted safe-haven flows into <em>both</em> gold and relatively stable major currencies like the euro and yen. Emerging market currencies like INR often weaken during global stress. Indeed, analysts note the rupee is vulnerable to trade war fallout and risk aversion (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupees-winning-streak-halts-importers-step-asian-peers-slip-2025-03-25/#:~:text=MUFG%20has%20revised%20its%20view,it%20said%20in%20a%20note">Rupee's winning streak halts as importers step in, Asian peers slip | Reuters</a>) (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupees-winning-streak-halts-importers-step-asian-peers-slip-2025-03-25/#:~:text=From%20current%20levels%20though%2C%20risks,lingering%20pressure%20on%20Asian%20currencies">Rupee's winning streak halts as importers step in, Asian peers slip | Reuters</a>). India’s large import bill and reliance on foreign portfolio inflows leave the INR exposed when global investors turn cautious.</p>
</li>
</ul>
<h2 id="heading-eurinr-forecasts-will-100-be-breached">EUR/INR Forecasts: Will ₹100 Be Breached?</h2>
<p><strong>Analyst forecasts for EUR/INR through end-2025 are divided – some see the euro breaking ₹100, while others expect a pullback.</strong> The key question is whether the rupee will stabilize or continue depreciating. Here is a range of projections:</p>
<ul>
<li><p><strong>Bullish Scenarios (Rupee Weakens Further):</strong> Some modeling forecasts anticipate the euro <em>surging into triple digits</em>. For instance, one long-term projection sees EUR/INR reaching about <strong>₹103.5 by end of 2025</strong> (<a target="_blank" href="https://tradersunion.com/currencies/forecast/eur-inr/long-term-forecast/#:~:text=EUR%2FINR%20Price%20Prediction%20for%202025%2C,by%20the%20end%20of%202029">EUR/INR Price Prediction for 2025, 2026-2030: 6 Months, Next Year</a>). Another analysis (LongForecast) even suggested a mid-2025 peak around ₹105 before a correction (<a target="_blank" href="https://www.litefinance.org/blog/analysts-opinions/eur-to-inr-forecast-and-prediction/#:~:text=EUR%20to%20INR%20Forecast%20for,By%20June%2C">EUR to INR Forecast for 2025, 2026, 2027–2030 and Beyond</a>). Similarly, currency forecasts compiled by trading platforms show potential highs above ₹107 in early 2026 ( <a target="_blank" href="https://www.bookmyforex.com/currency-converter/eur-to-inr/forecast/#:~:text=Oct%2725%2097.5666%2098.8985%2098.23255%200,0011%200">EUR to INR Forecast for 2025-2026 | BookMyForex.com</a> ). The interbank forecast from BookMyForex, for example, shows the euro’s <strong>“expected high” reaching ₹107 by Feb 2026</strong> ( <a target="_blank" href="https://www.bookmyforex.com/currency-converter/eur-to-inr/forecast/#:~:text=Oct%2725%2097.5666%2098.8985%2098.23255%200,0011%200">EUR to INR Forecast for 2025-2026 | BookMyForex.com</a> ). These bullish outlooks assume the rupee will remain under pressure due to factors like: continued foreign outflows, higher oil prices widening India’s trade deficit, and the ECB’s policy not diverging too dovishly against the RBI. Under a bearish-rupee scenario (e.g. USD/INR approaching ₹90 and EUR/USD ~1.10+), EUR/INR could indeed cross the ₹100 milestone sooner than later.</p>
</li>
<li><p><strong>Base Case / Moderate Views:</strong> Many economists and banks take a more moderate stance – expecting the rupee to <strong>stabilize or even strengthen slightly</strong> against the dollar, which would cap EUR/INR gains. <em>MUFG Bank</em>, for instance, revised its rupee outlook to <strong>₹87.5 per USD by end-2025</strong> (from a weaker 88.5 prior) (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupees-winning-streak-halts-importers-step-asian-peers-slip-2025-03-25/#:~:text=MUFG%20has%20revised%20its%20view,it%20said%20in%20a%20note">Rupee's winning streak halts as importers step in, Asian peers slip | Reuters</a>). If USD/INR is ~87.5 and EUR/USD holds around 1.10, that implies EUR/INR in the mid-90s. In fact, several experts project euro/rupee will <strong>hover in the mid-90s by late 2025</strong> (<a target="_blank" href="https://www.litefinance.org/blog/analysts-opinions/eur-to-inr-forecast/#:~:text=EUR%20to%20INR%20Forecast%20for,the%20end%20of%20the%20year">EUR to INR Forecast for 2025, 2026, 2027–2030 and Beyond</a>) – essentially around current levels or slightly lower. TradingEconomics’ models similarly foresee EUR/INR drifting down to ~₹93 by mid-2025 as the rupee’s “line in the sand” vs USD (around ₹84–86) is defended (<a target="_blank" href="https://m.economictimes.com/markets/forex/pressure-on-rupee-likely-to-ease-in-first-half-of-fy26/articleshow/119833458.cms#:~:text=Although%20some%20experts%20expect%20the,put%20out%20a%20level">Pressure on rupee likely to ease in first half of FY26</a>) (<a target="_blank" href="https://cdn.tradingeconomics.com/eurinr:cur#:~:text=,this%20quarter%20and%20at">EURINR Euro Indian Rupee - Currency Exchange Rate Live Price ...</a>). The rationale: India’s high real interest rates and RBI’s ample FX reserves could limit INR depreciation. Indeed, analysts note that beyond the recent tariff-driven jolt, the <em>“balance of risks” for the rupee may be more balanced going forward</em>, provided no new shocks emerge (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupees-winning-streak-halts-importers-step-asian-peers-slip-2025-03-25/#:~:text=From%20current%20levels%20though%2C%20risks,lingering%20pressure%20on%20Asian%20currencies">Rupee's winning streak halts as importers step in, Asian peers slip | Reuters</a>).</p>
</li>
<li><p><strong>Key Wildcards:</strong> Whether EUR/INR pushes decisively above 100 will depend on: (a) <strong>USD trajectory</strong> – a sustained dollar downtrend (due to U.S. recession or Fed cuts) tends to lift EUR (positive for EUR/INR), but <em>if global risk-off spikes, the USD could strengthen broadly</em>, helping INR vs EUR; (b) <strong>RBI intervention</strong> – the central bank has so far let the rupee slide more freely, but if INR falls too fast, RBI may step in (they could rebuild reserves by selling INR) (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupees-winning-streak-halts-importers-step-asian-peers-slip-2025-03-25/#:~:text=From%20current%20levels%20though%2C%20risks,lingering%20pressure%20on%20Asian%20currencies">Rupee's winning streak halts as importers step in, Asian peers slip | Reuters</a>), which would slow rupee depreciation; and (c) <strong>Eurozone outlook</strong> – if Europe’s economy surprises on the upside (or inflation resurges forcing ECB to stay hawkish), the euro could be stronger than expected, boosting EUR/INR. Conversely, any resolution of the trade war or calming of geopolitical tensions could revive risk appetite for emerging markets, helping the rupee.</p>
</li>
</ul>
<p><strong>Bottom line:</strong> The euro <em>could</em> breach ₹100 in the next 12–18 months, but it is not a consensus certainty. Many forecasts cluster around <strong>₹95–98 by end-2025</strong>, with a gradual rise toward 100+ only by mid-2026. For example, one survey of analysts suggests EUR/INR ending 2025 in the <strong>₹94–97 range</strong> (<a target="_blank" href="https://www.litefinance.org/blog/analysts-opinions/eur-to-inr-forecast/#:~:text=EUR%20to%20INR%20Forecast%20for,the%20end%20of%20the%20year">EUR to INR Forecast for 2025, 2026, 2027–2030 and Beyond</a>) absent further shocks. Reaching ₹100 may require an extra push – either significantly weaker Indian fundamentals or a much stronger euro. Notably, a Reuters poll of economists indicated the rupee should trade in a relatively limited band (₹84–87 vs USD) through 2025 barring surprises (<a target="_blank" href="https://www.reuters.com/markets/currencies/rupee-likely-rise-uncertain-us-economic-outlook-inflows-2025-03-26/#:~:text=pending%20clarity%20on%20U">Rupee likely to rise on uncertain US economic outlook, inflows</a>), which implies <em>only moderate</em> upside for EUR/INR. Thus, <strong>crossing 100 is plausible but not guaranteed</strong> – it likely hinges on the continuation of the extraordinary conditions (trade disputes, dollar downturn) seen in early 2025.</p>
<h2 id="heading-investing-in-the-euro-is-now-the-time-or-to-wait">Investing in the Euro: Is Now the Time or to Wait?</h2>
<p>With EUR/INR near record highs, investors are pondering whether to increase euro exposure now or hold off. <strong>Expert opinion is mixed, leaning towards cautious optimism:</strong></p>
<ul>
<li><p><strong>Those bullish on the euro</strong> argue that the macro trends favor further INR depreciation against major currencies. Goldman Sachs strategists, for example, have turned “very negative on the U.S. dollar” in 2025 and expect sustained strength in euro (and yen) as the dollar downtrend continues (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=weakness">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>) (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=,Sachs%20said%20in%20a%20note">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>). If they are right, holding some euros could yield additional gains as the rupee gradually weakens. Exporters with euro receivables have even been advised to <em>reduce their hedges</em> and stay exposed to the euro, given the balance of risks is “clearly in favour” of further euro upside (INR downside) (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=Forex%20advisory%20firm%20IFA%20Global,will%20boost%20profits%20for%20exporters">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>) (<a target="_blank" href="https://www.reuters.com/world/india/indian-exporters-should-temper-euro-pound-hedges-given-under-siege-dollar-2025-04-17/#:~:text=weakness">Indian exporters should temper euro, pound hedges given under-siege dollar, bankers say | Reuters</a>). Long-term investors note that the rupee’s gentle decline (historically ~3–4% depreciation per year against the euro) remains a structural trend due to India’s higher inflation. From that standpoint, buying euros on dips aligns with a long-run <strong>INR depreciation trend</strong>.</p>
</li>
<li><p><strong>Those urging caution</strong> point out that a lot of good news for the euro (and bad news for INR) may already be priced in at ~₹98–99 levels. The euro is no longer “cheap” for rupee-based investors. Any improvement in global sentiment or resolution of the tariff war could see the euro give back some recent gains as safe-haven flows reverse. Indian authorities are also unlikely to tolerate runaway INR weakness – a stabilizing rupee (or active RBI support) could keep EUR/INR in check. Some analysts note that <em>much of the euro’s advantage is “fairly discounted in current prices”</em>, and <strong>fresh triggers</strong> would be needed to propel another big leg up (<a target="_blank" href="https://www.livemint.com/market/commodities/gold-price-outlook-gold-rates-in-india-jump-32-in-fy25-can-they-hit-1-lakh-mark-in-fy26-11743309723927.html#:~:text=investors%20toward%20gold%20as%20a,haven%20asset">Gold prices jump 32% in FY25; can they hit ₹1 lakh mark in FY26? | Stock Market News</a>) (<a target="_blank" href="https://www.livemint.com/market/commodities/gold-price-outlook-gold-rates-in-india-jump-32-in-fy25-can-they-hit-1-lakh-mark-in-fy26-11743309723927.html#:~:text=Experts%20say%20the%20yellow%20metal,of%20stagflation%20in%20the%20US">Gold prices jump 32% in FY25; can they hit ₹1 lakh mark in FY26? | Stock Market News</a>). If the eurozone faces its own growth challenges or the ECB remains dovish, the euro’s ascent might stall.</p>
</li>
</ul>
<p><strong>Investment Outlook:</strong> For individuals considering buying euros (e.g. for investment or travel purposes), a prudent approach is <strong>gradual accumulation on pullbacks</strong> rather than chasing the peak. At nearly ₹98 per euro, it may not be the ideal moment to convert a large sum in one go. <em>“We advise investors to keep investing in [foreign currency] but wait for dips,”</em> says one strategist, reflecting a common view (<a target="_blank" href="https://www.livemint.com/market/commodities/gold-prices-scales-to-new-record-high-ahead-of-gudi-padwa-is-it-right-time-to-invest-11743224144502.html#:~:text=said%20Sriram%20Iyer%2C%20Senior%20Analyst,commodities%20Reliance%20Securities">Gold prices scales to new record high ahead of Gudi Padwa; Is it right time to invest? | Stock Market News</a>). In other words, maintain some euro exposure as a hedge, but be patient and watch for any rupee rebounds to get slightly better rates. If one has a long-term need for euros, averaging in over time can mitigate timing risk. On the other hand, holding off entirely in hopes of a major rupee recovery could backfire – India’s structural trade deficit and the uncertain global backdrop mean <strong>the bias is still for a weakening INR over the long run</strong> (even if 2025 sees consolidation). Thus, moderate euro allocation makes sense as part of a diversified strategy. In summary, <strong>if the euro drops back toward ₹90–95 in a correction, that may be a good entry zone</strong>; if it continues climbing above ₹100, one might accumulate only modestly or hedge, since at that point the rupee could be oversold. Keeping an eye on central bank policies and geopolitical news is crucial – they will drive the next big move in EUR/INR.</p>
]]></content:encoded></item><item><title><![CDATA[How to fix FailedGetResourceMetric]]></title><description><![CDATA[Warnings related to "FailedGetResourceMetric" can include the following:


failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API

failed to get cpu utilization: did not receive metrics fo...]]></description><link>https://blog.ashutoshrathore.in/how-to-fix-failedgetresourcemetric</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/how-to-fix-failedgetresourcemetric</guid><category><![CDATA[Horizontal Pod Autoscaler]]></category><category><![CDATA[scaling]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[containers]]></category><category><![CDATA[monitoring]]></category><category><![CDATA[observability]]></category><category><![CDATA[HPA]]></category><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Thu, 20 Feb 2025 20:32:17 GMT</pubDate><content:encoded><![CDATA[<p>Warnings related to "FailedGetResourceMetric" can include the following:</p>
<blockquote>
<ol>
<li><p><mark>failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API</mark></p>
</li>
<li><p><mark>failed to get cpu utilization: did not receive metrics for targeted pods (pods might be unready)</mark></p>
</li>
<li><p><mark>failed to get memory utilization: unable to get metrics for resource memory: no metrics returned from resource metrics API</mark></p>
</li>
</ol>
</blockquote>
<p>If you are seeing any of these errors, it means you have HPA (Horizontal Pod Autoscaler) enabled, and something is either missing or not working as expected.</p>
<p>There are a few different reasons why this error could happen, so let's go through them:</p>
<ol>
<li><h3 id="heading-pod-is-not-ready-or-takes-a-bit-longer-to-start-running">Pod is not ready or takes a bit longer to start running:</h3>
</li>
</ol>
<p>If you often see warnings when a pod is restarting or scaling up, this is likely the reason.</p>
<p>By default, HPA continuously tries to retrieve metrics from the pod every <strong>15 seconds</strong>. However, if the pod is not ready or not running, it won't provide metrics, causing HPA to show these warnings every 15 seconds until it receives the metrics.  </p>
<p>You can read about these HPA behavior in AKS here <a target="_blank" href="https://learn.microsoft.com/en-us/azure/aks/concepts-scale#horizontal-pod-autoscaler">https://learn.microsoft.com/en-us/azure/aks/concepts-scale#horizontal-pod-autoscaler</a></p>
<ol start="2">
<li><h3 id="heading-problem-with-metrics-server-pod">Problem with Metrics-server pod</h3>
</li>
</ol>
<p>If your application pod is running and the problem still persists, check the status of the metrics-server pod and its logs. Look for any logs in the metrics-server pod that show errors like <code>“Failed to scrape node" err="Get \"</code><a target="_blank" href="https://10.38.234.11:10250/metrics/resource%5C"><code>https://&lt;some IP and port&gt;/metrics/resource\\</code></a><code>"</code><a target="_blank" href="https://10.38.234.11:10250/metrics/resource%5C%5C"><code>: http2: client connection lost" node="</code></a><code>&lt;name of your node&gt;“.</code> If you see this, check the status of the node. If the node is ready and there are no taints, try restarting the metrics-server pod.</p>
<ol start="3">
<li><h3 id="heading-resource-misconfiguration">Resource misconfiguration</h3>
<p> HPA may also fail to obtain resource metrics if there is a misconfiguration or absence of resource requests.</p>
<p> When you create an HPA to scale based on CPU/Memory <strong>averageUtilization</strong>, it requires information on the <strong>current usage</strong> and the <strong>requested resources</strong> for all matching pods.</p>
<ul>
<li><p><strong>Current Usage:</strong> This data is collected by the metrics-server (or another metrics service like Prometheus) and accessed via the Metrics API.</p>
</li>
<li><p><strong>Requested Resources:</strong> This is the sum of resource requests for each container in the matching pod.</p>
</li>
</ul>
</li>
</ol>
<p>    It is a common misconception that HPA uses resource limits to calculate average utilization, but this is incorrect. <strong>HPA uses resource requests</strong> instead of limits, which is the issue indicated by this error.</p>
<p>    Ensure that resource requests include both CPU and memory, and also verify the requests for sidecar or init containers.</p>
<pre><code class="lang-yaml"><span class="hljs-attr">resource:</span>
  <span class="hljs-attr">requests:</span>
    <span class="hljs-attr">cpu:</span> <span class="hljs-string">100m</span>
    <span class="hljs-attr">memory:</span> <span class="hljs-string">500Mi</span>
</code></pre>
]]></content:encoded></item><item><title><![CDATA[K8s - Do we need auto mount Service Account token?]]></title><description><![CDATA[I have often seen this topic misunderstood, with people thinking that the token must be mounted in the container to access the kube API server.
Yes, that's true. We definitely need a token if we want our container to access the kube API server. If yo...]]></description><link>https://blog.ashutoshrathore.in/k8s-auto-mount-service-account-token</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/k8s-auto-mount-service-account-token</guid><category><![CDATA[kube]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[containers]]></category><category><![CDATA[kubernetes architecture]]></category><category><![CDATA[Kubernetes Security]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Security]]></category><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Tue, 22 Oct 2024 20:21:46 GMT</pubDate><content:encoded><![CDATA[<p>I have often seen this topic misunderstood, with people thinking that the token must be mounted in the container to access the kube API server.</p>
<p>Yes, that's true. We definitely need a token if we want our container to access the kube API server. If you auto-mount it, it's like leaving your car key hanging on the car door because you always need the key to drive the car.</p>
<p>First, ask yourself why you need the token. If it's to access the Kube API server, do you need this token to be long-lived or short-lived? Also, determine the level of access the token should have.</p>
<p>So, the answer to the above question is subjective rather than objective.</p>
<p>Let's explore different scenarios where we need a token and when you should keep the automount token enabled.</p>
<hr />
<ol>
<li><strong>You need token for init-container</strong></li>
</ol>
<p>You would run an init-container to check the status of other Kubernetes services like deployments, pods, and jobs. To get the status of these services, you need to list them from the Kube API server.</p>
<p>In this case, the init-container is already a short-lived container that will be terminated once it completes its task. Therefore, automatically mounting a token to a pod is a poor decision because the token will remain in the pod until it is deleted, but you will never use it again in the init-container.</p>
<p>Mount the token in the init container by adding the following blocks to your deployment.</p>
<pre><code class="lang-yaml"><span class="hljs-attr">apiVersion:</span> <span class="hljs-string">v1</span>
<span class="hljs-attr">kind:</span> <span class="hljs-string">Pod</span>
<span class="hljs-attr">metadata:</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">test-pod</span>
<span class="hljs-attr">spec:</span>
  <span class="hljs-attr">serviceAccountName:</span> <span class="hljs-string">&lt;YOUR_SERVICE_ACCOUNT_NAME&gt;</span>
  <span class="hljs-attr">initContainers:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">init-kubectl</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">bitnami/kubectl:latest</span>  <span class="hljs-comment"># This image includes kubectl</span>
    <span class="hljs-attr">command:</span> [<span class="hljs-string">'sh'</span>, <span class="hljs-string">'-c'</span>, <span class="hljs-string">'kubectl get pods --field-selector=status.phase!=Running'</span>]
    <span class="hljs-attr">env:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">KUBERNETES_SERVICE_HOST</span>
      <span class="hljs-attr">valueFrom:</span>
        <span class="hljs-attr">fieldRef:</span>
          <span class="hljs-attr">fieldPath:</span> <span class="hljs-string">status.hostIP</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">KUBERNETES_SERVICE_PORT</span>
      <span class="hljs-attr">value:</span> <span class="hljs-string">"443"</span>  <span class="hljs-comment"># Default API server port</span>
    <span class="hljs-attr">volumeMounts:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">service-account-token</span>
      <span class="hljs-attr">mountPath:</span> <span class="hljs-string">/var/run/secrets/kubernetes.io/serviceaccount</span>
  <span class="hljs-attr">containers:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">app-container</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">nginx</span>
    <span class="hljs-attr">ports:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">containerPort:</span> <span class="hljs-number">80</span>
  <span class="hljs-attr">volumes:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">service-account-token</span>
    <span class="hljs-attr">projected:</span>
      <span class="hljs-attr">sources:</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">serviceAccountToken:</span>
          <span class="hljs-attr">path:</span> <span class="hljs-string">token</span>
          <span class="hljs-attr">expirationSeconds:</span> <span class="hljs-number">3600</span>  <span class="hljs-comment"># Optional: expiration time in seconds</span>
          <span class="hljs-attr">audience:</span> <span class="hljs-string">kube-api-server</span>    <span class="hljs-comment"># Optional: token audience</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">configMap:</span>  <span class="hljs-comment"># Mount the Kubernetes CA certificate</span>
          <span class="hljs-attr">name:</span> <span class="hljs-string">kube-root-ca.crt</span>
          <span class="hljs-attr">items:</span>
            <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">ca.crt</span>
              <span class="hljs-attr">path:</span> <span class="hljs-string">ca.crt</span>
</code></pre>
<p>In this deployment, make sure the service account name exists in your namespace and has the necessary role bindings to the Kube API server.<br />For example, if it needs to list the status of a job, it should have a role binding for "List Job" from the Kube API.</p>
<p>Points to consider:</p>
<ul>
<li><p><code>expirationSeconds</code>: should be atleast 10 minutes (600 seconds)</p>
</li>
<li><p><code>configMap</code>: Since we are projecting volume to container, we may also need to explicitly mount the Kubernetes CA certificate (<code>ca.crt</code>) alongside the token. This file is required to verify the identity of the Kubernetes API server when the service account token is used to authenticate API requests.</p>
</li>
</ul>
<ol start="2">
<li><strong>Your container requires regular access to Kube API server</strong></li>
</ol>
<p>This should not be a usual concern; typically, your application does not need access to the Kube API server. However, if access is required, consider the following points.</p>
<p>You can consider mounting the token as a projected volume or enabling automatic token mounting to Pods. However, in this case, you need to ensure that the service account token has limited role bindings.</p>
<p>For example it requires to list status of other pods, then follow steps:</p>
<ul>
<li><strong>Create a Role</strong> that allows listing Pods but nothing else.</li>
</ul>
<pre><code class="lang-yaml"><span class="hljs-attr">apiVersion:</span> <span class="hljs-string">rbac.authorization.k8s.io/v1</span>
<span class="hljs-attr">kind:</span> <span class="hljs-string">Role</span>
<span class="hljs-attr">metadata:</span>
  <span class="hljs-attr">namespace:</span> <span class="hljs-string">default</span>  <span class="hljs-comment"># Adjust if using a different namespace</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">pod-status-reader</span>
<span class="hljs-attr">rules:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">apiGroups:</span> [<span class="hljs-string">""</span>]  <span class="hljs-comment"># "" indicates the core API group</span>
  <span class="hljs-attr">resources:</span> [<span class="hljs-string">"pods"</span>]
  <span class="hljs-attr">verbs:</span> [<span class="hljs-string">"get"</span>, <span class="hljs-string">"list"</span>]  <span class="hljs-comment"># Only allow read permissions for Pods</span>
</code></pre>
<ul>
<li><strong>Create a RoleBinding</strong> that binds the Role to the specific ServiceAccount.</li>
</ul>
<pre><code class="lang-yaml"><span class="hljs-attr">apiVersion:</span> <span class="hljs-string">rbac.authorization.k8s.io/v1</span>
<span class="hljs-attr">kind:</span> <span class="hljs-string">RoleBinding</span>
<span class="hljs-attr">metadata:</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">pod-status-reader-binding</span>
  <span class="hljs-attr">namespace:</span> <span class="hljs-string">&lt;YOUR_NAMESPACE&gt;</span>  <span class="hljs-comment"># Add your own namespace</span>
<span class="hljs-attr">subjects:</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">kind:</span> <span class="hljs-string">ServiceAccount</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">&lt;YOUR_SERVICE_ACCOUNT_NAME&gt;</span>  <span class="hljs-comment"># Name of your ServiceAccount</span>
  <span class="hljs-attr">namespace:</span> <span class="hljs-string">&lt;Your_NAMESPACE&gt;</span>        <span class="hljs-comment"># Add your own namespace</span>
<span class="hljs-attr">roleRef:</span>
  <span class="hljs-attr">kind:</span> <span class="hljs-string">Role</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">pod-status-reader</span>   <span class="hljs-comment"># The name of the Role created above</span>
  <span class="hljs-attr">apiGroup:</span> <span class="hljs-string">rbac.authorization.k8s.io</span>
</code></pre>
<p>Now either mount it as projected volume or enable automountServiceAccountToken as true.</p>
<p><strong>Validation:</strong></p>
<p>You might also want to check if the token has been mounted to the container. To do this, log into the container's shell and list the directory <code>/var/run/secrets/kubernetes.io/serviceaccount</code>. It should contain the <code>token</code> and <code>ca.crt</code> files.</p>
<blockquote>
<p>This article clarifies the misconceptions about mounting tokens in containers to access the Kubernetes API server. It emphasizes the importance of understanding why you need the token, whether it should be long-lived or short-lived, and the level of access required. It discusses scenarios like using tokens in init-containers and regular access requirements, recommending best practices such as mounting tokens as projected volumes and ensuring limited role bindings for service account tokens.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[Empowering the Future with Platform Engineering]]></title><description><![CDATA[Introduction:
In the ever-evolving landscape of technology, organizations are constantly seeking ways to enhance efficiency, agility, and scalability. The advent of cloud computing has revolutionized the way applications are built and deployed, enabl...]]></description><link>https://blog.ashutoshrathore.in/empowering-the-future-with-platform-engineering</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/empowering-the-future-with-platform-engineering</guid><category><![CDATA[Cloud]]></category><category><![CDATA[Platform Engineering ]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Fri, 18 Oct 2024 19:38:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1729280549294/a60c376e-1e1d-4ba9-b3f5-8f5bb58e8e2d.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction"><strong>Introduction:</strong></h3>
<p>In the ever-evolving landscape of technology, organizations are constantly seeking ways to enhance efficiency, agility, and scalability. The advent of cloud computing has revolutionized the way applications are built and deployed, enabling organizations to leverage the benefits of scalability, cost-effectiveness, and flexibility. However, the rapid adoption of the cloud brought along its own set of challenges, including compliance, governance, and control. This is where the concept of platform engineering emerges as a solution, offering a unified approach to application infrastructure, governance, and shared services across the organization.</p>
<h3 id="heading-the-cloud-rush-and-its-drawbacks"><strong>The Cloud Rush and its Drawbacks:</strong></h3>
<p>As organizations embraced the cloud, individual application development teams began hiring cloud engineers and DevOps specialists to migrate their applications and build cloud infrastructures. While this approach enabled quick migration and autonomy for application teams, it also led to fragmented governance, a lack of standardized practices, and challenges in managing costs and resources efficiently.</p>
<h3 id="heading-the-need-for-platform-engineering"><strong>The Need for Platform Engineering:</strong></h3>
<p>Recognizing the limitations of the cloud rush, organizations have started realizing the benefits of adopting a common platform engineering approach. Platform engineering refers to the creation of a centralized platform that provides a shared infrastructure, standardization of practices, and governance across multiple applications within the organization. By establishing a common vision and a multi-cloud strategy, platform engineering offers a comprehensive solution to the challenges faced in the cloud era.</p>
<h3 id="heading-benefits-of-platform-engineering"><strong>Benefits of Platform Engineering:</strong></h3>
<ol>
<li><p><strong>Standardized Practices:</strong><br /> Platform engineering promotes the adoption of standardized development, deployment, and operations practices across the organization. This ensures consistency, simplifies troubleshooting, and improves collaboration among teams.</p>
</li>
<li><p><strong>Efficient Resource Utilization:</strong><br /> By consolidating resources and sharing services across applications, platform engineering enables better resource utilization, leading to cost optimization and improved scalability.</p>
</li>
<li><p><strong>Governance and Compliance:</strong><br /> With a centralized platform, organizations can enforce governance policies, security measures, and compliance requirements consistently across all applications. This reduces the risk of data breaches and ensures regulatory compliance.</p>
</li>
<li><p><strong>Enhanced Collaboration:</strong><br /> Platform engineering fosters collaboration and knowledge sharing among application teams, cloud engineers, and DevOps specialists. This leads to cross-pollination of ideas, improved efficiency, and accelerated innovation.</p>
</li>
<li><p><strong>Future-proofing:  
 </strong>By adopting a multi-cloud strategy, platform engineering future-proofs the organization, mitigating vendor lock-in risks. It enables teams to leverage the best features and capabilities from different cloud providers, maximizing flexibility and adaptability.</p>
</li>
</ol>
<h3 id="heading-building-the-platform"><strong>Building the Platform:</strong></h3>
<p><em>Building a platform engineering practice requires a systematic approach:</em></p>
<ol>
<li><p><strong>Define the Vision:</strong><br /> Establish a clear vision and goals for the platform engineering practice. Identify the key areas of focus, such as governance, standardization, security, and shared services.</p>
</li>
<li><p><strong>Design the Architecture:</strong><br /> Define the architecture for the platform, considering factors such as scalability, resilience, and interoperability. Ensure compatibility with multiple cloud providers to support a multi-cloud strategy.</p>
</li>
<li><p><strong>Implement Governance:</strong><br /> Develop a robust governance framework encompassing policies, procedures, and security measures. Implement monitoring and control mechanisms to enforce compliance and mitigate risks. Utilize policy as code to ensure consistent governance across infrastructure provisioning.</p>
</li>
<li><p><strong>Standardize Deployment:</strong><br /> Create a standardized deployment pipeline that incorporates infrastructure-as-code (IaC) practices, automated testing, and continuous integration/continuous deployment (CI/CD) processes. This streamlines application deployment and ensures consistency across teams.</p>
</li>
<li><p><strong>Enable Shared Services:</strong><br /> Identify common services and components that can be shared across applications. Examples include authentication services, logging frameworks, and monitoring tools. Implement self-service capabilities to empower application teams.</p>
</li>
</ol>
<blockquote>
<p><em>Conclusion:<br />Platform engineering presents a modern approach to building application infrastructures in the cloud era. By providing a unified platform, organizations can overcome the challenges of compliance, governance, and control, while fostering collaboration and enabling efficient resource utilization. As organizations embrace this new paradigm, cloud engineers and DevOps specialists play a crucial role in creating and</em></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[How to delete namespace that is stuck in terminating state]]></title><description><![CDATA[Get namespace that has terminating state:
Kubectl get ns | grep terminating

Delete the namespace forcefully using the below cmd line
NS=`kubectl get ns |grep Terminating | awk 'NR==1 {print $1}'` && kubectl get namespace "$NS" -o json   | tr -d "\n"...]]></description><link>https://blog.ashutoshrathore.in/how-to-delete-namespace-that-is-stuck-in-terminating-state</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/how-to-delete-namespace-that-is-stuck-in-terminating-state</guid><category><![CDATA[Kubernetes]]></category><category><![CDATA[#namespaces]]></category><category><![CDATA[tips]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[kubectl]]></category><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Fri, 04 Oct 2024 15:14:08 GMT</pubDate><content:encoded><![CDATA[<p>Get namespace that has terminating state:</p>
<pre><code class="lang-bash">Kubectl get ns | grep terminating
</code></pre>
<p>Delete the namespace forcefully using the below cmd line</p>
<pre><code class="lang-bash">NS=`kubectl get ns |grep Terminating | awk <span class="hljs-string">'NR==1 {print $1}'</span>` &amp;&amp; kubectl get namespace <span class="hljs-string">"<span class="hljs-variable">$NS</span>"</span> -o json   | tr -d <span class="hljs-string">"\n"</span> | sed <span class="hljs-string">"s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/"</span>   | kubectl replace --raw /api/v1/namespaces/<span class="hljs-variable">$NS</span>/finalize -f -
</code></pre>
]]></content:encoded></item><item><title><![CDATA[First Blog Check 123]]></title><description><![CDATA[Introduction
Explanation of the blog’s purpose
Brief history of the blog concept
Importance of the first blog
Planning Your First Blog
Identifying your target audience
Choosing a relevant and engaging topic
Researching your topic thoroughly
Writing Y...]]></description><link>https://blog.ashutoshrathore.in/first-blog-check-123</link><guid isPermaLink="true">https://blog.ashutoshrathore.in/first-blog-check-123</guid><dc:creator><![CDATA[Ashutosh Rathore]]></dc:creator><pubDate>Wed, 28 Aug 2024 20:07:10 GMT</pubDate><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<h3 id="heading-explanation-of-the-blogs-purpose">Explanation of the blog’s purpose</h3>
<h3 id="heading-brief-history-of-the-blog-concept">Brief history of the blog concept</h3>
<h3 id="heading-importance-of-the-first-blog">Importance of the first blog</h3>
<h2 id="heading-planning-your-first-blog">Planning Your First Blog</h2>
<h3 id="heading-identifying-your-target-audience">Identifying your target audience</h3>
<h3 id="heading-choosing-a-relevant-and-engaging-topic">Choosing a relevant and engaging topic</h3>
<h3 id="heading-researching-your-topic-thoroughly">Researching your topic thoroughly</h3>
<h2 id="heading-writing-your-first-blog-post">Writing Your First Blog Post</h2>
<h3 id="heading-crafting-a-compelling-headline">Crafting a compelling headline</h3>
<h3 id="heading-creating-an-engaging-introduction">Creating an engaging introduction</h3>
<h3 id="heading-structuring-the-main-body">Structuring the main body</h3>
<h3 id="heading-subheadings-and-sections">Subheadings and sections</h3>
<h3 id="heading-use-of-visuals-and-multimedia">Use of visuals and multimedia</h3>
<h3 id="heading-examples-and-case-studies">Examples and case studies</h3>
<h3 id="heading-writing-a-strong-conclusion">Writing a strong conclusion</h3>
<h2 id="heading-optimizing-for-seo">Optimizing for SEO</h2>
<h3 id="heading-importance-of-seo-in-blogging">Importance of SEO in blogging</h3>
<h3 id="heading-use-of-keywords">Use of keywords</h3>
<h3 id="heading-meta-descriptions-and-tags">Meta descriptions and tags</h3>
<h3 id="heading-linking-strategies">Linking strategies</h3>
<h2 id="heading-editing-and-proofreading">Editing and Proofreading</h2>
<h3 id="heading-importance-of-quality-content">Importance of quality content</h3>
<h3 id="heading-common-mistakes-to-avoid">Common mistakes to avoid</h3>
<h3 id="heading-tools-and-techniques-for-effective-proofreading">Tools and techniques for effective proofreading</h3>
<h2 id="heading-publishing-your-blog">Publishing Your Blog</h2>
<h3 id="heading-choosing-the-right-platform">Choosing the right platform</h3>
<h3 id="heading-timing-your-publication">Timing your publication</h3>
<h3 id="heading-promoting-your-blog-post-on-social-media-and-email">Promoting your blog post on social media and email</h3>
<h2 id="heading-engaging-with-your-audience">Engaging with Your Audience</h2>
<h3 id="heading-responding-to-comments">Responding to comments</h3>
<h3 id="heading-encouraging-feedback-and-interaction">Encouraging feedback and interaction</h3>
<h3 id="heading-building-a-community">Building a community</h3>
<h2 id="heading-analyzing-performance">Analyzing Performance</h2>
<h3 id="heading-monitoring-key-metrics">Monitoring key metrics</h3>
<h3 id="heading-tools-for-analysis">Tools for analysis</h3>
<h3 id="heading-using-feedback-to-improve-future-blog-posts">Using feedback to improve future blog posts</h3>
<h2 id="heading-conclusion">Conclusion</h2>
<h3 id="heading-recap-of-key-points">Recap of key points</h3>
<h3 id="heading-encouragement-to-start-blogging">Encouragement to start blogging</h3>
<h3 id="heading-future-steps-and-considerations">Future steps and considerations</h3>
]]></content:encoded></item></channel></rss>