kubernetes запуск wordpress(bitnami)

Thank you for reading this post, don't forget to subscribe!

зада­ча запу­стить wordpress на location
т.е. domain.com/blog/

запус­кать будем в k8s  в aws так же будем запус­кать базу внут­ри кла­сте­ра. диск будет на EFS

helm/charts/wordpres_mysql/templates/_helpers.tpl

helm/charts/wordpres_mysql/templates/configurationFiles-configmap.yaml

helm/charts/wordpres_mysql/templates/deployment.yaml

helm/charts/wordpres_mysql/templates/external-secrets.yaml

helm/charts/wordpres_mysql/templates/job.yaml

helm/charts/wordpres_mysql/templates/NOTES.txt

helm/charts/wordpres_mysql/templates/pv.yaml

helm/charts/wordpres_mysql/templates/pvc.yaml

helm/charts/wordpres_mysql/templates/serviceaccount.yaml

helm/charts/wordpres_mysql/templates/svc.yaml

helm/charts/wordpres_mysql/Chart.yaml

helm/charts/wordpres_mysql/values.yaml

 

теперь рас­пи­шу тем­плей­ты само­го вордпресса

helm/charts/wordpress/templates/_helpers.tpl

helm/charts/wordpress/templates/config-secret.yaml

helm/charts/wordpress/templates/deployment.yaml

helm/charts/wordpress/templates/external-secrets.yaml

helm/charts/wordpress/templates/externaldb-secrets.yaml

helm/charts/wordpress/templates/extra-list.yaml

helm/charts/wordpress/templates/hpa.yaml

helm/charts/wordpress/templates/httpd-configmap.yaml

helm/charts/wordpress/templates/ingress.yaml

helm/charts/wordpress/templates/metrics-svc.yaml

helm/charts/wordpress/templates/networkpolicy-backend-ingress.yaml

helm/charts/wordpress/templates/networkpolicy-egress.yaml

helm/charts/wordpress/templates/networkpolicy-ingress.yaml

helm/charts/wordpress/templates/NOTES.txt

helm/charts/wordpress/templates/pdb.yaml

helm/charts/wordpress/templates/postinit-configmap.yaml

helm/charts/wordpress/templates/pv.yaml

helm/charts/wordpress/templates/pvc.yaml

helm/charts/wordpress/templates/secrets.yaml

helm/charts/wordpress/templates/serviceaccount.yaml

helm/charts/wordpress/templates/servicemonitor.yaml

helm/charts/wordpress/templates/svc.yaml

helm/charts/wordpress/templates/tls-secrets.yaml

helm/charts/wordpress/Chart.lock

helm/charts/wordpress/Chart.yaml

helm/charts/wordpress/values.schema.json

helm/charts/wordpress/values.yaml

 

запус­ка­ем всё это с помо­щью helmfile:

helm/helmfile.d/values/prod/mysql.yaml

helm/helmfile.d/values/prod/wordpress.yaml

 

helm/helmfile.d/helmfile.yaml

 

инструк­ция по запус­ку wordpress. что­бы уста­но­вить при пер­вом запус­ке то нуж­но в файле:
helm/helmfile.d/helmfile.yaml
рас­ком­мен­ти­ро­вать рели­зы mysql и wordpress, после руч­ной уста­нов­ки заком­мен­ти­ро­вать и пуш­нуть обратно.
Необ­хо­ди­мо запу­стить wordpress на location /blog.
в AWS secret manager добав­ле­ны пере­мен­ные для созда­ния базы/пользователя базы и пароля.
1. ста­вим MYSQL
ENVIRONMENT_NAME=prod helmfile -l component=mysql-wordpress sync
в каче­стве PV будет исполь­зо­вать­ся EFS
2. ста­вим wordpress
ENVIRONMENT_NAME=prod helmfile -l component=wordpress sync
ждём пока уста­но­вит­ся, обыч­но это зани­ма­ет мину­ты 4-5
3. идём по url
https://domain.com/blog/wp-admin/
там закан­чи­ва­ем установку.
P.S. если нуж­но сме­нить домен­ное имя, мож­но вос­поль­зо­вать­ся сле­ду­ю­щей коман­дой внут­ри кон­тей­не­ра с wordpress:
wp search-replace "domain.com" "blog.domain.com"
P.S.S. Если нуж­но уста­но­вить всё с нуля, то про­сто уда­лить чарт не полу­чит­ся так как дан­ные оста­нут­ся на EFS. Нуж­но под­клю­чить­ся к базе и дроп­нуть её,
kubectl exec -ti -n prod mysql-wordpress-674759fc94-9tjl2 bash
mysql -h mysql-wordpress -u wordpress -p
drop database wordpress;
а так­же зай­ти в кон­тей­нер и очи­стить дирек­то­рию с фай­ла­ми сайта:
kubectl exec -ti -n prod wordpress-74b48746d6-ztbxb bash
rm -rf /bitnami/wordpress/*
rm -rf /bitnami/wordpress/.user_scripts_initialized
после это­го мож­но про­из­во­дить уста­нов­ку с нуля.
Если сна­ча­ла уда­ли­ли релиз с wordpress и он по какой-то при­чине не стар­ту­ет а надо зай­ти и уда­лить фай­лы с efs, то в файле
helm/charts/wordpress/templates/deployment.yaml
нуж­но рас­ком­мен­ти­ро­вать command
```
# command: ["sleep", "500"]
```
после это­го запу­стить sync и за это вре­мя успе­е­те зай­ти и очи­стить директорию.

 

а вот пере­мен­ные из externalsecret у secret manager это и для базы дан­ных и для wordpress

/prod/external-secret-wordpress-prod