8.2. Upgrading your environment


  1. Execute the following command to update the heketi packages:
    # yum update heketi-templates -y 
    # yum update heketi-client -y

    Note

    When you run yum update heketi-templates -y command, the heketi-templates package is replaced with cns-deploy.
  2. Execute the following command to delete the old gluster template:
    # oc delete templates glusterfs
    
  3. Execute the following command to register the new gluster template to OpenShift platform:
    # oc create -f /usr/share/heketi/templates/glusterfs-template.yaml
  4. Execute the following command to deploy the Red Hat Gluster Storage pods:
    # oc process glusterfs | oc create -f -
    daemonset "glusterfs" created
  5. 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
    
  6. 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
  7. Execute the following command to delete the heketi template
    # oc delete templates heketi
  8. Execute the following command to install the heketi template:
    # oc create -f /usr/share/heketi/templates/heketi-template.yaml
    template "heketi" created
  9. 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
  10. 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
  11. 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
  12. 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 type kubernetes.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
    
  13. 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
  14. 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
    
Red Hat logoGithubRedditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.