diff --git a/kong2kic/ca_certificate.go b/kong2kic/ca_certificate.go index 7cd4e92a2..d7404338e 100644 --- a/kong2kic/ca_certificate.go +++ b/kong2kic/ca_certificate.go @@ -32,7 +32,7 @@ func populateKICCACertificate(content *file.Content, file *KICContent) { continue } if caCert.CertDigest != nil { - secret.StringData["ca.digest"] = *caCert.CertDigest + secret.StringData[SecretCADigest] = *caCert.CertDigest } // add konghq.com/tags annotation if cacert.Tags is not nil @@ -43,7 +43,7 @@ func populateKICCACertificate(content *file.Content, file *KICContent) { tags = append(tags, *tag) } } - secret.ObjectMeta.Annotations["konghq.com/tags"] = strings.Join(tags, ",") + secret.ObjectMeta.Annotations[KongHQTags] = strings.Join(tags, ",") } file.Secrets = append(file.Secrets, secret) diff --git a/kong2kic/certificate.go b/kong2kic/certificate.go index 48c4e9daf..0c4d590b4 100644 --- a/kong2kic/certificate.go +++ b/kong2kic/certificate.go @@ -42,7 +42,7 @@ func populateKICCertificates(content *file.Content, file *KICContent) { tags = append(tags, *tag) } } - secret.ObjectMeta.Annotations["konghq.com/tags"] = strings.Join(tags, ",") + secret.ObjectMeta.Annotations[KongHQTags] = strings.Join(tags, ",") } file.Secrets = append(file.Secrets, secret) diff --git a/kong2kic/consumer.go b/kong2kic/consumer.go index 7ae1ee824..93824fe20 100644 --- a/kong2kic/consumer.go +++ b/kong2kic/consumer.go @@ -18,8 +18,8 @@ func populateKICConsumers(content *file.Content, file *KICContent) error { username := *consumer.Username kongConsumer := configurationv1.KongConsumer{ TypeMeta: metav1.TypeMeta{ - APIVersion: KICAPIVersion, - Kind: "KongConsumer", + APIVersion: ConfigurationKongHQv1, + Kind: KongConsumerKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(username), diff --git a/kong2kic/consumer_credentials.go b/kong2kic/consumer_credentials.go index ad4dc507d..f3bb40c2b 100644 --- a/kong2kic/consumer_credentials.go +++ b/kong2kic/consumer_credentials.go @@ -15,9 +15,9 @@ func createCredentialSecret(consumerUsername, credentialType string, dataFields stringData := make(map[string]string) labels := map[string]string{} if targetKICVersionAPI == KICV3GATEWAY || targetKICVersionAPI == KICV3INGRESS { - labels["konghq.com/credential"] = credentialType + labels[KongHQCredential] = credentialType } else { - stringData["kongCredType"] = credentialType + stringData[KongCredType] = credentialType } // Add the data fields to stringData diff --git a/kong2kic/consumer_group.go b/kong2kic/consumer_group.go index ebde749e1..1b547c0b0 100644 --- a/kong2kic/consumer_group.go +++ b/kong2kic/consumer_group.go @@ -23,8 +23,8 @@ func createConsumerGroupKongPlugin( pluginName := *plugin.Name kongPlugin := &configurationv1.KongPlugin{ TypeMeta: metav1.TypeMeta{ - APIVersion: "configuration.konghq.com/v1", - Kind: "KongPlugin", + APIVersion: ConfigurationKongHQv1, + Kind: KongPluginKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(ownerName + "-" + pluginName), @@ -55,8 +55,8 @@ func populateKICConsumerGroups(content *file.Content, kicContent *KICContent) er kongConsumerGroup := configurationv1beta1.KongConsumerGroup{ TypeMeta: metav1.TypeMeta{ - APIVersion: "configuration.konghq.com/v1beta1", - Kind: "KongConsumerGroup", + APIVersion: ConfigurationKongHQv1beta1, + Kind: KongConsumerGroupKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(groupName), diff --git a/kong2kic/global_plugin.go b/kong2kic/global_plugin.go index 266fe7c06..f4c062d5a 100644 --- a/kong2kic/global_plugin.go +++ b/kong2kic/global_plugin.go @@ -22,8 +22,8 @@ func populateKICKongClusterPlugins(content *file.Content, file *KICContent) erro continue } var kongClusterPlugin configurationv1.KongClusterPlugin - kongClusterPlugin.APIVersion = KICAPIVersion - kongClusterPlugin.Kind = "KongClusterPlugin" + kongClusterPlugin.APIVersion = ConfigurationKongHQv1 + kongClusterPlugin.Kind = KongClusterPluginKind kongClusterPlugin.ObjectMeta.Annotations = map[string]string{IngressClass: ClassName} if plugin.Name != nil { kongClusterPlugin.PluginName = *plugin.Name @@ -65,7 +65,7 @@ func populateKICKongClusterPlugins(content *file.Content, file *KICContent) erro tags = append(tags, *tag) } } - kongClusterPlugin.ObjectMeta.Annotations["konghq.com/tags"] = strings.Join(tags, ",") + kongClusterPlugin.ObjectMeta.Annotations[KongHQTags] = strings.Join(tags, ",") } // transform the plugin config from map[string]interface{} to apiextensionsv1.JSON diff --git a/kong2kic/kong2kic.go b/kong2kic/kong2kic.go index 981826a2f..ed7ecad60 100644 --- a/kong2kic/kong2kic.go +++ b/kong2kic/kong2kic.go @@ -9,22 +9,6 @@ import ( "github.com/kong/go-database-reconciler/pkg/file" ) -const ( - KICV3GATEWAY = "KICV3_GATEWAY" - KICV3INGRESS = "KICV3_INGRESS" - KICV2GATEWAY = "KICV2_GATEWAY" - KICV2INGRESS = "KICV2_INGRESS" - KICAPIVersion = "configuration.konghq.com/v1" - KICAPIVersionV1Beta1 = "configuration.konghq.com/v1beta1" - GatewayAPIVersionV1Beta1 = "gateway.networking.k8s.io/v1beta1" - GatewayAPIVersionV1 = "gateway.networking.k8s.io/v1" - KongPluginKind = "KongPlugin" - SecretKind = "Secret" - IngressKind = "KongIngress" - UpstreamPolicyKind = "KongUpstreamPolicy" - IngressClass = "kubernetes.io/ingress.class" -) - // ClassName is set by the CLI flag --class-name var ClassName = "kong" diff --git a/kong2kic/route.go b/kong2kic/route.go index abc307abf..0afb36d13 100644 --- a/kong2kic/route.go +++ b/kong2kic/route.go @@ -26,27 +26,27 @@ func addAnnotationsFromRoute(route *file.FRoute, annotations map[string]string) protocols = append(protocols, *protocol) } } - annotations["konghq.com/protocols"] = strings.Join(protocols, ",") + annotations[KongHQProtocols] = strings.Join(protocols, ",") } if route.StripPath != nil { - annotations["konghq.com/strip-path"] = strconv.FormatBool(*route.StripPath) + annotations[KongHQStripPath] = strconv.FormatBool(*route.StripPath) } if route.PreserveHost != nil { - annotations["konghq.com/preserve-host"] = strconv.FormatBool(*route.PreserveHost) + annotations[KongHQPreserveHost] = strconv.FormatBool(*route.PreserveHost) } if route.RegexPriority != nil { - annotations["konghq.com/regex-priority"] = strconv.Itoa(*route.RegexPriority) + annotations[KongHQRegexPriority] = strconv.Itoa(*route.RegexPriority) } if route.HTTPSRedirectStatusCode != nil { - annotations["konghq.com/https-redirect-status-code"] = strconv.Itoa(*route.HTTPSRedirectStatusCode) + annotations[KongHQHTTPSRedirectStatusCode] = strconv.Itoa(*route.HTTPSRedirectStatusCode) } if route.Headers != nil { for key, value := range route.Headers { - annotations["konghq.com/headers."+key] = strings.Join(value, ",") + annotations[KongHQHeaders+"."+key] = strings.Join(value, ",") } } if route.PathHandling != nil { - annotations["konghq.com/path-handling"] = *route.PathHandling + annotations[KongHQPathHandling] = *route.PathHandling } if route.SNIs != nil { var snis []string @@ -55,13 +55,13 @@ func addAnnotationsFromRoute(route *file.FRoute, annotations map[string]string) snis = append(snis, *sni) } } - annotations["konghq.com/snis"] = strings.Join(snis, ",") + annotations[KongHQSNIs] = strings.Join(snis, ",") } if route.RequestBuffering != nil { - annotations["konghq.com/request-buffering"] = strconv.FormatBool(*route.RequestBuffering) + annotations[KongHQRequestBuffering] = strconv.FormatBool(*route.RequestBuffering) } if route.ResponseBuffering != nil { - annotations["konghq.com/response-buffering"] = strconv.FormatBool(*route.ResponseBuffering) + annotations[KongHQResponseBuffering] = strconv.FormatBool(*route.ResponseBuffering) } if route.Methods != nil { var methods []string @@ -70,7 +70,8 @@ func addAnnotationsFromRoute(route *file.FRoute, annotations map[string]string) methods = append(methods, *method) } } - annotations["konghq.com/methods"] = strings.Join(methods, ",") + + annotations[KongHQMethods] = strings.Join(methods, ",") } if route.Tags != nil { var tags []string @@ -79,7 +80,7 @@ func addAnnotationsFromRoute(route *file.FRoute, annotations map[string]string) tags = append(tags, *tag) } } - annotations["konghq.com/tags"] = strings.Join(tags, ",") + annotations[KongHQTags] = strings.Join(tags, ",") } } @@ -106,7 +107,7 @@ func createIngressPaths( if *servicePort > 65535 || *servicePort < 0 { log.Fatalf("Port %d is not within the valid range. Please provide a port between 0 and 65535.\n", *servicePort) } - backend.Service.Port.Number = int32(*servicePort) + backend.Service.Port.Number = int32(*servicePort) //nolint:gosec } paths = append(paths, k8snetv1.HTTPIngressPath{ Path: sCopy, @@ -134,8 +135,8 @@ func populateKICIngressesWithAnnotations(content *file.Content, kicContent *KICC k8sIngress := k8snetv1.Ingress{ TypeMeta: metav1.TypeMeta{ - APIVersion: "networking.k8s.io/v1", - Kind: "Ingress", + APIVersion: IngressAPIVersion, + Kind: IngressKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(serviceName + "-" + routeName), @@ -197,7 +198,7 @@ func addPluginsToRoute( pluginName := *plugin.Name kongPlugin := configurationv1.KongPlugin{ TypeMeta: metav1.TypeMeta{ - APIVersion: KICAPIVersion, + APIVersion: ConfigurationKongHQv1, Kind: KongPluginKind, }, ObjectMeta: metav1.ObjectMeta{ @@ -236,7 +237,7 @@ func addPluginsToRoute( tags = append(tags, *tag) } } - kongPlugin.ObjectMeta.Annotations["konghq.com/tags"] = strings.Join(tags, ",") + kongPlugin.ObjectMeta.Annotations[KongHQTags] = strings.Join(tags, ",") } configJSON, err := json.Marshal(plugin.Config) @@ -248,11 +249,11 @@ func addPluginsToRoute( } // Add plugin reference to ingress annotations - pluginsAnnotation := ingress.ObjectMeta.Annotations["konghq.com/plugins"] + pluginsAnnotation := ingress.ObjectMeta.Annotations[KongHQPlugins] if pluginsAnnotation == "" { - ingress.ObjectMeta.Annotations["konghq.com/plugins"] = kongPlugin.ObjectMeta.Name + ingress.ObjectMeta.Annotations[KongHQPlugins] = kongPlugin.ObjectMeta.Name } else { - ingress.ObjectMeta.Annotations["konghq.com/plugins"] = pluginsAnnotation + "," + kongPlugin.ObjectMeta.Name + ingress.ObjectMeta.Annotations[KongHQPlugins] = pluginsAnnotation + "," + kongPlugin.ObjectMeta.Name } kicContent.KongPlugins = append(kicContent.KongPlugins, kongPlugin) @@ -312,7 +313,8 @@ func populateKICIngressesWithGatewayAPI(content *file.Content, kicContent *KICCo func createHTTPRoute(service file.FService, route *file.FRoute) (k8sgwapiv1.HTTPRoute, error) { var httpRoute k8sgwapiv1.HTTPRoute - httpRoute.Kind = "HTTPRoute" + + httpRoute.Kind = HTTPRouteKind if targetKICVersionAPI == KICV3GATEWAY { httpRoute.APIVersion = GatewayAPIVersionV1 } else { @@ -338,20 +340,20 @@ func createHTTPRoute(service file.FService, route *file.FRoute) (k8sgwapiv1.HTTP func addAnnotations(httpRoute *k8sgwapiv1.HTTPRoute, route *file.FRoute) { if route.PreserveHost != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/preserve-host"] = strconv.FormatBool(*route.PreserveHost) + httpRoute.ObjectMeta.Annotations[KongHQPreserveHost] = strconv.FormatBool(*route.PreserveHost) } if route.StripPath != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/strip-path"] = strconv.FormatBool(*route.StripPath) + httpRoute.ObjectMeta.Annotations[KongHQStripPath] = strconv.FormatBool(*route.StripPath) } if route.HTTPSRedirectStatusCode != nil { value := strconv.Itoa(*route.HTTPSRedirectStatusCode) - httpRoute.ObjectMeta.Annotations["konghq.com/https-redirect-status-code"] = value + httpRoute.ObjectMeta.Annotations[KongHQHTTPSRedirectStatusCode] = value } if route.RegexPriority != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/regex-priority"] = strconv.Itoa(*route.RegexPriority) + httpRoute.ObjectMeta.Annotations[KongHQRegexPriority] = strconv.Itoa(*route.RegexPriority) } if route.PathHandling != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/path-handling"] = *route.PathHandling + httpRoute.ObjectMeta.Annotations[KongHQPathHandling] = *route.PathHandling } if route.Tags != nil { var tags []string @@ -360,24 +362,25 @@ func addAnnotations(httpRoute *k8sgwapiv1.HTTPRoute, route *file.FRoute) { tags = append(tags, *tag) } } - httpRoute.ObjectMeta.Annotations["konghq.com/tags"] = strings.Join(tags, ",") + httpRoute.ObjectMeta.Annotations[KongHQTags] = strings.Join(tags, ",") } if route.SNIs != nil { var snis string + var sb strings.Builder for _, sni := range route.SNIs { - if snis == "" { - snis = *sni - } else { - snis = snis + "," + *sni + if sb.Len() > 0 { + sb.WriteString(",") } + sb.WriteString(*sni) } - httpRoute.ObjectMeta.Annotations["konghq.com/snis"] = snis + snis = sb.String() + httpRoute.ObjectMeta.Annotations[KongHQSNIs] = snis } if route.RequestBuffering != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/request-buffering"] = strconv.FormatBool(*route.RequestBuffering) + httpRoute.ObjectMeta.Annotations[KongHQRequestBuffering] = strconv.FormatBool(*route.RequestBuffering) } if route.ResponseBuffering != nil { - httpRoute.ObjectMeta.Annotations["konghq.com/response-buffering"] = strconv.FormatBool(*route.ResponseBuffering) + httpRoute.ObjectMeta.Annotations[KongHQResponseBuffering] = strconv.FormatBool(*route.ResponseBuffering) } } @@ -395,7 +398,11 @@ func addParentRefs(httpRoute *k8sgwapiv1.HTTPRoute) { }) } +// Adds backend references to the given HTTPRoute based on the provided service and route. +// It constructs BackendRef, HTTPHeaderMatch, and HTTPPathMatch objects and appends them to the HTTPRoute's rules. +// The function handles different matching types for headers and paths, and supports multiple methods for each route. func addBackendRefs(httpRoute *k8sgwapiv1.HTTPRoute, service file.FService, route *file.FRoute) { + // make this HTTPRoute point to the service backendRef := k8sgwapiv1.BackendRef{ BackendObjectReference: k8sgwapiv1.BackendObjectReference{ Name: k8sgwapiv1.ObjectName(*service.Name), @@ -406,18 +413,21 @@ func addBackendRefs(httpRoute *k8sgwapiv1.HTTPRoute, service file.FService, rout backendRef.Port = &portNumber } + // add header match conditions to the HTTPRoute var httpHeaderMatch []k8sgwapiv1.HTTPHeaderMatch headerMatchExact := k8sgwapiv1.HeaderMatchExact headerMatchRegex := k8sgwapiv1.HeaderMatchRegularExpression if route.Headers != nil { for key, values := range route.Headers { if len(values) == 1 && strings.HasPrefix(values[0], "~*") { + // it's a regular expression header match condition httpHeaderMatch = append(httpHeaderMatch, k8sgwapiv1.HTTPHeaderMatch{ Name: k8sgwapiv1.HTTPHeaderName(key), Value: values[0][2:], Type: &headerMatchRegex, }) } else { + // it's an exact header match condition var value string if len(values) > 1 { value = strings.Join(values, ",") @@ -435,21 +445,25 @@ func addBackendRefs(httpRoute *k8sgwapiv1.HTTPRoute, service file.FService, rout } if route.Paths != nil { + // evaluate each path and method combination and add them to the HTTPRoute for _, path := range route.Paths { var httpPathMatch k8sgwapiv1.HTTPPathMatch pathMatchRegex := k8sgwapiv1.PathMatchRegularExpression pathMatchPrefix := k8sgwapiv1.PathMatchPathPrefix if strings.HasPrefix(*path, "~") { + // add regex path match condition httpPathMatch.Type = &pathMatchRegex regexPath := (*path)[1:] httpPathMatch.Value = ®exPath } else { + // add regular path match condition httpPathMatch.Type = &pathMatchPrefix httpPathMatch.Value = path } if route.Methods == nil { + // this route has specific http methods to match httpRoute.Spec.Rules = append(httpRoute.Spec.Rules, k8sgwapiv1.HTTPRouteRule{ Matches: []k8sgwapiv1.HTTPRouteMatch{ { @@ -507,8 +521,8 @@ func addPluginsToGatewayAPIRoute( service file.FService, route *file.FRoute, httpRoute k8sgwapiv1.HTTPRoute, kicContent *KICContent, ) error { for _, plugin := range route.Plugins { - var kongPlugin kicv1.KongPlugin - kongPlugin.APIVersion = KICAPIVersion + var kongPlugin configurationv1.KongPlugin + kongPlugin.APIVersion = ConfigurationKongHQv1 kongPlugin.Kind = KongPluginKind if plugin.Name != nil && route.Name != nil && service.Name != nil { kongPlugin.ObjectMeta.Name = calculateSlug(*service.Name + "-" + *route.Name + "-" + *plugin.Name) @@ -534,7 +548,7 @@ func addPluginsToGatewayAPIRoute( ExtensionRef: &k8sgwapiv1.LocalObjectReference{ Name: k8sgwapiv1.ObjectName(kongPlugin.ObjectMeta.Name), Kind: KongPluginKind, - Group: "configuration.konghq.com", + Group: ConfigurationKongHQ, }, Type: k8sgwapiv1.HTTPRouteFilterExtensionRef, }) diff --git a/kong2kic/service.go b/kong2kic/service.go index 756b03bb3..d096982e7 100644 --- a/kong2kic/service.go +++ b/kong2kic/service.go @@ -48,8 +48,8 @@ func populateKICServicesWithAnnotations(content *file.Content, kicContent *KICCo func createK8sService(service *file.FService, upstreams []file.FUpstream) *k8scorev1.Service { k8sService := &k8scorev1.Service{ TypeMeta: metav1.TypeMeta{ - APIVersion: "v1", - Kind: "Service", + APIVersion: ServiceAPIVersionv1, + Kind: ServiceKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(*service.Name), @@ -109,25 +109,25 @@ func isUpstreamReferenced(host *string, upstreams []file.FUpstream) bool { // Helper function to add annotations from a service to a Kubernetes service func addAnnotationsFromService(service *file.FService, annotations map[string]string) { if service.Protocol != nil { - annotations["konghq.com/protocol"] = *service.Protocol + annotations[KongHQProtocol] = *service.Protocol } if service.Path != nil { - annotations["konghq.com/path"] = *service.Path + annotations[KongHQPath] = *service.Path } if service.ClientCertificate != nil && service.ClientCertificate.ID != nil { - annotations["konghq.com/client-cert"] = *service.ClientCertificate.ID + annotations[KongHQClientCert] = *service.ClientCertificate.ID } if service.ReadTimeout != nil { - annotations["konghq.com/read-timeout"] = strconv.Itoa(*service.ReadTimeout) + annotations[KongHQReadTimeout] = strconv.Itoa(*service.ReadTimeout) } if service.WriteTimeout != nil { - annotations["konghq.com/write-timeout"] = strconv.Itoa(*service.WriteTimeout) + annotations[KongHQWriteTimeout] = strconv.Itoa(*service.WriteTimeout) } if service.ConnectTimeout != nil { - annotations["konghq.com/connect-timeout"] = strconv.Itoa(*service.ConnectTimeout) + annotations[KongHQConnectTimeout] = strconv.Itoa(*service.ConnectTimeout) } if service.Retries != nil { - annotations["konghq.com/retries"] = strconv.Itoa(*service.Retries) + annotations[KongHQRetries] = strconv.Itoa(*service.Retries) } addTagsToAnnotations(service.Tags, annotations) } diff --git a/kong2kic/types.go b/kong2kic/types.go index 4ed328172..b9541143e 100644 --- a/kong2kic/types.go +++ b/kong2kic/types.go @@ -162,6 +162,11 @@ func SerializeObjectDroppingFields(obj interface{}, format string) ([]byte, erro delete(genericObj, "status") delete(genericObj["metadata"].(map[string]interface{}), "creationTimestamp") + // if genericObject has a Kind field with value "KongConsumer" then delete the field "spec" + if genericObj["kind"] == "KongConsumer" || genericObj["kind"] == "KongConsumerGroup" { + delete(genericObj, "spec") + } + if format == file.JSON { result, err = json.MarshalIndent(genericObj, "", " ") if err != nil { diff --git a/kong2kic/upstream.go b/kong2kic/upstream.go index 0611658ef..b19c79f91 100644 --- a/kong2kic/upstream.go +++ b/kong2kic/upstream.go @@ -114,7 +114,7 @@ func populateKICUpstreamPolicy( // Create KongUpstreamPolicy kongUpstreamPolicy := configurationv1beta1.KongUpstreamPolicy{ TypeMeta: metav1.TypeMeta{ - APIVersion: KICAPIVersionV1Beta1, + APIVersion: ConfigurationKongHQv1beta1, Kind: UpstreamPolicyKind, }, ObjectMeta: metav1.ObjectMeta{ @@ -127,7 +127,7 @@ func populateKICUpstreamPolicy( if k8sService.ObjectMeta.Annotations == nil { k8sService.ObjectMeta.Annotations = make(map[string]string) } - k8sService.ObjectMeta.Annotations["konghq.com/upstream-policy"] = kongUpstreamPolicy.ObjectMeta.Name + k8sService.ObjectMeta.Annotations[KongHQUpstreamPolicy] = kongUpstreamPolicy.ObjectMeta.Name // Populate the Upstream Policy Spec populateKongUpstreamPolicySpec(upstream, &kongUpstreamPolicy) @@ -204,8 +204,8 @@ func populateKICUpstream( // Create KongIngress kongIngress := configurationv1.KongIngress{ TypeMeta: metav1.TypeMeta{ - APIVersion: KICAPIVersion, - Kind: IngressKind, + APIVersion: ConfigurationKongHQv1, + Kind: KongIngressKind, }, ObjectMeta: metav1.ObjectMeta{ Name: calculateSlug(*service.Name + "-upstream"), @@ -233,7 +233,7 @@ func populateKICUpstream( if k8sService.ObjectMeta.Annotations == nil { k8sService.ObjectMeta.Annotations = make(map[string]string) } - k8sService.ObjectMeta.Annotations["konghq.com/override"] = kongIngress.ObjectMeta.Name + k8sService.ObjectMeta.Annotations[KongHQOverride] = kongIngress.ObjectMeta.Name // Add tags to annotations addTagsToAnnotations(upstream.Tags, kongIngress.ObjectMeta.Annotations) diff --git a/kong2kic/utils.go b/kong2kic/utils.go index 2e22f77b4..4c0a3f539 100644 --- a/kong2kic/utils.go +++ b/kong2kic/utils.go @@ -12,6 +12,59 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +const ( + KongHQClientCert = "konghq.com/client-cert" + KongHQConnectTimeout = "konghq.com/connect-timeout" + KongHQCredential = "konghq.com/credential" //nolint: gosec + KongHQHeaders = "konghq.com/headers" + KongHQHTTPSRedirectStatusCode = "konghq.com/https-redirect-status-code" + KongHQMethods = "konghq.com/methods" + KongHQOverride = "konghq.com/override" + KongHQPath = "konghq.com/path" + KongHQPathHandling = "konghq.com/path-handling" + KongHQPlugins = "konghq.com/plugins" + KongHQPreserveHost = "konghq.com/preserve-host" + KongHQProtocol = "konghq.com/protocol" + KongHQProtocols = "konghq.com/protocols" + KongHQReadTimeout = "konghq.com/read-timeout" + KongHQRegexPriority = "konghq.com/regex-priority" + KongHQRequestBuffering = "konghq.com/request-buffering" + KongHQResponseBuffering = "konghq.com/response-buffering" + KongHQRetries = "konghq.com/retries" + KongHQSNIs = "konghq.com/snis" + KongHQStripPath = "konghq.com/strip-path" + KongHQTags = "konghq.com/tags" + KongHQUpstreamPolicy = "konghq.com/upstream-policy" + KongHQWriteTimeout = "konghq.com/write-timeout" +) + +const ( + ConfigurationKongHQ = "configuration.konghq.com" + ConfigurationKongHQv1 = "configuration.konghq.com/v1" + ConfigurationKongHQv1beta1 = "configuration.konghq.com/v1beta1" + GatewayAPIVersionV1 = "gateway.networking.k8s.io/v1" + GatewayAPIVersionV1Beta1 = "gateway.networking.k8s.io/v1beta1" + HTTPRouteKind = "HTTPRoute" + IngressAPIVersion = "networking.k8s.io/v1" + IngressClass = "kubernetes.io/ingress.class" + IngressKind = "Ingress" + KICV2GATEWAY = "KICV2_GATEWAY" + KICV2INGRESS = "KICV2_INGRESS" + KICV3GATEWAY = "KICV3_GATEWAY" + KICV3INGRESS = "KICV3_INGRESS" + KongClusterPluginKind = "KongClusterPlugin" + KongConsumerKind = "KongConsumer" + KongConsumerGroupKind = "KongConsumerGroup" + KongCredType = "kongCredType" + KongIngressKind = "KongIngress" + KongPluginKind = "KongPlugin" + SecretKind = "Secret" + SecretCADigest = "ca.digest" + ServiceAPIVersionv1 = "v1" + ServiceKind = "Service" + UpstreamPolicyKind = "KongUpstreamPolicy" +) + // Helper function to add tags to annotations func addTagsToAnnotations(tags []*string, annotations map[string]string) { if tags != nil { @@ -45,7 +98,7 @@ func createKongPlugin(plugin *file.FPlugin, ownerName string) (*configurationv1. pluginName := *plugin.Name kongPlugin := &configurationv1.KongPlugin{ TypeMeta: metav1.TypeMeta{ - APIVersion: KICAPIVersion, + APIVersion: ConfigurationKongHQv1, Kind: KongPluginKind, }, ObjectMeta: metav1.ObjectMeta{