Deploy Oracle Blockchain Platform Enterprise Edition on minikube
minikube can be used for testing and internal development purposes. It is not recommended for production environments.
Prerequisites:
- CPUs: 8 or higher
- Memory: 16GB
- Free disk space: 50GB or higher
- A non-root user with superuser privileges
- Ensure the minikube node has access to internet, which is required for installation of 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 have completed the steps in Install Istio before completing the following.
# 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
To download and install Oracle Blockchain Platform Enterprise Edition on your minikube instance:
- On the Oracle Blockchain Platform Enterprise Edition page, click Download and follow the steps to download the Oracle Blockchain Platform Enterprise Edition package. Unzip the package, 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
- Update
runme-input.yaml
with the required values. This is an examplerunme-input.yaml
which can be used as reference:
where: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
imageRegistryConfiguration.registry
: container registry server to use. Example:iad.ocir.io
imageRegistryConfiguration.imageTagPrefix
: container base repository path with the registry, where the images shall be pushed (pulled) to (from). Example:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: container registry login usernameimageReleaseVersion
- Oracle Blockchain Platform Enterprise Edition release versioncontrolPlaneStorage.storageClassName
: Kubernetes storage-class to use for PVC (PersistentVolumeClaim). If empty, defaultstorageClass
is usedcontrolPlaneStorage.size
: PVC size for Blockchain Platform Manager (control plane) servicesparentDomainName
: 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.
- Ensure minikube is running.
- Open a new terminal window and go to the distribution package directory. Run
runme_minikube.sh
and follow the steps as prompted by the script output:./runme_minikube.sh [--publish-image]
Note:
The optional--publish-image
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): this is used to set the admin user's password for the built-in LDAP authentication server.
- Enter the default control plane admin user password (the password will not be displayed): this is used to set the Blockchain Platform Manager admin user's password.
- If
StorageClass
wasn't provided inrunme-input.yaml
, the system will check if the default storage class is set and ask 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 is used to connect to your container image registry (as specified in
runme-input.yaml
) for downloading images.
- In a different terminal window, run the following command:
export KUBECONFIG=/<path_to>/.kube/minikube
- Ensure minikube tunnel is active for accessing the Blockchain Platform Manager and instances:
minikube tunnel --bind-address 0.0.0.0
- The script should continue to install the below services under
obp-cp
namespace:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
- The script will output the Blockchain Platform Manager URL, from which the control plane UI is accessible.
Access Blockchain Platform Manager
After installation, configure the hostname resolution for the Blockchain Platform Manager hostnames generated.
- Execute this command to get the list of configured hostnames:
kubectl get virtualservice -n obp-cp -o json | jq -r .items[].spec.hosts[0]
- Use the IPv4 address of the minikube host as the mapping IP address for the generated hostnames.
- Ensure the minikube tunnel is active to access Blockchain Platform Manager and Oracle Blockchain Platform instances.