8.2. Upgrading your environment
- Execute the following command to update the heketi packages:
# yum update heketi-templates -y # yum update heketi-client -y
Note
When you runyum update heketi-templates -y
command, theheketi-templates
package is replaced withcns-deploy
. - Execute the following command to delete the old gluster template:
# oc delete templates glusterfs
- Execute the following command to register the new gluster template to OpenShift platform:
# oc create -f /usr/share/heketi/templates/glusterfs-template.yaml
- Execute the following command to deploy the Red Hat Gluster Storage pods:
# oc process glusterfs | oc create -f - daemonset "glusterfs" created
- Execute the following command to delete the glusterfs Deploymentconfing for each gluster node:
# oc delete deploymentconfig glusterfs-dc-<IP_address/Hostname>
For example,# oc delete deploymentconfig glusterfs-dc-node1.example.com deploymentconfig "node1.example.com" deleted
- Execute the following command to label each node that will run Red Hat Gluster Storage pods as
glusterfs
:# oc label nodes <nodename> storagenode=glusterfs
For example,# oc label nodes node1.example.com storagenode=glusterfs node "node1.example.com" labeled
- Execute the following command to delete the heketi template
# oc delete templates heketi
- Execute the following command to install the heketi template:
# oc create -f /usr/share/heketi/templates/heketi-template.yaml template "heketi" created
- Execute the following command to create the heketi Service Account:
# oc create -f /usr/share/heketi/templates/heketi-service-account.yaml serviceaccount "heketi-service-account" created
- Execute the following command to grant the heketi Service Account the neccessary privileges:
# oc policy add-role-to-user edit system:serviceaccount:<project_name>:heketi-service-account
For example,# oc policy add-role-to-user edit system:serviceaccount:storage-project:heketi-service-account
- Execute the following command to delete the deployment configuration, service, and route for heketi:
# oc delete deploymentconfig heketi # oc delete route heketi # oc delete service heketi
- Execute the following command to determine the mountable secret you should use for the heketi pods:
# oc describe sa heketi-service-account Name: heketi-service-account Namespace: storage-project Labels: none Image pull secrets: heketi-service-account-dockercfg-jmxyz Mountable secrets: heketi-service-account-dockercfg-jmxyz heketi-service-account-token-fvhmb Tokens: heketi-service-account-token-fvhmb heketi-service-account-token-lzifj
You should select a secret that is mountable, in your project namespace, and of typekubernetes.io/service-account-token
. You can use the following command to inspect a given secret:# oc describe secret <secret name>
For example:# oc describe secret heketi-service-account-token-fvhmb Name: heketi-service-account-token-fvhmb Namespace: storage-project Labels: none Annotations: kubernetes.io/service-account.name=heketi-service-account kubernetes.io/service-account.uid=3afe5e84-c863-11e6-8736-525400556335 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1070 bytes namespace: 4 bytes service-ca.crt: 2186 bytes token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJhcGxvIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imhla2V0aS1zZXJ2aWNlLWFjY291bnQtdG9rZW4tZnZobWIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiaGVrZXRpLXNlcnZpY2UtYWNjb3VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjNhZmU1ZTg0LWM4NjMtMTFlNi04NzM2LTUyNTQwMDU1NjMzNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDphcGxvOmhla2V0aS1zZXJ2aWNlLWFjY291bnQifQ.OesojdalmQ9pAGR6CQ03vJizrVOGTrKYwvzVbEsms422YkJ1vFLI0idlA3Sxw3C_ZXamOEidYfD7n5A8099qjSyfbEhSZDpaYDfpH-o5gnyjNFpuBkZwPGE9KAEmStOGMtNhO-xAEtrD0UkHtDvy8JKnlrzMStP7NCfpGLL36X4qMx9exL3WGlWcth0kV0mGb3m-NWxr2w7twZK8xP-N8sMbdyD4s-N8naEBxBGAbNxufBBj6FXzzQSg5d1vIYls_ZgqbZV9Dn7fz9aB_GD9UfxI42EER8bzpobyNhxmu5GFfhX1TqE0kqfq1GR7P_Y6TuXrP2aYKPcR9ngZ56grLA
- Execute the following command to deploy the Heketi service which will be used to create persistent volumes for OpenShift:
# oc process heketi -v \ HEKETI_KUBE_NAMESPACE=<Project name> \ HEKETI_KUBE_APIHOST='<OpenShift master endpoint address>' \ HEKETI_KUBE_INSECURE=y \ HEKETI_KUBE_SECRETNAME=<heketi-service-account secret> | oc create -f -
For example:oc process heketi -v \ HEKETI_KUBE_NAMESPACE=storage-project \ HEKETI_KUBE_APIHOST='https://master.example.com:8443' \ HEKETI_KUBE_INSECURE=y \ HEKETI_KUBE_SECRETNAME=<secret from step 12 example> | oc create -f - service "heketi" created route "heketi" created deploymentconfig "heketi" created
- Execute the following command to verify that the containers are running:
# oc get pods
For example:# oc get pods NAME READY STATUS RESTARTS AGE storage-project-router-1-pj9ea 1/1 Running 0 1d deploy-heketi-1-m7x8g 1/1 Running 0 1m glusterfs-41lfl 1/1 Running 0 1m glusterfs-dtyr4 1/1 Running 0 1m glusterfs-ral2d 1/1 Running 0 1m