Subscribe to our 0800-DEVOPS Newsletter

    Get in touch

    Not sure where to start? Let our experts guide you. Send us your query through this contact form.






      Get in touch

      Contact us for all inquiries regarding services and general information






        Use the form below to apply for course





          Get in touch

          Contact us for all inquiries regarding services and general information






          Blog

          Deploy 3scale into the Red Hat OpenShift Local (ex CRC)

          04.04.2023

          Would you like to install the Red Hat API Management system on your local machine?

          It is not hard to install it locally – you need an OpenShift Local setup with enough memory and the operator will take care of the rest. 🙂

          Red Hat 3scale API Management

          3scale is a Red Hat API Management solution that enables you to share, secure, distribute, control, and monetize your APIs. It can be installed on-premise, used from the cloud or you can even deploy it in a so-called “hybrid” mode where API gateways are installed on-premise while the API management is set up in the cloud.

          OpenShift Local

          Red Hat OpenShift Local enables you to run an OpenShift on your local computer to simplify the setup, deployment, and testing of your cloud-native applications on your local machine.

          Install the OpenShift Local

          Log in to your Red Hat account and download the OpenShift Local for the appropriate platform from the Red Hat Hybrid Cloud Console.

          Install the OpenShift local following instructions from the Red Hat documentation or instructions from the crc.dev.

          On my Ubuntu 22.04 machine, the only notable difference from the instructions was that I needed to select the qemu-system-x86 package instead of the qemu-kvm package.

          Create & start the OpenShift Local

          There are just a few commands you need to run to create and start the OpenShift Local. The first command will pull ~3 GiB *.crcbundle to your local home .crc directory.

          
          crc setup
          

          After that, you can configure local OpenShift to use a bit more memory, cores, and disk than the default. With the default 9 GiB of memory, 3scale was not able to start successfully. After configuration is performed, run the crc start command and give the OpenShift Local some time to start.

          
          # Default is 9 GiB memory (9216), 4 cores, 31 GiB disk.
          crc config set memory 16384
          crc config set cpus 8
          crc config set disk-size 48
          
          crc start
          

          You can always check the status of your cluster with the crc status command.

          After starting the OpenShift Local on my Ubuntu machine I realized that the DNS resolving doesn’t work as it should (as described in the crc issue on the GitHub). The workaround is to wait for the creation of the new network interface named crc and apply the following changes using the resolvectl commands:

          
          # check if crc device is created
          ip addr show dev crc
          
          sudo resolvectl domain crc ~testing
          sudo resolvectl dns crc 192.168.130.11
          sudo resolvectl llmnr crc yes
          
          # test if DNS is working properly
          host console-openshift-console.apps-crc.testing
          

          After the OpenShift Local is fully started, open the OpenShift console in your browser by running the crc console command. Get the sign-in credentials for the console using the crc console --credentials command.

          Install the 3scale API Management system

          • create the 3scale namespace (or use any other name you prefer)
          • install a 3scale operator
            • login as a kubeadmin
            • Operators / OperatorHub: Red Hat Integration – 3scale
            • (You can use the community version instead (3scale API Management)
          • install a 3scale
            • log in as a developer
            • Operators / Installed Operators: Red Hat Integration – 3scale
            • Navigate to tab APIManager and click on the Create APIManager action
            • (make sure to adjust the APIManager custom resource with proper wildcardDomain and resourceRequirementsEnabled values)

          The APIManager custom resource must be adjusted according to the template given below. Just edit the YAML definition to include proper wildcardDomain and resourceRequirementsEnabled values.

          
          apiVersion: apps.3scale.net/v1alpha1
          kind: APIManager
          metadata:
             name: apimanager
             namespace: 3scale
          spec:
            wildcardDomain: apps-crc.testing
            resourceRequirementsEnabled: false
           

          The wildcardDomain value must be set to your OpenShift DNS domain (apps-crc.testing).

          The resourceRequirementsEnabled value must be set to false to enable 3scale to start with fewer resources than it should need in the production environment.

          After creating the APIManager you just need to wait a few minutes and your 3scale will be up & running. Now you can install your APIs, configure your Applications or just explore the Red Hat 3scale API Management solution 🙂


          Cover image by Francois Van Staden

          Vedran Vidović is a proactive and experienced software developer. Since 2001, he works in IT industry, and has gained extensive experience in development, analysis, design, and architecture, applying different technologies on many projects from various business domains. He has broad experience in J2EE technologies on projects of various complexity. Since 2009, he gathered extensive experience in the enterprise integration projects, using mostly IBM DataPower Gateway and IBM API Connect.

          CONTACT

          Get in touch

          Contact us