Skip to content

Instantly share code, notes, and snippets.

View keyan1603's full-sized avatar

Karthikeyan Manickavasagam keyan1603

View GitHub Profile
@keyan1603
keyan1603 / powershellgist.ps1
Last active May 16, 2024 08:24
Kubernetes - Some useful Powershell commands
# Get into Windows Pod and access Powershell inside the pod
kubectl exec -it <podname> -- powershell
# To view the content inside a file, for example web.config
Get-Content web.config
# Get top 100 lines of the file
Get-Content web.config -First 100
# Get last 100 lines of the file
@keyan1603
keyan1603 / KubectlGracefulNodeRollout.txt
Last active May 16, 2024 08:22
Kubectl commands to gracefully rollout nodes in EKS
Cordon all nodes:
kubectl get nodes | ForEach-Object{($_.Split(""))[0]} | where {$_ -ne " NAME"} | ForEach-Object{(kubectl cordon $_)}
Rollout Master node:
kubectl get deployments -n kube-system| ForEach-Object{($_.Split(""))[0]} | where {$_ -ne " NAME"} | ForEach-Object{(kubectl -n kube-system rollout restart deployment $_)}
kubectl get daemonsets -n kube-system| ForEach-Object{($_.Split(""))[0]} | where {$_ -ne " NAME"} | ForEach-Object{(kubectl -n kube-system rollout restart daemonset $_)}
Rollout Worker nodes:
kubectl get deployments | ForEach-Object{($_.Split(""))[0]} | where {$_ -ne " NAME"} | ForEach-Object{(kubectl rollout restart deployment $_)}
kubectl get daemonsets | ForEach-Object{($_.Split(""))[0]} | where {$_ -ne " NAME"} | ForEach-Object{(kubectl rollout restart daemonset $_)}
@keyan1603
keyan1603 / JenkinsEKSNodeRollout
Created May 16, 2024 08:14
Jenkins script to gracefully rollout nodes when the deployment strategy is rollout deployment.
pipeline {
agent any
stages{
stage('Logging into AWS ECR'){
steps{
bat 'aws eks --region us-east-1 update-kubeconfig --name eks-cluster-name'
bat 'aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin xxxxxxxxxxx.xxx.ecr.us-east-1.amazonaws.com'
}
}
@keyan1603
keyan1603 / GetSXASiteCacheSettings
Last active April 30, 2024 07:09
Get Sitecore SXA Site Cache Settings
Import-Function Get-AllSxaSite
$sites = New-Object System.Collections.ArrayList
class ItemDetail {
[string]$ID
[string]$Name
[string]$Path
[bool]$Cacheable
[bool]$ClearOnIndexUpdate
Get-ChildItem Cert:\LocalMachine\My\
Get-ChildItem Cert:\LocalMachine\My\ | Select-Object NotAfter, Subject
@keyan1603
keyan1603 / GetSiteSettings.cs
Created September 20, 2023 18:43
Sitecore SXA – To get Site Settings for a Site
public static T GetValueFromSiteSettings<T>(IMvcContext mvcSiteContext, string TenantSiteSettingsTemplateId)
{
var query = "/sitecore/content//*[@@ID='" + mvcSiteContext.GetRootItem<Item>().ID + "']/*[@@templateId='" + TenantSiteSettingsTemplateId + "']";
var settings = mvcSiteContext.SitecoreService.Database.SelectSingleItem(query);
if (settings == null)
{
return null;
}
return mvcSiteContext.SitecoreService.GetItem<T>(settings);
}
@keyan1603
keyan1603 / Coveo.SearchProvider.Custom.config
Created September 20, 2023 18:38
To add a new Coveo index in Sitecore (tested on Sitecore 9.2)
<index id="Coveo_pub_index" type="Coveo.SearchProvider.ProviderIndex, Coveo.SearchProvider" patch:before = "*[3]">
<param desc="p_Name">$(id)</param>
<configuration ref="coveo/defaultIndexConfiguration" />
<locations hint="list:AddCrawler">
<crawler name="ContentCrawler" type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
<database>pub</database>
<root>/sitecore/content</root>
<stopOnError>true</stopOnError>
</crawler>
<crawler name="MediaLibraryCrawler" type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
@keyan1603
keyan1603 / SitecoreHelixLoggingFramework.config
Created September 20, 2023 18:37
Sitecore Helix – Feature based logging framework - Config update
<?xml version="1.0"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xmlns:env="http://www.sitecore.net/xmlconfig/env/">
<sitecore>
<log4net>
<appender name="MySite.Feature.Products" type="log4net.Appender.RollingFileAppender, Sitecore.Logging">
<file value="$(dataFolder)/logs/MySite.Feature.Products.log.{date}.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="-1" />
@keyan1603
keyan1603 / SitecoreHelixLogging.cs
Created September 20, 2023 18:37
Sitecore Helix – Feature based logging framework
using System;
namespace MySite.Foundation.Common
{
public interface ILoggerService
{
#region Debug
void Debug(string message);
void Debug(string message, Exception ex);
#endregion
@keyan1603
keyan1603 / ResetSitecoreAdminPassword.sql
Created September 20, 2023 18:35
Reset Sitecore Admin account password without logging into Sitecore
UPDATE
[aspnet_Membership]
SET
[Password]='qOvF8m8F2IcWMvfOBjJYHmfLABc=',
[PasswordSalt]='OM5gu45RQuJ76itRvkSPFw==',
[IsApproved] = '1',
[IsLockedOut] = '0'
WHERE
UserId IN (
SELECT UserId FROM dbo.aspnet_Users WHERE UserName = 'sitecore\Admin'