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:
- 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
- Update the
runme-input.yaml
file with the required values. The following examplerunme-input.yaml
file can be used as reference:
In the previous example, the variables are defined as shown in the following list: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 will be pushed to and pulled from. Example:iad.ocir.io/obpee/bcs
imageRegistryConfiguration.username
: Container registry login user nameimageReleaseVersion
: Oracle Blockchain Platform Enterprise Edition release versioncontrolPlaneStorage.storageClassName
: Kubernetes storage class to use for PVC (PersistentVolumeClaim). If empty, the 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 that minikube is running.
- 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 therunme-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.
- In a different terminal window, run the following command:
export KUBECONFIG=/<path_to>/.kube/minikube
- Ensure that the minikube tunnel is active for accessing Blockchain Platform Manager and instances:
minikube tunnel --bind-address 0.0.0.0
- The script installs the following services under the
obp-cp
namespace:control-plane
openldap
obp-auth-server
obp-operator
hlf-operator
- 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.
- 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]'
- Use the IPv4 address of the minikube host as the mapping IP address for the generated host names.
- Ensure the minikube tunnel is active to access Blockchain Platform Manager and Oracle Blockchain Platform instances.