Grafana datasource is not updated even upon a deletion of the Grafana pod

Environment:
Grafana installed using the kube-prometheus-stack helm chart: v47.1.0
Basic authentication is disabled on Grafana
Azure AD authentication is enabled on Grafana
Kubernetes environment: v1.26.3(Azure Kubernetes service)

I have defined values for both the default data source as well as a value in the additional data sources in the kube-prometheus-stack helm chart . No matter what i do, i could not get the default datasource loaded automatically using the data source side car. Even killing the grafana pod did not really help
The grafana datasource side car always returned the following error:

POST request sent to http://localhost:3000/api/admin/provisioning/datasources/reload. Response: 401 Unauthorized


I stumbled upon the issue on Github: [grafana] Data sources are not loaded properly when Grafana is configured with anonymous log in · Issue #981 · grafana/helm-charts · GitHub, where it was suggested that Grafana needs to be enabled with basic authentication for the above POST request to work.
I then enabled basic authentication for Grafana. However, i still continued to face the same Unauthorized error.

I then made the following changes in the kube-prometheus-stack helm chart:

skipReload: true
 initDatasources: true

With the above changes, i now have an additional init continaer which loads the datasource at the time of creation of the grafana pod. With the above changes, i am able to get the data source updated(However, inspite of the above changes, i still have to sometimes kill the grafana pod as updation of the datasource only causes the associated config map to be updated and not the grafana pod to be reloaded).

So my question really is, how do we configure Grafana to reload changed data sources automatically using the kube-promehtues-stack helm chart configuration?

I am also attaching a template run of my kube-prometheus-stack helm chart for reference(I have intentionally deleted the non essential parts to keep the file as short as possible)

Any suggestions would be very much appreciated.

Regards,
Kiran Hegde

---
# Source: kube-prometheus-stack/charts/grafana/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    helm.sh/chart: grafana-6.57.4
    app.kubernetes.io/name: grafana
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "9.5.5"
    app.kubernetes.io/managed-by: Helm
  name: kube-prometheus-stack-grafana
  namespace: observability
---
# Source: kube-prometheus-stack/charts/kube-state-metrics/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:    
    helm.sh/chart: kube-state-metrics-5.8.1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: metrics
    app.kubernetes.io/part-of: kube-state-metrics
    app.kubernetes.io/name: kube-state-metrics
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "2.9.2"
    release: kube-prometheus-stack
  name: kube-prometheus-stack-kube-state-metrics
  namespace: observability
imagePullSecrets:  
  - name: pmtsecret
---
# Source: kube-prometheus-stack/charts/prometheus-node-exporter/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-prometheus-stack-prometheus-node-exporter
  namespace: observability
  labels:
    helm.sh/chart: prometheus-node-exporter-4.18.1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: metrics
    app.kubernetes.io/part-of: prometheus-node-exporter
    app.kubernetes.io/name: prometheus-node-exporter
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "1.6.0"
    jobLabel: node-exporter
    release: kube-prometheus-stack
imagePullSecrets:  
  - name: pmtsecret
---
# Source: kube-prometheus-stack/templates/alertmanager/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-prometheus-stack-alertmanager
  namespace: observability
  labels:
    app: kube-prometheus-stack-alertmanager
    app.kubernetes.io/name: kube-prometheus-stack-alertmanager
    app.kubernetes.io/component: alertmanager
    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
automountServiceAccountToken: true
imagePullSecrets:
  - name: pmtsecret
---
# Source: kube-prometheus-stack/templates/prometheus-operator/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-prometheus-stack-operator
  namespace: observability
  labels:
    app: kube-prometheus-stack-operator
    app.kubernetes.io/name: kube-prometheus-stack-prometheus-operator
    app.kubernetes.io/component: prometheus-operator
    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
imagePullSecrets:
  - name: pmtsecret
---
# Source: kube-prometheus-stack/templates/prometheus/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-prometheus-stack-prometheus
  namespace: observability
  labels:
    app: kube-prometheus-stack-prometheus
    app.kubernetes.io/name: kube-prometheus-stack-prometheus
    app.kubernetes.io/component: prometheus
    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
