Istio

The following document will take you through the process of installing, verifying the installation, and uninstalling the Developer Portal for Istio.

Prerequisites

For this guide, we’ll need the following:

Note on Istio Gateways

The Developer Portal will configure Istio to expose your APIs on one or more Gateways. When installing, you can configure which Gateways should be targeted via dedicated values in the Developer Portal Helm chart.

By default, these values are:

istio:
  gateways:
  - name: istio-system/istio-ingressgateway
    ports:
    - port: 80
      targetPort: 8080
    - port: 443
      targetPort: 8443

For example, the default values would work if the following resources are in place:

For the remainder of this guide, we will assume the below Istio configuration is applied to your cluster. If your setup is different, you should customize the Helm values accordingly.

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  labels:
    release: istio
  name: istio-ingressgateway
  namespace: istio-system
spec:
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  servers:
  - hosts:
    - '*'
    port:
      name: http
      number: 80
      protocol: HTTP

---

# This is the Kubernetes service that exposes the above Gateway
apiVersion: v1
kind: Service
metadata:
  name: istio-ingressgateway
  namespace: istio-system
spec:
  clusterIP: 10.20.12.129
  externalTrafficPolicy: Cluster
  # Other ports omitted for brevity
  ports:
  - name: http2
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    port: 443
    protocol: TCP
    targetPort: 8443
  selector:
    app: istio-ingressgateway
    istio: ingressgateway
  type: LoadBalancer

Installation

To install the Dev Portal you’ll use a Helm chart. You will also need a license key to submit as part of the chart deployment. If you do not have a license key, please request a trial on our website.

First we will add the repository with the Helm chart and update the repo contents.

# Add the Helm repository for the Developer Portal
helm repo add dev-portal https://storage.googleapis.com/dev-portal-helm
helm repo update

Then we will create the target namespace for the deployment and install the Dev Portal. Replace the LICENSE_KEY placeholder with your license key.

# Create the namespace and install the Helm chart
kubectl create namespace dev-portal
helm install dev-portal dev-portal/dev-portal -n dev-portal --set licenseKey=LICENSE_HERE --set istio.enabled=true

Helm will create an installation named dev-portal.

NAME: dev-portal
LAST DEPLOYED: XXXXXXXXXXX
NAMESPACE: dev-portal
STATUS: deployed
REVISION: 1
TEST SUITE: None

Verify your Installation

To verify that your installation was successful, check that the Developer Portal deployments and services have been created. If you choose to install into a namespace other than dev-portal, you will need to query your chosen namespace instead.

kubectl get all -n dev-portal
NAME                                    READY   STATUS    RESTARTS   AGE
pod/admin-server-797b786f49-9qs6d       3/3     Running   0          5m
pod/dev-portal-75c5c4d5c6-8f6kq         1/1     Running   0          5m
pod/ext-auth-service-77d669b77c-2hc47   1/1     Running   0          5m
pod/rate-limiter-74c57cddcc-wqnxs       1/1     Running   0          5m
pod/redis-86c48dfd4-85k5j               1/1     Running   0          5m

NAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
service/dev-portal         ClusterIP   10.20.5.150    <none>        8080/TCP                     5m
service/ext-auth-service   ClusterIP   10.20.4.140    <none>        8083/TCP                     5m
service/istio-dev-portal   ClusterIP   10.20.5.78     <none>        8080/TCP                     5m
service/rate-limiter       ClusterIP   10.20.14.114   <none>        8083/TCP,8084/TCP,9091/TCP   5m
service/redis              ClusterIP   10.20.11.165   <none>        6379/TCP                     5m

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/admin-server       1/1     1            1           5m
deployment.apps/dev-portal         1/1     1            1           5m
deployment.apps/ext-auth-service   1/1     1            1           5m
deployment.apps/rate-limiter       1/1     1            1           5m
deployment.apps/redis              1/1     1            1           5m

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/admin-server-797b786f49       1         1         1       5m
replicaset.apps/dev-portal-75c5c4d5c6         1         1         1       5m
replicaset.apps/ext-auth-service-77d669b77c   1         1         1       5m
replicaset.apps/rate-limiter-74c57cddcc       1         1         1       5m
replicaset.apps/redis-86c48dfd4               1         1         1       5m

Please refer to the Architecture page for more details about what function each deployment serves.

Uninstall

To uninstall the Developer Portal simply run the following command:

helm uninstall dev-portal -n dev-portal