Configuration Examples
The following examples provide some typical configurations for enabling
the mocking
plugin on a
service.
Make the following request:
curl -X POST http://localhost:8001/services/SERVICE_NAME|SERVICE_ID/plugins \
--data "name=mocking" \
--data "config.random_delay=true" \
--data "config.max_delay_time=1" \
--data "config.min_delay_time=0.001" \
--data "config.random_examples=true" \
--data "config.api_specification=openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
"
Replace SERVICE_NAME|SERVICE_ID
with the id
or name
of the service that this plugin configuration will target.
First, create a KongPlugin resource:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: mocking-example
plugin: mocking
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
" | kubectl apply -f -
Next, apply the KongPlugin
resource to an ingress by annotating the service
as follows:
kubectl annotate service SERVICE_NAME konghq.com/plugins=mocking-example
Replace SERVICE_NAME
with the name of the service that this plugin configuration will target.
You can see your available ingresses by running kubectl get service
.
Note: The KongPlugin resource only needs to be defined once and can be applied to any service, consumer, or route in the namespace. If you want the plugin to be available cluster-wide, create the resource as aKongClusterPlugin
instead ofKongPlugin
.
Add this section to your declarative configuration file:
plugins:
- name: mocking
service: SERVICE_NAME|SERVICE_ID
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
Replace SERVICE_NAME|SERVICE_ID
with the id
or name
of the service that this plugin configuration will target.
The following examples provide some typical configurations for enabling
the mocking
plugin on a
route.
Make the following request:
curl -X POST http://localhost:8001/routes/ROUTE_NAME|ROUTE_ID/plugins \
--data "name=mocking" \
--data "config.random_delay=true" \
--data "config.max_delay_time=1" \
--data "config.min_delay_time=0.001" \
--data "config.random_examples=true" \
--data "config.api_specification=openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
"
Replace ROUTE_NAME|ROUTE_ID
with the id
or name
of the route that this plugin configuration will target.
First, create a KongPlugin resource:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: mocking-example
plugin: mocking
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
" | kubectl apply -f -
Next, apply the KongPlugin
resource to an ingress by annotating the ingress
as follows:
kubectl annotate ingress INGRESS_NAME konghq.com/plugins=mocking-example
Replace INGRESS_NAME
with the name of the ingress that this plugin configuration will target.
You can see your available ingresses by running kubectl get ingress
.
Note: The KongPlugin resource only needs to be defined once and can be applied to any service, consumer, or route in the namespace. If you want the plugin to be available cluster-wide, create the resource as aKongClusterPlugin
instead ofKongPlugin
.
Add this section to your declarative configuration file:
plugins:
- name: mocking
route: ROUTE_NAME|ROUTE_ID
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
Replace ROUTE_NAME|ROUTE_ID
with the id
or name
of the route that this plugin configuration
will target.
The following examples provide some typical configurations for enabling
the mocking
plugin on a
consumer.
Make the following request:
curl -X POST http://localhost:8001/consumers/CONSUMER_NAME|CONSUMER_ID/plugins \
--data "name=mocking" \
--data "config.random_delay=true" \
--data "config.max_delay_time=1" \
--data "config.min_delay_time=0.001" \
--data "config.random_examples=true" \
--data "config.api_specification=openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
"
Replace CONSUMER_NAME|CONSUMER_ID
with the id
or name
of the consumer that this plugin configuration will target.
in the same request, to further narrow the scope of the plugin.
First, create a KongPlugin resource:
echo "
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: mocking-example
plugin: mocking
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
" | kubectl apply -f -
Next, apply the KongPlugin
resource to an ingress by annotating the KongConsumer
object as follows:
kubectl annotate KongConsumer CONSUMER_NAME konghq.com/plugins=mocking-example
Replace CONSUMER_NAME
with the name of the consumer that this plugin configuration will target.
You can see your available consumers by running kubectl get KongConsumer
.
To learn more about KongConsumer
objects, see Provisioning Consumers and Credentials
.
Note: The KongPlugin resource only needs to be defined once and can be applied to any service, consumer, or route in the namespace. If you want the plugin to be available cluster-wide, create the resource as aKongClusterPlugin
instead ofKongPlugin
.
Add this section to your declarative configuration file:
plugins:
- name: mocking
consumer: CONSUMER_NAME|CONSUMER_ID
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
Replace CONSUMER_NAME|CONSUMER_ID
with the id
or name
of the consumer that this plugin configuration will target.
A plugin which is not associated to any service, route, or consumer is considered global, and will be run on every request. Read the Plugin Reference and the Plugin Precedence sections for more information.
The following examples provide some typical configurations for enabling
the Mocking
plugin globally.
Make the following request:
curl -X POST http://localhost:8001/plugins/ \
--data "name=mocking" \
--data "config.random_delay=true" \
--data "config.max_delay_time=1" \
--data "config.min_delay_time=0.001" \
--data "config.random_examples=true" \
--data "config.api_specification=openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
"
Create a KongClusterPlugin resource and label it as global:
apiVersion: configuration.konghq.com/v1
kind: KongClusterPlugin
metadata:
name: <global-mocking>
annotations:
kubernetes.io/ingress.class: kong
labels:
global: "true"
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0
plugin: mocking
Add a plugins
entry in the declarative
configuration file:
plugins:
- name: mocking
config:
random_delay: true
max_delay_time: 1
min_delay_time: 0.001
random_examples: true
api_specification: |
openapi: 3.0.1
info:
title: OpenAPI 3.0 API
description: This is a simple API
contact:
email: example@example.com
version: 1.0.0