mirror of
https://github.com/Kong/insomnia
synced 2024-11-07 22:30:15 +00:00
Chore: Update extensions/v1beta1 to networking.k8s.io/v1 on OpenAPI-2-Kong (#4667)
* Update extensions/v1beta1 to networking.k8s.io/v1 This is follow the deprecation guide of past k8s version 1.22 https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122 * Fix other deprecated k8s ingress interfaces. * Fix typo in url.
This commit is contained in:
parent
dafed833e6
commit
cc63a1ccec
@ -258,7 +258,7 @@ paths:
|
|||||||
#### Generated config
|
#### Generated config
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-1
|
name: insomnia-api-1
|
||||||
@ -271,10 +271,13 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v1/.*
|
- path: /v1/.*
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-0
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-0
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-2
|
name: insomnia-api-2
|
||||||
@ -287,8 +290,11 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v2/.*
|
- path: /v2/.*
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-1
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-1
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
@ -300,7 +306,7 @@ The `Ingress` document `metadata.name` is derived from sections in the source sp
|
|||||||
Each of the following specifications generate an `Ingress` document with the following name:
|
Each of the following specifications generate an `Ingress` document with the following name:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api
|
name: insomnia-api
|
||||||
@ -445,7 +451,7 @@ config:
|
|||||||
key_in_body: false
|
key_in_body: false
|
||||||
hide_credentials: true
|
hide_credentials: true
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-0
|
name: insomnia-api-0
|
||||||
@ -460,10 +466,13 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v1/path
|
- path: /v1/path
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-0
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-0
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-1
|
name: insomnia-api-1
|
||||||
@ -479,10 +488,13 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v1/another
|
- path: /v1/another
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-0
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-0
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-2
|
name: insomnia-api-2
|
||||||
@ -497,10 +509,13 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v2/path
|
- path: /v2/path
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-1
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-1
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
---
|
---
|
||||||
apiVersion: extensions/v1beta1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: insomnia-api-3
|
name: insomnia-api-3
|
||||||
@ -516,8 +531,11 @@ spec:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v2/another
|
- path: /v2/another
|
||||||
backend:
|
backend:
|
||||||
serviceName: insomnia-api-service-1
|
service:
|
||||||
servicePort: 80
|
name: insomnia-api-service-1
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
pathType: 'ImplementationSpecific'
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -94,7 +94,7 @@ documents:
|
|||||||
issuer: <well-known-config>
|
issuer: <well-known-config>
|
||||||
scopes_required:
|
scopes_required:
|
||||||
- fred_read
|
- fred_read
|
||||||
- apiVersion: extensions/v1beta1
|
- apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: my-cloud-api-0
|
name: my-cloud-api-0
|
||||||
@ -115,10 +115,13 @@ documents:
|
|||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- backend:
|
- backend:
|
||||||
serviceName: my-cloud-api-service-0
|
service:
|
||||||
servicePort: 443
|
name: my-cloud-api-service-0
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
path: /v1/offline-portal
|
path: /v1/offline-portal
|
||||||
- apiVersion: extensions/v1beta1
|
pathType: ImplementationSpecific
|
||||||
|
- apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: my-cloud-api-1
|
name: my-cloud-api-1
|
||||||
@ -140,6 +143,9 @@ documents:
|
|||||||
paths:
|
paths:
|
||||||
- path: /v1/user-info
|
- path: /v1/user-info
|
||||||
backend:
|
backend:
|
||||||
serviceName: my-cloud-api-service-0
|
service:
|
||||||
servicePort: 443
|
name: my-cloud-api-service-0
|
||||||
|
port:
|
||||||
|
number: 443
|
||||||
|
pathType: ImplementationSpecific
|
||||||
warnings: []
|
warnings: []
|
||||||
|
@ -327,9 +327,14 @@ describe('index', () => {
|
|||||||
paths: [
|
paths: [
|
||||||
{
|
{
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-0',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-0',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -351,9 +356,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/v1/.*',
|
path: '/v1/.*',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-0',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-0',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -376,9 +386,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/v1/.*/.*/path',
|
path: '/v1/.*/.*/path',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-1',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-1',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -401,9 +416,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/v1/.*',
|
path: '/v1/.*',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-1',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-1',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -422,9 +442,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/v1/.*',
|
path: '/v1/.*',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-1',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-1',
|
||||||
|
port : {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -449,9 +474,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/v1/.*',
|
path: '/v1/.*',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-1',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-1',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -476,9 +506,14 @@ describe('index', () => {
|
|||||||
{
|
{
|
||||||
path: '/.*/v1/.*',
|
path: '/.*/v1/.*',
|
||||||
backend: {
|
backend: {
|
||||||
serviceName: 'my-ingress-service-1',
|
service: {
|
||||||
servicePort: 80,
|
name: 'my-ingress-service-1',
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -51,7 +51,7 @@ export const generateKongForKubernetesConfigFromSpec = (api: OpenApi3Spec) => {
|
|||||||
const rule = generateIngressRule(serverIndex, serverPlugin.server, specName, [pathPlugin.path]);
|
const rule = generateIngressRule(serverIndex, serverPlugin.server, specName, [pathPlugin.path]);
|
||||||
|
|
||||||
const doc: K8sIngress = {
|
const doc: K8sIngress = {
|
||||||
apiVersion: 'extensions/v1beta1',
|
apiVersion: 'networking.k8s.io/v1',
|
||||||
kind: 'Ingress',
|
kind: 'Ingress',
|
||||||
metadata,
|
metadata,
|
||||||
spec: {
|
spec: {
|
||||||
@ -159,8 +159,12 @@ export const generateIngressRule = (
|
|||||||
const { hostname, pathname } = parseUrl(server.url);
|
const { hostname, pathname } = parseUrl(server.url);
|
||||||
const pathsToUse = paths?.length ? paths : [''];
|
const pathsToUse = paths?.length ? paths : [''];
|
||||||
const backend: K8sIngressBackend = {
|
const backend: K8sIngressBackend = {
|
||||||
serviceName: generateServiceName(server, specName, index),
|
service:{
|
||||||
servicePort: generateServicePort(server),
|
name: generateServiceName(server, specName, index),
|
||||||
|
port: {
|
||||||
|
number: generateServicePort(server),
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const k8sPaths = pathsToUse.map((pathToUse): K8sHTTPIngressPath => {
|
const k8sPaths = pathsToUse.map((pathToUse): K8sHTTPIngressPath => {
|
||||||
@ -168,6 +172,7 @@ export const generateIngressRule = (
|
|||||||
return {
|
return {
|
||||||
backend,
|
backend,
|
||||||
...(path ? { path } : {}),
|
...(path ? { path } : {}),
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -211,7 +216,7 @@ export const generateTLS = (server?: OA3Server) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Array.isArray(tls)) {
|
if (!Array.isArray(tls)) {
|
||||||
throw new Error('x-kubernetes-tls must be an array of IngressTLS, matching the kubernetes IngressSpec resource. see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressspec-v1beta1-extensions');
|
throw new Error('x-kubernetes-tls must be an array of IngressTLS, matching the kubernetes IngressSpec resource. see https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressspec-v1-networking-k8s-io');
|
||||||
}
|
}
|
||||||
|
|
||||||
return tls;
|
return tls;
|
||||||
|
@ -53,10 +53,10 @@ export const ingressDoc = (
|
|||||||
index: number,
|
index: number,
|
||||||
plugins: string[],
|
plugins: string[],
|
||||||
host: string,
|
host: string,
|
||||||
serviceName: string,
|
name: string,
|
||||||
path?: string | null,
|
path?: string | null,
|
||||||
): K8sIngress => ({
|
): K8sIngress => ({
|
||||||
apiVersion: 'extensions/v1beta1',
|
apiVersion: 'networking.k8s.io/v1',
|
||||||
kind: 'Ingress',
|
kind: 'Ingress',
|
||||||
metadata: {
|
metadata: {
|
||||||
annotations: {
|
annotations: {
|
||||||
@ -73,10 +73,15 @@ export const ingressDoc = (
|
|||||||
paths: [
|
paths: [
|
||||||
{
|
{
|
||||||
backend: {
|
backend: {
|
||||||
serviceName,
|
service: {
|
||||||
servicePort: 80,
|
name,
|
||||||
|
port: {
|
||||||
|
number: 80,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
...(path ? { path } : {}),
|
...(path ? { path } : {}),
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@ -90,10 +95,10 @@ export const ingressDocWithOverride = (
|
|||||||
plugins: string[],
|
plugins: string[],
|
||||||
override: string,
|
override: string,
|
||||||
host: string,
|
host: string,
|
||||||
serviceName: string,
|
name: string,
|
||||||
path?: string | null,
|
path?: string | null,
|
||||||
): K8sIngress => ({
|
): K8sIngress => ({
|
||||||
apiVersion: 'extensions/v1beta1',
|
apiVersion: 'networking.k8s.io/v1',
|
||||||
kind: 'Ingress',
|
kind: 'Ingress',
|
||||||
metadata: {
|
metadata: {
|
||||||
annotations: {
|
annotations: {
|
||||||
@ -111,10 +116,13 @@ export const ingressDocWithOverride = (
|
|||||||
paths: [
|
paths: [
|
||||||
{
|
{
|
||||||
backend: {
|
backend: {
|
||||||
serviceName,
|
service: {
|
||||||
servicePort: 80,
|
name,
|
||||||
|
port: { number: 80 },
|
||||||
|
},
|
||||||
},
|
},
|
||||||
...(path ? { path } : {}),
|
...(path ? { path } : {}),
|
||||||
|
pathType: 'ImplementationSpecific',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
@ -13,7 +13,7 @@ export interface K8sOverrideAnnotation {
|
|||||||
'konghq.com/override'?: string;
|
'konghq.com/override'?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#objectmeta-v1-meta then look at `annotations`. */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#objectmeta-v1-meta then look at `annotations`. */
|
||||||
export type K8sAnnotations =
|
export type K8sAnnotations =
|
||||||
& K8sIngressClassAnnotation
|
& K8sIngressClassAnnotation
|
||||||
& K8sOverrideAnnotation
|
& K8sOverrideAnnotation
|
||||||
@ -21,45 +21,57 @@ export type K8sAnnotations =
|
|||||||
& Record<string, string>
|
& Record<string, string>
|
||||||
;
|
;
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#objectmeta-v1-meta */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#objectmeta-v1-meta */
|
||||||
export interface K8sMetadata {
|
export interface K8sMetadata {
|
||||||
/** The unique-per-instance name used by kubernetes to track individual Kubernetes resources */
|
/** The unique-per-instance name used by kubernetes to track individual Kubernetes resources */
|
||||||
name: string;
|
name: string;
|
||||||
annotations?: K8sAnnotations;
|
annotations?: K8sAnnotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressbackend-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressbackend-v1-networking-k8s-io */
|
||||||
export interface K8sIngressBackend {
|
export interface K8sIngressBackend {
|
||||||
serviceName: string;
|
service: K8sIngressServiceBackend;
|
||||||
servicePort: number;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#httpingresspath-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressservicebackend-v1-networking-k8s-io */
|
||||||
|
export interface K8sIngressServiceBackend {
|
||||||
|
name: string;
|
||||||
|
port: K8sServiceBackendPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#servicebackendport-v1-networking-k8s-io */
|
||||||
|
export interface K8sServiceBackendPort {
|
||||||
|
name?: string;
|
||||||
|
number: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#httpingresspath-v1-networking-k8s-io */
|
||||||
export interface K8sHTTPIngressPath {
|
export interface K8sHTTPIngressPath {
|
||||||
path?: string;
|
path?: string;
|
||||||
backend: K8sIngressBackend;
|
backend: K8sIngressBackend;
|
||||||
|
pathType: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#httpingressrulevalue-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#httpingressrulevalue-v1-networking-k8s-io */
|
||||||
export interface K8sHTTPIngressRuleValue {
|
export interface K8sHTTPIngressRuleValue {
|
||||||
paths: K8sHTTPIngressPath[];
|
paths: K8sHTTPIngressPath[];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressrule-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressrule-v1-networking-k8s-io */
|
||||||
export interface K8sIngressRule {
|
export interface K8sIngressRule {
|
||||||
host?: string;
|
host?: string;
|
||||||
http?: K8sHTTPIngressRuleValue;
|
http?: K8sHTTPIngressRuleValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingresstls-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingresstls-v1-networking-k8s-io */
|
||||||
export interface K8sIngressTLS {
|
export interface K8sIngressTLS {
|
||||||
hosts?: string[];
|
hosts?: string[];
|
||||||
secretName: string;
|
secretName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingressspec-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressspec-v1-networking-k8s-io */
|
||||||
export interface K8sIngressSpec {
|
export interface K8sIngressSpec {
|
||||||
backend?: K8sIngressBackend;
|
defaultBackend?: K8sIngressBackend;
|
||||||
rules: K8sIngressRule[];
|
rules: K8sIngressRule[];
|
||||||
tls?: K8sIngressTLS[];
|
tls?: K8sIngressTLS[];
|
||||||
}
|
}
|
||||||
@ -79,9 +91,9 @@ export interface K8sKongIngress extends KubernetesResource {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#ingress-v1beta1-extensions */
|
/** see: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingress-v1-networking-k8s-io */
|
||||||
export interface K8sIngress extends KubernetesResource {
|
export interface K8sIngress extends KubernetesResource {
|
||||||
apiVersion: 'extensions/v1beta1';
|
apiVersion: 'networking.k8s.io/v1';
|
||||||
kind: 'Ingress';
|
kind: 'Ingress';
|
||||||
spec: K8sIngressSpec;
|
spec: K8sIngressSpec;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user