imagePullSecrets:
  - name: pmtsecret
---
# Source: kube-prometheus-stack/templates/thanos-ruler/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-prometheus-stack-thanos-ruler
  namespace: observability
  labels:
    app: kube-prometheus-stack-thanos-ruler
    app.kubernetes.io/name: kube-prometheus-stack-thanos-ruler
    app.kubernetes.io/component: thanos-ruler    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
imagePullSecrets:
  - name: pmtsecret

# Source: kube-prometheus-stack/templates/alertmanager/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: alertmanager-kube-prometheus-stack-alertmanager
  namespace: observability
  labels:
    app: kube-prometheus-stack-alertmanager
    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
data:
  alertmanager.yaml: "blah"
---
# Source: kube-prometheus-stack/charts/grafana/templates/configmap-dashboard-provider.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    helm.sh/chart: grafana-6.57.4
    app.kubernetes.io/name: grafana
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "9.5.5"
    app.kubernetes.io/managed-by: Helm
  name: kube-prometheus-stack-grafana-config-dashboards
  namespace: observability
data:
  provider.yaml: |-
    apiVersion: 1
    providers:
      - name: 'sidecarProvider'
        orgId: 1
        folder: ''
        type: file
        disableDeletion: false
        allowUiUpdates: false
        updateIntervalSeconds: 30
        options:
          foldersFromFilesStructure: false
          path: /tmp/dashboards
---
# Source: kube-prometheus-stack/charts/grafana/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-prometheus-stack-grafana
  namespace: observability
  labels:
    helm.sh/chart: grafana-6.57.4
    app.kubernetes.io/name: grafana
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "9.5.5"
    app.kubernetes.io/managed-by: Helm
data:
  grafana.ini: |
    [analytics]
    check_for_updates = true
    [auth.anonymous]
    enabled = true
    hide_version = true
    org_name = Main Org.
    org_role = Viewer
    [auth.azuread]
    allow_assign_grafana_admin = true
    allow_sign_up = true
    auth_url = https://blah
    auto_login = false
    client_id = blah
    client_secret = blah
    enabled = true
    name = Azure AD
    role_attribute_strict = false
    scopes = openid email profile
    skip_org_role_sync = false
    token_url = https://blah
    use_pkce = true
    [grafana_net]
    url = https://grafana.net
    [log]
    level = debug
    mode = console
    [paths]
    data = /var/lib/grafana/
    logs = /var/log/grafana
    plugins = /var/lib/grafana/plugins
    provisioning = /etc/grafana/provisioning
    [security]
    admin_password = blah
    [server]
    domain = ''
    root_url = https://blah.com/grafana
    serve_from_sub_path = true
    [users]
    viewers_can_edit = true
---
# Source: kube-prometheus-stack/templates/grafana/configmaps-datasources.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-prometheus-stack-grafana-datasource
  namespace: observability
  labels:
    grafana_datasource: "1"
    app: kube-prometheus-stack-grafana
    
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/instance: kube-prometheus-stack
    app.kubernetes.io/version: "47.1.0"
    app.kubernetes.io/part-of: kube-prometheus-stack
    chart: kube-prometheus-stack-47.1.0
    release: "kube-prometheus-stack"
    heritage: "Helm"
data:
  datasource.yaml: |-
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      uid: prometheus
      url: http://thanos-query:9090/thanos-query
      access: proxy
      isDefault: true
      jsonData:
        httpMethod: POST
        timeInterval: 30s
    - name: Alertmanager
      type: alertmanager
      uid: alertmanager
      url: http://kube-prometheus-stack-alertmanager.observability:9093/alertmanager
      access: proxy
      jsonData:
        handleGrafanaManagedAlerts: false
        implementation: prometheus
    - access: proxy
      editable: false
      isDefault: false
      name: Loki
      type: loki
      url: http://grafana-loki-gateway
      version: 1

---