Helm/MariaDB/PV

From Chorke Wiki
Revision as of 02:10, 13 June 2025 by Shahed (talk | contribs) (Uninstall)
Jump to navigation Jump to search
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update && helm repo list
kubectl config get-contexts

Config

export KUBECONFIG="${HOME}/.kube/aws-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/dev-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/gcp-kubeconfig.yaml"
export KUBECONFIG="${HOME}/.kube/config"
cat <<'EXE'| sudo bash
          mkdir -p /var/minikube/pvc/mariadb/data-mariadb-0/
chown -R 1001:1001 /var/minikube/pvc/mariadb/
EXE

Install

kubectl get ns|grep mariadb
kubectl delete ns   mariadb

kubectl get ns|grep mariadb
kubectl create ns   mariadb
cat <<ENV | kubectl -n mariadb create secret generic mariadb --from-env-file=/dev/stdin
mariadb-replication-password=sadaqah!
mariadb-root-password=sadaqah!
mariadb-password=sadaqah!
ENV




cat <<'YML'| kubectl apply -f -

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mariadb-data-mariadb-0
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: hostpath
  hostPath:
    path: /var/hostpath_pv/mariadb/data-mariadb-0
    type: DirectoryOrCreate
YML
cat << YML | kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app.kubernetes.io/name: mariadb
  name: data-mariadb-0
  namespace: mariadb
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: hostpath
  volumeName: mariadb-data-mariadb-0
YML

cat <<YML | helm -n mariadb install    mariadb bitnami/mariadb --version=19.0.5 -f -
---
global:
  defaultStorageClass: hostpath
architecture: standalone
auth:
  database: academia
  username: academia
  existingSecret: mariadb
primary:
  service:
    type: LoadBalancer
    loadBalancerIP: 192.168.49.101
  persistence:
    size: 10Gi
    selector: minikube
    storageClass: hostpath
    existingClaim: data-mariadb-0
initdbScripts:
  init-chorke.sql: |
     -- create database
     CREATE DATABASE IF NOT EXISTS academia_flair_staging;
     CREATE DATABASE IF NOT EXISTS academia_audit_staging;
     CREATE DATABASE IF NOT EXISTS academia_quote_staging;
     CREATE DATABASE IF NOT EXISTS academia_users_staging;
     CREATE DATABASE IF NOT EXISTS chorke;
     
     -- create user
     CREATE USER 'chorke'@'%' IDENTIFIED BY 'sadaqah!';
     
     -- grant access
     GRANT ALL PRIVILEGES ON academia_flair_staging.* TO 'chorke'@'%';
     GRANT ALL PRIVILEGES ON academia_audit_staging.* TO 'chorke'@'%';
     GRANT ALL PRIVILEGES ON academia_quote_staging.* TO 'chorke'@'%';
     GRANT ALL PRIVILEGES ON academia_users_staging.* TO 'chorke'@'%';
     GRANT ALL PRIVILEGES ON chorke.* TO 'chorke'@'%';
YML


echo -n password: ;read -s MYSQL_PWD;export MYSQL_PWD;echo
mariadb -h192.168.49.101 -P3306 -uacademia academia
mariadb -h192.168.49.101 -P3306 -uroot mysql
echo -n password: ;read -s MYSQL_PWD;export MYSQL_PWD;echo
mariadb 'mariadb://root@192.168.49.101:3306/academia'
mariadb 'mariadb://root@192.168.49.101:3306/mysql'

Uninstall

kubectl delete namespace mariadb
helm uninstall -n mariadb mariadb
kubectl delete pv mariadb-data-mariadb-0

Swiss Knife

AWS » EKS

Playground

helm -n mariadb install    mariadb bitnami/mariadb --version=19.0.0
helm -n mariadb upgrade -i mariadb bitnami/mariadb --version=19.0.5
helm show values bitnami/mariadb --version=19.0.5|less

kubectl -n mariadb get secret mariadb -o json|jq -r '.data."mariadb-replication-password"'|base64 -d;echo
kubectl -n mariadb get secret mariadb -o json|jq -r '.data."mariadb-root-password"'|base64 -d;echo
kubectl -n mariadb get secret mariadb -o json|jq -r '.data."mariadb-password"'|base64 -d;echo

kubectl -n mariadb exec -it svc/mariadb -c mariadb -- mariadb -uacademia academia -p
kubectl -n mariadb exec -it svc/mariadb -c mariadb -- bash
kubectl -n mariadb exec -it svc/mariadb -- mysql -uroot -p

kubectl config --kubeconfig=${HOME}/.kube/aws-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/dev-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/gcp-kubeconfig.yaml view --flatten
kubectl config --kubeconfig=${HOME}/.kube/config view --flatten

kubectl -n mariadb delete all --all
kubectl -n mariadb delete ing --all
kubectl -n mariadb delete sts --all
kubectl  delete pv mariadb-data-mariadb-0
kubectl -n mariadb delete svc --all
kubectl -n mariadb delete pvc --all

kubectl -n mariadb rollout history sts mariadb
kubectl -n mariadb rollout restart sts mariadb
kubectl -n mariadb rollout status  sts mariadb
kubectl -n mariadb exec -it mariadb-0  -- mariadb -uroot -p
kubectl -n mariadb logs -f svc/mariadb -c mariadb
kubectl -n mariadb logs -f svc/mariadb

References