Deploying API-M on Kubernetes using Helm Resources¶
Follow the instructions below to use Kubernetes (K8s) and Helm resources for container-based deployments of WSO2 API Manager (API-M).
Note
- In the context of this document, <
HELM_HOME>refers to a local copy of thewso2/helm-apim.
Prerequisites
-
Install Git, Helm, Dep and Kubernetes client in order to run the steps provided in the following quick start guide.
-
An already setup Kubernetes cluster.
-
Install NGINX Ingress Controller. Please note that Helm resources for WSO2 product deployment patterns are compatible with NGINX Ingress Controller Git release
nginx-0.22.0.
-
Checkout the Helm Resources for WSO2 API Manager Git repository using
git clone:git clone https://github.com/wso2/helm-apim.git cd helm-apim git checkout tags/all-in-one-4.7.0-1 -
Provide the necessary configurations.
Note
The default product configurations for deployment of WSO2 API Manager are available here folder. Change the configurations, as necessary.
Open the
<HELM_HOME>/all-in-one/values.yamland provide the following values for WSO2 Subscription Configurations.Parameter Description Default Value wso2.deployment.image.registryRegistry of the APIM Docker image "" wso2.deployment.image.repositoryRepostiory of the APIM Docker image "" wso2.deployment.image.digestDigest of the APIM Docker image "" -
Deploy WSO2 API Manager
helm install --dependency-update <RELEASE_NAME> <HELM_HOME>/all-in-one --namespace <NAMESPACE> -
Access Management Console.
-
Obtain the external IP (
EXTERNAL-IP) of the Ingress resources by listing down the Kubernetes Ingresses.Example: NAME CLASS HOSTS ADDRESS PORTS AGEkubectl get ing -n <NAMESPACE>-am-all-in-one-am-gateway-ingress nginx gw.wso2.com 80, 443 8s -am-all-in-one-am-ingress nginx am.wso2.com 80, 443 8s -am-all-in-one-am-websocket-ingress nginx websocket.wso2.com 80, 443 8s -am-all-in-one-am-websub-ingress nginx websub.wso2.com 80, 443 8s ``` -
Add the above hosts as entries in
/etc/hostsfile as follows:<EXTERNAL-IP> am.wso2.com <EXTERNAL-IP> gw.wso2.com <EXTERNAL-IP> websocket.wso2.com <EXTERNAL-IP> websub.wso2.com -
Try navigating to
https://am.wso2.com/carbon,https://am.wso2.com/publisherandhttps://am.wso2.com/devportalfrom your favorite browser.
-
Note
You can read the README guide of WSO2 API Manager Git repository for further details on other dependencies and configurations.
For different deployment patterns, see the deployment configurations with regard to the Advanced Deployment Patterns.