blob: 32034c05f60486b54198ae5359f2033e40756620 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package features
import (
"github.com/apache/dubbo-kubernetes/pkg/config/constants"
"github.com/apache/dubbo-kubernetes/pkg/env"
)
var (
ValidationWebhookConfigName = env.Register("VALIDATION_WEBHOOK_CONFIG_NAME", "dubbo-dubbo-system",
"If not empty, the controller will automatically patch validatingwebhookconfiguration when the CA certificate changes. "+
"Only works in kubernetes environment.").Get()
SharedMeshConfig = env.Register("SHARED_MESH_CONFIG", "",
"Additional config map to load for shared MeshConfig settings. The standard mesh config will take precedence.").Get()
MultiRootMesh = env.Register("DUBBO_MULTIROOT_MESH", false,
"If enabled, mesh will support certificates signed by more than one trustAnchor for DUBBO_MUTUAL mTLS").Get()
InformerWatchNamespace = env.Register("DUBBO_WATCH_NAMESPACE", "",
"If set, limit Kubernetes watches to a single namespace. "+
"Warning: only a single namespace can be set.").Get()
ClusterName = env.Register("CLUSTER_ID", constants.DefaultClusterName,
"Defines the cluster and service registry that this Dubbod instance belongs to").Get()
EnableVtprotobuf = env.Register("ENABLE_VTPROTOBUF", true,
"If true, will use optimized vtprotobuf based marshaling. Requires a build with -tags=vtprotobuf.").Get()
KubernetesClientContentType = env.Register("DUBBO_KUBE_CLIENT_CONTENT_TYPE", "protobuf",
"The content type to use for Kubernetes clients. Defaults to protobuf. Valid options: [protobuf, json]").Get()
EnableCAServer = env.Register("ENABLE_CA_SERVER", true,
"If this is set to false, will not create CA server in dubbod.").Get()
// EnableCACRL ToDo (nilekh): remove this feature flag once it's stable
EnableCACRL = env.Register(
"PLANET_ENABLE_CA_CRL",
true, // Default value (true = feature enabled by default)
"If set to false, Dubbo will not watch for the ca-crl.pem file in the /etc/cacerts directory "+
"and will not distribute CRL data to namespaces for proxies to consume.",
).Get()
PlanetCertProvider = env.Register("PLANET_CERT_PROVIDER", constants.CertProviderDubbod,
"The provider of Planet DNS certificate. K8S RA will be used for k8s.io/NAME. 'dubbod' value will sign"+
" using Dubbo build in CA. Other values will not not generate TLS certs, but still "+
" distribute ./etc/certs/root-cert.pem. Only used if custom certificates are not mounted.").Get()
DubbodServiceCustomHost = env.Register("DUBBOD_CUSTOM_HOST", "",
"Custom host name of dubbod that dubbod signs the server cert. "+
"Multiple custom host names are supported, and multiple values are separated by commas.").Get()
InjectionWebhookConfigName = env.Register("INJECTION_WEBHOOK_CONFIG_NAME", "dubbo-grpcxds-injector",
"Name of the mutatingwebhookconfiguration to patch, if dubboctl is not used.").Get()
EnableUnsafeAssertions = env.Register(
"UNSAFE_PLANET_ENABLE_RUNTIME_ASSERTIONS",
false,
"If enabled, addition runtime asserts will be performed. "+
"These checks are both expensive and panic on failure. As a result, this should be used only for testing.",
).Get()
EnableClusterTrustBundles = env.Register("ENABLE_CLUSTER_TRUST_BUNDLE_API", false,
"If enabled, uses the ClusterTrustBundle API instead of ConfigMaps to store the root certificate in the cluster.").Get()
)