Helm/Reloader: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Created page with "{|class='wikitable' |valign='top' style='width:50%'| <syntaxhighlight lang='bash'> helm repo add stakater https://stakater.github.io/stakater-charts helm repo update && helm repo list kubectl config get-contexts </syntaxhighlight> |valign='top' style='width:50%'| |} ==Helm » Context== {|class='wikitable mw-collapsible' !scope='col' style='text-align:left' colspan='2'| Helm » Context |- |valign='top' style='width:50%'| <syntaxhighlight lang='bash'> export KUBECONFIG="$..."
 
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 6: Line 6:
kubectl config get-contexts
kubectl config get-contexts
</syntaxhighlight>
</syntaxhighlight>
|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
|-
|valign='top' colspan='2'|
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left'|
Diagram
|-
|valign='top'|
<kroki lang='plantuml'>
@startuml
!theme plain
left to right direction
' Styling for Transparency and Layout
skinparam backgroundColor transparent
skinparam DefaultFontName Helvetica
skinparam componentStyle  rectangle
skinparam shadowing      false
package "Input Sources" {
  [ExternalSecret] --> [Secret] : Creates
  [SealedSecret] --> [Secret] : Creates
  [Certificate] --> [Secret] : Creates
}
[Secret] --> [Reloader] : Watched by
[ConfigMap] --> [Reloader] : Watched by
package "Workloads" {
  [Reloader] --> [Deployment] : Triggers Rollout
  [Reloader] --> [DeploymentConfig] : Triggers Rollout
  [Reloader] --> [Daemonset] : Triggers Rollout
  [Reloader] --> [Statefulset] : Triggers Rollout
  [Reloader] --> [ArgoRollout] : Triggers Rollout
  [Reloader] --> [CronJob] : Triggers Job
}
[Reloader] --> [Notifications] : Sends Notification
@enduml
</kroki>
|}
|}
|}


Line 23: Line 64:


|valign='top' style='width:50%'|
|valign='top' style='width:50%'|
|}
==Helm » Install==
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' colspan='2'|
Helm » Install
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash'>
helm show  values stakater/reloader --version=2.2.6|less
helm show  values stakater/reloader --version=2.2.7|less
</syntaxhighlight>
|-
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl create ns  reloader-system || true
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
kubectl get ns|grep reloader-system
kubectl delete ns  reloader-system || true
</syntaxhighlight>
|-
!scope='col'| Install
!scope='col'| Notes
|-
|valign='top'|
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
helm -n=reloader-system upgrade \
-i reloader  stakater/reloader --version=2.2.7 -f -
---
nameOverride: reloader
fullnameOverride: reloader
image:
  name: stakater/reloader
  repository: ghcr.io/stakater/reloader
  tag: v1.4.12
reloader:
  watchGlobally: true
  deployment:
    replicas: 1
    revisionHistoryLimit: 5
    resources:
      limits:
        cpu: 100m
        memory: 512Mi
      requests:
        cpu: 10m
        memory: 128Mi
