Installing the Component Pack applications

Install the applications that make up Component Pack.

Before you begin, see Installing Component Pack for Connections for essential background information.

Important: After each of the following tasks, you must verify that all pods are up and running (or completed) by using the command kubectl get pods –n connections. Only then should you move to the next task.

1. Downloading and setting up the package

On the server which has Helm v2 and kubectl configured for your non-root user, download and unpack the Component Pack archive to /opt/microservices_connections.

2. Creating the namespace

On the server which has Helm v2 and kubectl configured for your non-root user, create the Connections namespace in Kubernetes by running the following command:
kubectl create namespace connections

3. Creating the credentials

You must create credentials for Kubernetes to use to log in to your Docker Registry and pull the images from there. You need to use the name "myregkey" as shown the the following example.

Run this command on your server that has Helm v2 and kubectl:
kubectl create secret docker-registry myregkey –n connections --docker-
server=mydockerregistry01.internal.mysite.com:5000 --docker-username=admin --docker-
password=password

4. Pushing the images to the registry

On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, go to /opt/microservices_connections/hybridcloud/support and run this command from there:
./setupImages.sh -dr 
mydockerregistry01.internal.mysite.com -u admin -p password

5. Setting up PSP

On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run this command to set up PSP:
helm upgrade k8s-psp 
/opt/microservices/hybridcloud/helmbuilds/k8s-psp-*.tgz -i
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases and asterisk won't work.

6. Setting up PVs and PVCs

On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the following command to set up persistent volumes (PVs) and persistent volume claims (PVCs):
helm upgrade connections-volumes /opt/microservices/hybridcloud/helmbuilds/connections-
persistent-storage-nfs-*.tgz -i --set nfs.server=192.168.168.192,persistentVolumePath=/pv-
connections
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.

7. Bootstrapping the Component Pack cluster

This task creates bunch certificates and everything needed for the components to successfully get up and running.

On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the following command to set up the bootstrap. Bootstrapping is just a one-time job, not a regular pod.
helm upgrade bootstrap /opt/microservices/hybridcloud/helmbuilds/bootstrap*.tgz -i --set 
env.set_ic_admin_user=wasadmin,env.set_ic_admin_password=waspassword,env.set_ic_internal=ihs01.internal
.mysite.com,env.set_master_ip=k8smaster01.internal.mysite.com,env.set_elasticsearch_ca_password=
setanypasswordhere,env.set_elasticsearch_key_password=setanypasswordhere,env.set_redis_secret=
setanysecrethere,env.set_search_secret=setanysecrethere,env.set_solr_secret=setanysecrethere,
env.skip_configure_redis=false,image.repository=mydockerregistry01.internal.mysite.com:5000/connections
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.

8. Setting up connections-env configmap

On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the following command to set up the configmap called connections-env, which is used by all Component Pack services:
helm upgrade connections-env /opt/microservices/hybridcloud/helmbuilds/connections-env-
*.tgz -i --set 
onPrem=false,createSecret=false,ic.host=www.mysite.com,ic.internal=ihs01.internal.mysite.com,
ic.interserviceOpengraphPort=443,ic.interserviceConnectionsPort=443,ic.interserviceScheme=https
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases and asterisk won't work.

9. Setting up the ingress controller

  1. On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run this command to set up the ingress controller called cnx-ingress:
    helm upgrade cnx-ingress /opt/microservices/hybridcloud/helmbuilds/cnx-ingress-*.tgz -i --set 
    ingress.hosts.domain=internal.mysite.com,global.onPrem=true,global.image.repository=mydockerregistry01
    .internal.mysite.com:5000/connections
  2. Verify that the ingress controller is there by running kubectl get ingress –n connections. You should see three routes there.
  3. Edit each ingress, copy the hosts part, and rename it to mysite.com (from internal.mysite.com). The goal is that, once you are done with this step and you run kubectl get ingress –n connections again, that under Hosts you see for everything both *.internal.mysite.com and *.mysite.com
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.

10. Setting up Customizer

  1. On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run this command to set up Customizer:
    Mount 192.168.168.192:/pv-connections/customizations to /mnt/customizations
  2. Copy files from /opt/microservices/hybridcloud/support/customizer to /mnt/customizations
  3. helm upgrade mw-proxy /opt/microservices/hybridcloud/helmbuilds/mw-proxy-*.tgz -i --set image.repository=mydockerregistry01.internal.mysite.com:5000/connections,deploymentType=hybrid_cloud
    Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.
  4. After setting up Customizer, you must set the proxy in front of it (NGINX or anything else). This example uses NGINX running on proxy01.internal.mysite.com. For how to do a proper NGINX configuration, see Configuring the NGINX proxy server for Customizer.

11. Setting up the infrastructure for Orient Me

  1. Verify that you created PVs and PVCs properly by running kubectl get pv –n connections and kubectl get pvc –n connections.
  2. On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the following command to set up the infrastructure needed by Orient Me:
    helm upgrade infrastructure /opt/microservices/hybridcloud/helmbuilds/infrastructure-*.tgz -i --set 
    global.onPrem=true,global.image.repository=mydockerregistry01.internal.mysite.com:5000/connections,mongodb
    .createSecret=false,appregistry-service.deploymentType=hybrid_cloud
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.

12. Setting up Elasticsearch

  1. Verify that you created PVs and PVCs properly by running kubectl get pv –n connections and kubectl get pvc –n connections.
  2. On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the following command to set up the Elasticsearch infrastructure needed by Orient Me, Metrics, and the Kibana/ELK stack:
    helm upgrade elasticsearch /opt/microservices/hybridcloud/helmbuilds/elasticsearch-*.tgz -i --set 
    image.repository=mydockerregistry01.internal.mysite.com:5000/connections,nodeAffinityRequired=true
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases an asterisk won't work.

13. Setting up Orient Me

Important: Make sure that you've completed the preceding tasks before doing this one. Orient Me requires MongoDB and couple of other things that are part of the infrastructure package (task 11) and ElasticSearch (task 12).
  1. Verify that you created PVs and PVCs properly by running kubectl get pv –n connections and kubectl get pvc –n connections.
  2. On the server where you have Helm v2 and kubectl configured for your non-root user, and where you unpacked the Component Pack archive, run the this command to set up the OrientMe:
    helm upgrade orientme /opt/microservices/hybridcloud/helmbuilds/orientme-*.tgz -i --set 
    global.onPrem=true,global.image.repository=mydockerregistry01.internal.mysite.com:5000/connections,
    orient-web-client.service.nodePort=30001,itm-services.service.nodePort=31100,mail-service.service
    .nodePort=32721,community-suggestions.service.nodePort=32200,deploymentType=hybrid_cloud,orient-
    indexing-service.indexing.solr=false,orient-indexing-service.indexing.elasticsearch=true,orient-
    retrieval-service.retrieval.elasticsearch=true
  3. To be able to properly use Orient Me, configure IBM HTTP Server on ihs01.internal.mysite.com by following the steps in Configuring the HTTP server for Orient Me.
  4. Follow the steps in Migrating the data for the Orient Me home page to migrate the data from the ProfilesDB to the MongoDB that will be used by Orient Me.
Note: Depending on which package you're using, you should fix the package name, as the suffix is the build timestamp and in some cases and asterisk won't work.