====== Dokuwiki via helm ======
$ helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories
$ helm show values bitnami/dokuwiki > values.yaml
dokuwikiUsername: admin
dokuwikiPassword: "YWRtaW4K"
dokuwikiEmail: admin@juntotelecom.com.br
dokuwikiFullName: Administrator Wiki
dokuwikiWikiName: Wiki JuntoTelecom
persistence:
storageClass: "nfs-client"
service:
type: ClusterIP
$ kubectl create ns wiki-system
namespace/wiki-system created
$ helm install wiki -f values.yaml bitnami/dokuwiki -n wiki-system
NAME: wiki
LAST DEPLOYED: Fri May 13 12:31:54 2022
NAMESPACE: wiki-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: dokuwiki
CHART VERSION: 12.3.0
APP VERSION: 20200729.0.0
** Please be patient while the chart is being deployed **
1. Get the DokuWiki URL by running:
export NODE_PORT=$(kubectl get --namespace wiki-system -o jsonpath="{.spec.ports[0].nodePort}" services wiki-dokuwiki)
export NODE_IP=$(kubectl get nodes --namespace wiki-system -o jsonpath="{.items[0].status.addresses[0].address}")
echo "URL: http://$NODE_IP:$NODE_PORT/"
2. Login with the following credentials
echo Username: admin
echo Password: $(kubectl get secret --namespace wiki-system wiki-dokuwiki -o jsonpath="{.data.dokuwiki-password}" | base64 --decode)
$ echo Password: $(kubectl get secret --namespace wiki-system wiki-dokuwiki -o jsonpath="{.data.dokuwiki-password}" | base64 --decode)
Password: YWRtaW4K
$ helm list -n wiki-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
wiki wiki-system 1 2022-05-13 12:31:54.316578713 -0300 -03 deployed dokuwiki-12.3.0 20200729.0.0
$ kubectl get all -n wiki-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/wiki-dokuwiki-fdc5dbc88-qlm2g 1/1 Running 0 75s 10.244.213.138 kube-worker-02.juntotelecom.com.br
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/wiki-dokuwiki NodePort 10.96.35.202 80:30617/TCP,443:32665/TCP 75s app.kubernetes.io/instance=wiki,app.kubernetes.io/name=dokuwiki
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
deployment.apps/wiki-dokuwiki 1/1 1 1 75s dokuwiki docker.io/bitnami/dokuwiki:20200729.0.0-debian-10-r566 app.kubernetes.io/instance=wiki,app.kubernetes.io/name=dokuwiki
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
replicaset.apps/wiki-dokuwiki-fdc5dbc88 1 1 1 75s dokuwiki docker.io/bitnami/dokuwiki:20200729.0.0-debian-10-r566 app.kubernetes.io/instance=wiki,app.kubernetes.io/name=dokuwiki,pod-template-hash=fdc5dbc88
$ kubectl get pv,pvc -n wiki-system
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223 8Gi RWO Delete Bound wiki-system/wiki-dokuwiki nfs-client 119s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/wiki-dokuwiki Bound pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223 8Gi RWO nfs-client 119s
$ kubectl describe pv pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223 -n wiki-system
Name: pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223
Labels:
Annotations: pv.kubernetes.io/provisioned-by: k8s-sigs.io/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pv-protection]
StorageClass: nfs-client
Status: Bound
Claim: wiki-system/wiki-dokuwiki
Reclaim Policy: Delete
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 8Gi
Node Affinity:
Message:
Source:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 172.28.128.126
Path: /nfs/kubedata/wiki-system-wiki-dokuwiki-pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223
ReadOnly: false
Events:
$ kubectl describe pvc wiki-dokuwiki -n wiki-system
Name: wiki-dokuwiki
Namespace: wiki-system
StorageClass: nfs-client
Status: Bound
Volume: pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223
Labels: app.kubernetes.io/instance=wiki
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=dokuwiki
helm.sh/chart=dokuwiki-12.3.0
Annotations: meta.helm.sh/release-name: wiki
meta.helm.sh/release-namespace: wiki-system
pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
volume.kubernetes.io/storage-provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 8Gi
Access Modes: RWO
VolumeMode: Filesystem
Used By: wiki-dokuwiki-fdc5dbc88-qlm2g
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 3m52s persistentvolume-controller waiting for a volume to be created, either by external provisioner "k8s-sigs.io/nfs-subdir-external-provisioner" or manually created by system administrator
Normal Provisioning 3m52s k8s-sigs.io/nfs-subdir-external-provisioner_nfs-client-provisioner-7d976fc48b-7x2pg_a215ea7e-9ba4-4d70-9ad5-dde6b490b035 External provisioner is provisioning volume for claim "wiki-system/wiki-dokuwiki"
Normal ProvisioningSucceeded 3m52s k8s-sigs.io/nfs-subdir-external-provisioner_nfs-client-provisioner-7d976fc48b-7x2pg_a215ea7e-9ba4-4d70-9ad5-dde6b490b035 Successfully provisioned volume pvc-14d94a74-5b61-4a1b-929b-6ed3c8816223
===== Serviço em dual stack =====
$ kubectl describe service wiki-dokuwiki -n wiki-system
Name: wiki-dokuwiki
Namespace: wiki-system
Labels: app.kubernetes.io/instance=wiki
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=dokuwiki
helm.sh/chart=dokuwiki-12.3.0
Annotations: meta.helm.sh/release-name: wiki
meta.helm.sh/release-namespace: wiki-system
Selector: app.kubernetes.io/instance=wiki,app.kubernetes.io/name=dokuwiki
Type: NodePort
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.96.35.202
IPs: 10.96.35.202
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 30617/TCP
Endpoints: 10.244.213.138:8080
Port: https 443/TCP
TargetPort: https/TCP
NodePort: https 32665/TCP
Endpoints: 10.244.213.138:8443
Session Affinity: None
External Traffic Policy: Cluster
Events:
$ kubectl edit service wiki-dokuwiki -n wiki-system
Adicione/altere:
ipFamilyPolicy: PreferDualStack
ipFamilies:
- IPv6
- IPv4
$ kubectl describe service wiki-dokuwiki -n wiki-system
Name: wiki-dokuwiki
Namespace: wiki-system
Labels: app.kubernetes.io/instance=wiki
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=dokuwiki
helm.sh/chart=dokuwiki-12.3.0
Annotations: meta.helm.sh/release-name: wiki
meta.helm.sh/release-namespace: wiki-system
Selector: app.kubernetes.io/instance=wiki,app.kubernetes.io/name=dokuwiki
Type: NodePort
IP Family Policy: PreferDualStack
IP Families: IPv4,IPv6
IP: 10.96.35.202
IPs: 10.96.35.202,fd00:0:0:100::4909
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 30617/TCP
Endpoints: 10.244.213.138:8080
Port: https 443/TCP
TargetPort: https/TCP
NodePort: https 32665/TCP
Endpoints: 10.244.213.138:8443
Session Affinity: None
External Traffic Policy: Cluster
Events:
===== Ingress =====
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
creationTimestamp: null
name: wiki
namespace: wiki-system
spec:
ingressClassName: nginx
rules:
- host: wiki.juntotelecom.com.br
http:
paths:
- backend:
service:
name: wiki-dokuwiki
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer: {}
$ kubectl apply -f wiki-ingress.yaml
ingress.networking.k8s.io/wiki created
$ kubectl get ingress -n wiki-system
NAME CLASS HOSTS ADDRESS PORTS AGE
wiki nginx wiki.juntotelecom.com.br 172.28.128.100 80 58s
$ kubectl describe ingress wiki -n wiki-system
Name: wiki
Labels:
Namespace: wiki-system
Address: 172.28.128.100
Default backend: default-http-backend:80 ()
Rules:
Host Path Backends
---- ---- --------
wiki.juntotelecom.com.br
/ wiki-dokuwiki:80 (10.244.213.138:8080)
Annotations:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 29s (x2 over 85s) nginx-ingress-controller Scheduled for sync
[[http://wiki.juntotelecom.com.br/|Acesse]]
===== Para remover =====
$ helm uninstall wiki -n wiki-system
release "wiki" uninstalled
===== Referências =====
- [[https://artifacthub.io/packages/helm/bitnami/dokuwiki|dokuwiki]]