YML
</syntaxhighlight>
|valign='top'|
|-
!scope='col'| Verify
!scope='col'|
|-
|valign='top'|
<syntaxhighlight lang='bash'>
helm -n=reloader-system status          reloader
helm -n=reloader-system get    manifest reloader
</syntaxhighlight>
|valign='top'|
|}
==Helm » Config==
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
Helm » Config
|-
!scope='col' style='width:50%'| Scale » Down
!scope='col' style='width:50%'| Scale » Up
|-
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system \
scale deploy/reloader --replicas=0
</syntaxhighlight>
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system \
scale deploy/reloader --replicas=1
</syntaxhighlight>
|}
==Helm » Debug==
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left'|
Helm » Debug
|-
|valign='top'|
<syntaxhighlight lang='bash'>
POD_NAME="$(kubectl -n=reloader-system get  pods -o=yaml -l app.kubernetes.io/name=reloader |yq -P '.items[].metadata.name')"
kubectl -n=reloader-system exec -it "${POD_NAME}" -c reloader -- sh
kubectl -n=reloader-system logs -f  "${POD_NAME}" -c reloader
kubectl -n=reloader-system logs -f  "${POD_NAME}"
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].spec.containers[].name'
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].metadata.labels'
</syntaxhighlight>
|-
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader
</syntaxhighlight>
|}
==Helm » Uninstall==
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
Helm » Uninstall
|-
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
helm -n=reloader-system status    reloader
helm -n=reloader-system get all  reloader
helm -n=reloader-system uninstall reloader
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system delete pvc --all
kubectl                    delete ns  reloader-system
kubectl                    delete pv  reloader-data-reloader-0
</syntaxhighlight>
|}
==Reloader » Config==
{|class='wikitable mw-collapsible'
!scope='col' style='text-align:left' colspan='2'|
Reloader » Config
|-
!scope='col' style='width:50%'| Context
!scope='col' style='width:50%'| Namespace
|-
|valign='top'|
<syntaxhighlight lang='bash'>
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl get service kubernetes -n default
kubectl config get-contexts
kubectl cluster-info
kubectl get --raw /.well-known/openid-configuration|yq -P
kubectl config view -o=yaml|yq '.contexts[0].name'
kubectl get ns shahed-academia
kubectl    -n=shahed-academia get SecretStore    store-shahed-ab
kubectl    -n=shahed-academia get ExternalSecret academia-audit-eso
</syntaxhighlight>
|valign='top'|
<syntaxhighlight lang='yaml'>
cat <<'YML' | \
kubectl apply -f -
---
apiVersion: v1
kind: Namespace
metadata:
  name: shahed-academia
  labels:
    app.kubernetes.io/version: 1.0.0
    app.kubernetes.io/managed-by: kubectl
YML
kubectl get namespace shahed-academia -o=yaml
</syntaxhighlight>
|-
|valign='top'|
{|class='wikitable'
|valign='top'|
* [[Vault#Auth|Skipped » Find More 👉 Vault » Auth]]
----
* [[Vault#Engine » KV|Skipped » Find More 👉 Vault » Engine » KV]]
|}
|valign='top'|
{|class='wikitable'
|valign='top'|
* [[Helm/Vault Secrets Operator#Vault » Config|Skipped » Find More 👉 Vault » K8s » Config » VSO]]
----
* [[Helm/External Secrets Operator#Vault » Config|Skipped » Find More 👉 Vault » K8s » Config » ESO]]
|}
|-
|valign='top'|
{|class='wikitable'
!scope='col'| Scope
!scope='col'| Annotation Key
!scope='col'| Value
|-
| '''Global/Auto'''        || <code>reloader.stakater.com/auto</code>              || <code>true</code>
|-
| '''Specific Secret'''    || <code>secret.reloader.stakater.com/reload</code>    || <code>name-of-secret</code>
|-
| '''Specific ConfigMap''' || <code>configmap.reloader.stakater.com/reload</code>  || <code>name-of-cm</code>
|}
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit'
kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
| yq -P '.metadata.annotations'
</syntaxhighlight>
|-
!scope='col'| VaultStaticSecret
!scope='col'| ExternalSecret
|-
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit-vso'
kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
| yq -P '.metadata.annotations'
</syntaxhighlight>
<syntaxhighlight lang='bash'>
kubectl -n=shahed-academia label VaultStaticSecret academia-audit-vso \
last-sync=$(date +%s) --overwrite
</syntaxhighlight>
|valign='top'|
<syntaxhighlight lang='bash'>
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit-eso'
kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
| yq -P '.metadata.annotations'
</syntaxhighlight>
<syntaxhighlight lang='bash'>
kubectl -n=shahed-academia annotate ExternalSecret academia-audit-eso \
force-sync=$(date +%s) --overwrite
</syntaxhighlight>
|}
==Playground==
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='2'|
Playground
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash'>
helm -n=reloader-system install    reloader stakater/reloader --version=2.2.6
helm -n=reloader-system upgrade -i reloader stakater/reloader --version=2.2.7
helm show  values                          stakater/reloader --version=2.2.7|less
</syntaxhighlight>
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].spec.containers[].name'
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].metadata.labels'
kubectl -n=reloader-system get  pods --show-labels
</syntaxhighlight>
|-
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system delete all --all
kubectl -n=reloader-system delete ing --all
kubectl -n=reloader-system delete sts --all
</syntaxhighlight>
|valign='top' style='width:50%'|
<syntaxhighlight lang='bash'>
kubectl                    delete pv  reloader-data-reloader-0
kubectl -n=reloader-system delete svc --all
kubectl -n=reloader-system delete pvc --all
</syntaxhighlight>
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system rollout history deploy/reloader
kubectl -n=reloader-system rollout restart deploy/reloader
kubectl -n=reloader-system rollout status  deploy/reloader
</syntaxhighlight>
|-
|valign='top' colspan='2'|
<syntaxhighlight lang='bash'>
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader
</syntaxhighlight>
|}
|}


==References==
==References==
{|class='wikitable mw-collapsible'
{|class='wikitable mw-collapsible mw-collapsed'
!scope='col' style='text-align:left' colspan='3'|
!scope='col' style='text-align:left' colspan='3'|
References
References
Line 33: Line 372:
* [[Helm/External Secrets Operator|Helm » External Secrets Operator]]
* [[Helm/External Secrets Operator|Helm » External Secrets Operator]]
* [[Helm/Vault Secrets Operator|Helm » Vault Secrets Operator]]
* [[Helm/Vault Secrets Operator|Helm » Vault Secrets Operator]]
* [https://github.com/stakater/Reloader Helm » Reloader » GitHub]
* [[Helm/Prometheus Stack|Helm » Prometheus Stack]]
* [[Helm/Prometheus Stack|Helm » Prometheus Stack]]
* [[Helm/Cert Manager|Helm » Cert Manager]]
* [[Helm/Cert Manager|Helm » Cert Manager]]

Latest revision as of 14:30, 25 January 2026

helm repo add stakater https://stakater.github.io/stakater-charts
helm repo update && helm repo list
kubectl config get-contexts

Diagram

Helm » Context

Helm » Context

export KUBECONFIG="${HOME}/.kube/aws-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/gcp-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/lke-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/config"

Helm » Install

Helm » Install

helm show   values stakater/reloader --version=2.2.6|less
helm show   values stakater/reloader --version=2.2.7|less
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl create ns   reloader-system || true
kubectl get ns|grep reloader-system
kubectl delete ns   reloader-system || true
Install Notes
cat <<'YML' | \
helm -n=reloader-system upgrade \
-i reloader  stakater/reloader --version=2.2.7 -f -
---
nameOverride: reloader
fullnameOverride: reloader
image:
  name: stakater/reloader
  repository: ghcr.io/stakater/reloader
  tag: v1.4.12
reloader:
  watchGlobally: true
  deployment:
    replicas: 1
    revisionHistoryLimit: 5
    resources:
      limits:
        cpu: 100m
        memory: 512Mi
      requests:
        cpu: 10m
        memory: 128Mi
YML
Verify
helm -n=reloader-system status          reloader
helm -n=reloader-system get    manifest reloader

Helm » Config

Helm » Config

Scale » Down Scale » Up
kubectl -n=reloader-system \
scale deploy/reloader --replicas=0
kubectl -n=reloader-system \
scale deploy/reloader --replicas=1

Helm » Debug

Helm » Debug

POD_NAME="$(kubectl -n=reloader-system get  pods -o=yaml -l app.kubernetes.io/name=reloader |yq -P '.items[].metadata.name')"
kubectl -n=reloader-system exec -it "${POD_NAME}" -c reloader -- sh
kubectl -n=reloader-system logs -f  "${POD_NAME}" -c reloader
kubectl -n=reloader-system logs -f  "${POD_NAME}"
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].spec.containers[].name'
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].metadata.labels'
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader

Helm » Uninstall

Helm » Uninstall

helm -n=reloader-system status    reloader
helm -n=reloader-system get all   reloader
helm -n=reloader-system uninstall reloader
kubectl -n=reloader-system delete pvc --all
kubectl                    delete ns  reloader-system
kubectl                    delete pv  reloader-data-reloader-0

Reloader » Config

Reloader » Config

Context Namespace
export KUBECONFIG="${HOME}/.kube/shahed-ab-kubeconfig.yaml"
kubectl get service kubernetes -n default
kubectl config get-contexts
kubectl cluster-info


kubectl get --raw /.well-known/openid-configuration|yq -P
kubectl config view -o=yaml|yq '.contexts[0].name'


kubectl get ns shahed-academia
kubectl     -n=shahed-academia get SecretStore    store-shahed-ab
kubectl     -n=shahed-academia get ExternalSecret academia-audit-eso
cat <<'YML' | \
kubectl apply -f -
---
apiVersion: v1
kind: Namespace
metadata:
  name: shahed-academia
  labels:
    app.kubernetes.io/version: 1.0.0
    app.kubernetes.io/managed-by: kubectl
YML

kubectl get namespace shahed-academia -o=yaml


Scope Annotation Key Value
Global/Auto reloader.stakater.com/auto true
Specific Secret secret.reloader.stakater.com/reload name-of-secret
Specific ConfigMap configmap.reloader.stakater.com/reload name-of-cm
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit'

kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
 | yq -P '.metadata.annotations'
VaultStaticSecret ExternalSecret
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit-vso'

kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
 | yq -P '.metadata.annotations'
kubectl -n=shahed-academia label VaultStaticSecret academia-audit-vso \
 last-sync=$(date +%s) --overwrite
kubectl -n=shahed-academia annotate deployment <deployment-name> \
  secret.reloader.stakater.com/reload='academia-audit-eso'

kubectl -n=shahed-academia get deploy <deployment-name> -o=yaml \
 | yq -P '.metadata.annotations'
kubectl -n=shahed-academia annotate ExternalSecret academia-audit-eso \
 force-sync=$(date +%s) --overwrite

Playground

Playground

helm -n=reloader-system install    reloader stakater/reloader --version=2.2.6
helm -n=reloader-system upgrade -i reloader stakater/reloader --version=2.2.7
helm show   values                          stakater/reloader --version=2.2.7|less
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader

kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].spec.containers[].name'
kubectl -n=reloader-system get  pods -o=yaml|yq -P '.items[].metadata.labels'
kubectl -n=reloader-system get  pods --show-labels
kubectl -n=reloader-system delete all --all
kubectl -n=reloader-system delete ing --all
kubectl -n=reloader-system delete sts --all
kubectl                    delete pv  reloader-data-reloader-0
kubectl -n=reloader-system delete svc --all
kubectl -n=reloader-system delete pvc --all
kubectl -n=reloader-system rollout history deploy/reloader
kubectl -n=reloader-system rollout restart deploy/reloader
kubectl -n=reloader-system rollout status  deploy/reloader
kubectl -n=reloader-system exec -it -l app.kubernetes.io/name=reloader -c reloader -- sh
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader -c reloader
kubectl -n=reloader-system logs -f  -l app.kubernetes.io/name=reloader

References

References