cancel
Showing results for 
Search instead for 
Did you mean: 
A New Home in the New Year for SAP Community!

Subscribing a Kyma based Multi tenant app in consumer account fails with :create APIRule error

George_James
Employee
Employee

Mission: https://developers.sap.com/mission.cp-kyma-multitenant.html 
--------------------------

Hi All,

I'm new to Kyma, BTP and all things cloud. Was trying to implement the above tutorial for a Kyma based multitenant app. The backend and app router are deployed to the cluster successfully. I tried subscribing from a Consumer subaccount, but it fails with following error:
Technical Details:
subscribe failed. Error: subscribe failed in create callback.

 Error description: Timestamp: Fri Feb 03 09:53:47 GMT 2023, correlationId: 8007ab48-fa1b-4d3a-73cc-d67f2a4efe42, Details: Error manage callbacks: Failed to call callback url.....
eventType=CREATE) Reason: returned value from application: 500 INTERNAL_SERVER_ERROR, with body: create APIRule error

 

As the error log contains uuids to subaccounts, I havent pasted the whole log, do let me know what else to add.
While exploring the API Rule resource, I found that the Kyma runtime is enforcing beta1 version, so I tweaked the 'createApiRule.js' to create a v1beta APIRule, but the same error still occurs. Could someone support on this?

 

 

 

 

 

module.exports = {
    createApiRule: createApiRule
}

function createApiRule(svcName, svcPort, host, clusterName) {

    let forwardUrl = host + '.' + clusterName;
    const supportedMethodsList = [
        'GET',
        'POST',
        'PUT',
        'PATCH',
        'DELETE',
        'HEAD',
    ];
    const access_strategy = {
        path: '/.*',
        methods: supportedMethodsList,
        // mutators: [{
        //     handler: 'header',
        //     config: {
        //         headers: {
        //             "x-forwarded-host": forwardUrl,
        //         }
        //     },
        // }],
        accessStrategies: [{
            handler: 'allow'
        }],
    };

    const apiRuleTemplate = {
        apiVersion: 'gateway.kyma-project.io/v1beta1',
        kind: 'APIRule',
        metadata: {
            name: host + '-apirule',
        },
        spec: {
            gateway: 'kyma-gateway.kyma-system.svc.cluster.local',
            host: host,
            service: {                
                name: svcName,
                port: svcPort,
            },
            rules: [access_strategy],
        },
    };
    return apiRuleTemplate;
}

 

 

LuizGomes
Galactic 2
Why aren't you using .yaml?
George_James
Employee

if you're talking about deployment, I've used the yaml files as indicated in
https://github.com/SAP-samples/btp-kyma-runtime-multitenancy-tutorial/tree/main/Mission%20-%20Develo...

few changes I've done is change some services, which were updated to latest apiVersion. eg:
apiVersion: servicecatalog.k8s.io/v1beta1 was giving an error so changed to 

apiVersion: services.cloud.sap.com/v1 in deployment-services.yaml.

Major change was in createApiRule.js, since kyma dashboard was restricting creation to 
apiVersion: 'gateway.kyma-project.io/v1beta1',
 kind: 'APIRule',
0

Answers (0)