Deploy Oracle Blockchain Platform Enterprise Edition on minikube

You can use minikube for testing and internal development purposes. Do not use minikube for production environments.

Prerequisites:
  • CPUs: 8 or higher
  • Memory: 16 GB
  • Free disk space: 50 GB or higher
  • A non-root user with superuser privileges
  • Ensure that the minikube node has access to the internet, which is required to install chaincodes on your Oracle Blockchain Platform instances.
  • minikube v1.33.1 or later

Install minikube

This section provides an example walkthrough of installing the tested version of the minikube. For additional information, see Kubernetes Install Tools.

#Download the latest minikube binary
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

#Install
sudo install minikube-linux-amd64 /usr/local/bin/minikube

#Verify Installation
minikube version

#Start Minikube
minikube start

#Verify Minikube Installation
minikube status
#Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

#Install minikube using Homebrew
brew install minikube

#Start minikube
minikube start

#Verify minikube Installation
minikube status

Complete the Istio Install

Oracle Blockchain Platform Enterprise Edition supports version 1.20.2 and later. You must complete the steps in Install Istio before running the following commands.


# Install
    istioctl install --set profile=default --set values.pilot.env.ENABLE_TLS_ON_SIDECAR_INGRESS=true --set components.cni.enabled=true --set values.cni.repair.deletePods="true"
    ## Enter "y" when prompted for "Proceed? (y/N)"
 
# Verify:
    $ istioctl version
    client version: 1.22.1
    control plane version: 1.22.1
    data plane version: 1.22.1 (1 proxies)

Install Oracle Blockchain Platform Enterprise Edition

Download and install Oracle Blockchain Platform Enterprise Edition on your minikube instance:

  1. On the Oracle Blockchain Platform Enterprise Edition page, click Download and follow the steps to download the Oracle Blockchain Platform Enterprise Edition package. Extract the package from the .zip file, and then extract the package from the downloaded archive file.
    tar -xzf <distribution-package-file>
    # example tar -xzf obpee_package_24.1.3-20240723083137.tgz
  2. Update the runme-input.yaml file with the required values. The following example runme-input.yaml file can be used as reference:
    imageRegistryConfiguration:
      registry: <container_registry_name>
      imageTagPrefix: <container-image-repository-prefix>
      username: <container-registry-username>
     
    imageReleaseVersion: 24.1.3-20240723083137
     
    # storageClassName should be set to create a dynamic persistent volume. If empty, default storageClass is used.
     
    controlPlaneStorage:
      storageClassName: 
      # Example 500Mi, 5Gi
      size: 4Gi
      
    parentDomainName: example.com
    #imagePullTimeout: Use this field to customize the wait time (in seconds) for pulling the required container images from the repository. Default is 1800 seconds.
        imagePullTimeout: 1800
    In the previous example, the variables are defined as shown in the following list:
    • imageRegistryConfiguration.registry: Container registry server to use. Example: iad.ocir.io
    • imageRegistryConfiguration.imageTagPrefix: Container base repository path with the registry, where the images will be pushed to and pulled from. Example: iad.ocir.io/obpee/bcs
    • imageRegistryConfiguration.username: Container registry login user name
    • imageReleaseVersion: Oracle Blockchain Platform Enterprise Edition release version
    • controlPlaneStorage.storageClassName: Kubernetes storage class to use for PVC (PersistentVolumeClaim). If empty, the default storageClass is used
    • controlPlaneStorage.size: PVC size for Blockchain Platform Manager (control plane) services
    • parentDomainName: Domain name to use for Blockchain Platform Manager services. Example: example.com
    • imagePullTimeout: Image pull wait timeout in seconds during Oracle Blockchain Platform Enterprise Edition installation. Default is 1800 seconds.
  3. Ensure that minikube is running.
  4. Open a new terminal window and go to the distribution package directory. Run the runme_minikube.sh script and follow the steps as prompted by the script output:
    ./runme_minikube.sh [--publish-images]

    Note:

    The optional --publish-images command uploads the containers to a container image registry such as Oracle Cloud Infrastructure Registry.
    • Enter the default LDAP admin password (the password will not be displayed): sets the administrator's password for the built-in LDAP authentication server.
    • Enter the default control plane admin user password (the password will not be displayed): sets the Blockchain Platform Manager administrator's password.
    • If StorageClass wasn't provided in the runme-input.yaml file, the system checks if the default storage class is set and asks if you want to use it.
    • Confirm the Istio ingress gateway service https port: the default is 443 for the LoadBalancer service type.
    • Enter registry <registry name> password: this password is used to connect to your container image registry (as specified in the runme-input.yaml file) for downloading images.
  5. In a different terminal window, run the following command:
    export KUBECONFIG=/<path_to>/.kube/minikube
  6. Ensure that the minikube tunnel is active for accessing Blockchain Platform Manager and instances:
    minikube tunnel --bind-address 0.0.0.0
  7. The script installs the following services under the obp-cp namespace:
    • control-plane
    • openldap
    • obp-auth-server
    • obp-operator
    • hlf-operator
  8. The script displays the Blockchain Platform Manager URL, which you can use to access the control plane UI.

Access Blockchain Platform Manager

After installation, configure the host name resolution for the generated Blockchain Platform Manager host names.
  1. Run the following command to get the list of configured host names:
    kubectl get virtualservice -n obp-cp -o json | jq -r '.items[].spec.hosts[0]'
  2. Use the IPv4 address of the minikube host as the mapping IP address for the generated host names.
  3. Ensure the minikube tunnel is active to access Blockchain Platform Manager and Oracle Blockchain Platform instances.