gloo

The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy

APACHE-2.0 License

Stars
3.9K
Committers
176

Bot releases are hidden (Show)

gloo - v1.2.8

Published by marcogschmidt almost 5 years ago

New Features

Fixes

  • The Gateway controller now resyncs Proxy resources when Gloo sends a notification that an event occurred. This allows the Gateway to re-process its resources when a secondary resource such as a proxy or an upstream is modified. (https://github.com/solo-io/gloo/issues/1812)
gloo - v1.2.7

Published by rickducott almost 5 years ago

Fixes

gloo - v1.2.6

Published by EItanya almost 5 years ago

New Features

gloo - v1.2.5

Published by yuval-k almost 5 years ago

Dependency Bumps

  • envoy-gloo/solo-io has been upgraded to v0.1.19. This includes the security fixes introduced in upstream envoy 1.12.2.

Fixes

  • AWS function discovery is more painful after our change to make FDS run in Whitelist mode by default. This changes FDS so that, in Whitelist mode, AWS functions are discovered as if FDS is running in Blacklist mode. (https://github.com/solo-io/gloo/issues/1878)
  • By default, glooctl install will now attempt to create the namespace to install gloo into. This is a prerequisite for actually installing gloo, but can be turned off with the install flag --create-namespace=false. (https://github.com/solo-io/gloo/issues/1871)
  • Previously, virtual service validation treated a virtual host with a domain of "" (empty string) as having a domain of "*". This then had the potential to conflict with virtual services that legitimately have a domain of "*". Now we report an error from virtual service validation when a domain is the empty string. (https://github.com/solo-io/gloo/issues/1885)
  • Output the glooctl version warning to stderr rather than stdout. Also, base the decision on whether or not to warn about a version mismatch solely on the versions of the open-source discovery containers that we find in the cluster. (https://github.com/solo-io/gloo/issues/1852)
  • Use klog shim so that klog doesn't attempt to write files. (https://github.com/solo-io/gloo/issues/1039)
gloo - v1.2.4

Published by rickducott almost 5 years ago

Fixes

gloo - v1.2.3

Published by rickducott almost 5 years ago

Fixes

  • Calculate the enterprise tag from the gloo-ee helm repo index file (https://storage.googleapis.com/gloo-ee-helm/index.yaml) instead of hardcoding it. (https://github.com/solo-io/gloo/issues/1831)
  • Ensure that our usage of the Helm client libraries assigns a namespace to all resources, even those whose YAML definition does not specify a namespace. This is to fix the bug where observability resources can wind up in the default namespace set by the user's kube config; as of the time of writing, Prometheus's chart defines resources that are namespaced but do not have a namespace explicitly set on them. (https://github.com/solo-io/gloo/issues/1857)
  • The recent v1.2.0 release updated the Gloo chart to be compatible with Helm 3. This included moving the CRDs to the new dedicated /crd directory inside the chart. Helm 2 is not aware of this directory and hence will never render the CRDs. This fix adds back a CRD template file in the templates directory to make the chart backwards-compatible with Helm 2. (https://github.com/solo-io/gloo/issues/1835)
  • We currently allow setting the ttlSecondsAfterFinished attribute on the certgen job via the gateway.certGenJob.ttlSecondsAfterFinished Helm value. Since this attribute was introduced with kubernetes 1.12, we here introduce a check in the Helm template to not render it if the version of kubernetes is less than 1.12. (https://github.com/solo-io/gloo/issues/1853)
gloo - v1.2.2

Published by rickducott almost 5 years ago

This release was canceled.

Fixes

gloo - v1.2.1

Published by marcogschmidt almost 5 years ago

Fixes

  • The template for the settings resource needs to be a Helm pre-install hook to prevent races during install. The hook annotation was accidentally removed with the 1.2.0 release; this change adds it back. (https://github.com/solo-io/gloo/issues/1838)
gloo - v1.2.0

Published by kdorosh almost 5 years ago

Dependency Bumps

  • envoyproxy/go-control-plane has been upgraded to v0.9.0.
  • knative/serving has been upgraded to v0.10.0.
  • solo-io/go-utils has been upgraded to v0.11.0.
  • solo-io/reporting-client has been upgraded to v0.1.2.
  • k8s.io/api has been upgraded to kubernetes-1.16.2.
  • k8s.io/client-go has been upgraded to kubernetes-1.16.2.
  • k8s.io/kubectl has been upgraded to kubernetes-1.16.2.
  • k8s.io/apimachinery has been upgraded to kubernetes-1.16.2.
  • k8s.io/apiextensions-apiserver has been upgraded to kubernetes-1.16.2.
  • k8s.io/apiserver has been upgraded to kubernetes-1.16.2.

Helm Changes

New Features

  • Gloo Validation now always rejects resources which fail to unmarshal, even when strict validation is disabled. (https://github.com/solo-io/gloo/issues/1795)
  • The Gloo Helm chart is now compatible with Helm 3. (https://github.com/solo-io/gloo/issues/1732)
  • Refactor glooctl to make it compatible with the new Helm 3 chart format. glooctl now uses the new Helm 3 libraries and delegates the install and uninstall operations to the corresponding Helm functions to provide consistent behavior across different installation flows; for example, it is now possible to install Gloo using glooctl and uninstall it using Helm, or vice-versa (https://github.com/solo-io/gloo/issues/1732)
  • Deprecated the installConfig.installationId Helm value to track the resources that belong to a Gloo installation. Helm keeps track of resources by storing release information in a Kubernetes Secret in the namespace Gloo was installed in (this is the default with Helm 3 and can be changed via the HELM_DRIVER environment variable). glooctl install and glooctl uninstall now take the same approach (under the hood the two commands now delegate to their counterparts in the Helm 3 libraries). (https://github.com/solo-io/gloo/issues/1635)
  • Helm users can now easily install Gloo in ingress or knative mode by using value overrides. The Gloo Helm chart now packages a single values file instead of creating variants for ingress and knative. The values specific to those two installation modes have been merged into the default values.yaml, where they will be ignored when those two features are disabled (which is the default). To produce the manifests specific to the ingress and knative installations, users can now just disable the gateway and enable the desired component via Helm value overrides. (https://github.com/solo-io/gloo/issues/1732)
  • Add advanced rule priority options to Gloo Enterprise rate limit API, which will be supported in the next 1.x Gloo Enterprise release. (https://github.com/solo-io/gloo/issues/1724)
  • Add virtual_service_namespaces configuration to the HttpGateway, which allows HttpGateways to reference VirtualServices outside of their own namespace using the label selector. The default behavior, which remains unchanged, is to restrict gateways to referencing virtual services in their own namespace. (https://github.com/solo-io/gloo/issues/1695)

Fixes

gloo - v1.1.0

Published by marcogschmidt almost 5 years ago

Helm Changes

New Features

gloo - v0.21.3

Published by marcogschmidt almost 5 years ago

New Features

gloo - v0.21.2

Published by marcogschmidt almost 5 years ago

Helm Changes

New Features

  • Glooctl will now print a warning if the version of the binary differs by either major or minor version from the Gloo server components. In the same message, it will also suggest a command to run to bring glooctl's version in line with the server version. (https://github.com/solo-io/gloo/issues/1513)
gloo - v1.0.0

Published by kdorosh almost 5 years ago

Breaking Changes

  • Rename the Gateway field tcpGateway.destinations to tcpGateway.tcpHosts in order to eliminate the duplicated field names (i.e., tcpGateway.destinations[].destination) (https://github.com/solo-io/gloo/issues/1171)
  • Remove deprecated v1 Gateway in favor of v2 Gateway; rename v2 gateway resources to v1. (https://github.com/solo-io/gloo/issues/1171)
  • When a Gateway has an empty httpGateway.virtualServices ref list, include all virtual services in the same namespace as the gateway. Previously the behavior was to include all virtual services in the cluster, which is unfriendly to multi-tenant setups. (https://github.com/solo-io/gloo/issues/1142)
  • Move the Helm values field "installConfig.installationId" to "global.glooInstallationId" in order to better facilitate usage of the Gloo sub-chart in Gloo Enterprise (https://github.com/solo-io/gloo/issues/1635)
  • Remove some deprecated APIs:
  1. Remove CorsPolicy from Gateway and Gloo VirtualHost, prefer setting CorsPolicy on VirtualHostPlugins.
  2. Remove name from gateway VirtualHost, was previously ignored.
  3. Remove bind_addr and circuit_breakers from Settings, prefer gloo.xdsBindAddr and gloo.circuitBreakers on same message. (https://github.com/solo-io/gloo/issues/1171)
  • Rename all instances of plugins to options in Gloo's API. This prevents confusion as Gloo "plugins" is really an implementation detail for devs, and Gloo does not currently support dynamically-loaded plugins (aside from ExtAuth plugins).

Proto messages have been updated as such:

  1. VirtualHostPlugins -> VirtualHostOptions
  2. RoutePlugins -> RouteOptions
  3. WeightedDestinationPlugins -> WeightedDestinationOptions
  4. ListenerPlugins -> ListenerOptions
  5. HttpListenerPlugins -> HttpListenerOptions
  6. TcpListenerPlugins -> TcpListenerOptions

When referenced in yaml, each property is referenced as options under the appropriate containing resource. (https://github.com/solo-io/gloo/issues/1171)

  • Update ExtAuth secret API to use strongly-typed configuration. OAuth and ApiKey secrets are no longer configured in the opaque extensions block, the same configuration lives at the top level in the api_key and oauth blocks. (https://github.com/solo-io/gloo/issues/1171)
  • Refactor the Upstream API to remove the upstreamSpec field, bringing all the fields contained in upstreamSpec up one level to the top-level Upstream. (https://github.com/solo-io/gloo/issues/1171)

Helm Changes

New Features

  • The Gateway controller can now optionally process Gateway CRDs from anywhere in the watch namespaces, not just the namespace where the controller is running. The new setting controlling that can be found in the Gloo Settings object, at gateway.readGatewaysFromAllNamespaces. The value of this field can be configured at install time by setting the new Helm field gateway.readGatewaysFromAllNamespaces to your desired value; it defaults to false to preserve the old behavior. (https://github.com/solo-io/gloo/issues/1489)
  • Adds the glooctl command "glooctl debug yaml". This command dumps a YAML manifest representing the current state of the Gloo installation running in the specified namespace. This is mainly used as a debug tool, and is not yet suitable for use as a Gloo backup tool; the dumped manifest contains resourceVersions, so you may be unable to do, for example, "glooctl debug yaml | kubectl apply -f -" if a resource has changed between the dump and the "kubectl apply". (https://github.com/solo-io/gloo/issues/1650)
  • Glooctl will now print a warning if the version of the binary differs by either major or minor version from the Gloo server components. In the same message, it will also suggest a command to run to bring glooctl's version in line with the server version. (https://github.com/solo-io/gloo/issues/1513)
  • Implement a utility to print snapshot content with the Secret content redacted (https://github.com/solo-io/gloo/issues/1679)
  • Undeprecate Extensions (as configured on Gloo resources such as Listeners, VirtualHosts, Routes, etc.) and update documentation to explain its new purpose.

Extensions are now used for:

  • controllers, deployment pipelines, helm charts, etc. which wish to use extensions as a kind of opaque metadata. Extensions will be passed along from Gateways, VirtualServices, and Route tables to the underlying Proxy, making them useful for controllers, validation tools, etc. which interact with kubernetes yaml.
  • gRPC-based plugins which communicate with the Gloo translator out-of-process. Having extensions available enables development of out-of-process plugins without requiring recompiling & redeploying Gloo's API (https://github.com/solo-io/gloo/issues/1205)

Fixes

  • Fix potential race where plugins may be called across translates invoked by the Validation server at the same time as the Translation sync. (https://github.com/solo-io/gloo/issues/1616)
  • Use the installation ID set by Helm to ensure that glooctl uninstalls only resources created for the instance of Gloo being uninstalled. It does this by attempting to read the "installationId" label from the gloo pod. If the label is not found, the uninstall will fail. You can choose to proceed by passing the new --force flag to "glooctl uninstall", which will attempt to perform an uninstall that may inadvertently delete cluster-scoped resources belonging to some other installation of Gloo. (https://github.com/solo-io/gloo/issues/1593)
  • Downgrade the log level from Error to Warn when gloo fails to report statistics (https://github.com/solo-io/gloo/issues/1633)
  • Security Fix: Fix a bug where, when Gloo's logging level is set to Debug, we may inadvertently write the content of Secrets into the pod logs. We now print the same content into the logs, but with the Secret data redacted. (https://github.com/solo-io/gloo/issues/1679)
gloo - v0.21.1

Published by GrahamGoudeau almost 5 years ago

Helm Changes

New Features

  • Adds the glooctl command "glooctl debug yaml". This command dumps a YAML manifest representing the current state of the Gloo installation running in the specified namespace. This is mainly used as a debug tool, and is not yet suitable for use as a Gloo backup tool; the dumped manifest contains resourceVersions, so you may be unable to do, for example, "glooctl debug yaml | kubectl apply -f -" if a resource has changed between the dump and the "kubectl apply". (https://github.com/solo-io/gloo/issues/1650)
  • Implement a utility to print snapshot content with the Secret content redacted (https://github.com/solo-io/gloo/issues/1679)

Fixes

gloo - v0.21.0

Published by GrahamGoudeau almost 5 years ago

Dependency Bumps

  • solo-io/go-utils has been upgraded to v0.10.25.

Breaking Changes

  • This release changes the names of Gloo's ClusterRoles. By default, cluster-scoped roles will have the namespace of the associated Gloo installation appended to their name (i.e., the cluster-scoped role "gloo-resource-reader" created along with a Gloo installation to the gloo-system namespace will now become "gloo-resource-reader-gloo-system"). This may cause a problem during upgrades from Gloo <0.21.0 to Gloo >=0.21.0 for both open-source and enterprise Gloo, as the role ref in a ClusterRoleBinding is immutable. To resolve this, you can delete the existing ClusterRoleBindings with "kubectl delete clusterrolebinding -l app=gloo" and they will be recreated correctly by the rest of the upgrade process. (https://github.com/solo-io/gloo/issues/1459)

Helm Changes

  • At install time, set an installation ID on all resources. This ID is determined by using the value of the new Helm setting "installConfig.installationId", or selecting an ID at random if that setting is not provided. If providing your own installation ID, the value you provide must be a valid kubernetes label (refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set). (https://github.com/solo-io/gloo/issues/1589)
  • Allow RBAC resource names to receive custom suffixes through the introduction of the new Helm setting "global.glooRbac.nameSuffix". This enables, for example, blue/green deployments of Gloo to different namespaces within the same cluster when using cluster-scoped RBAC resources. This change is backwards compatible. However, if you are performing an upgrade of Gloo from a version prior to this change and plan to use the new Helm value, then you may end up with duplicate RBAC resources in your cluster (e.g. Roles/RoleBindings with and without the suffix). If this is the case, the old resources (without the suffix) can be safely cleaned up. (https://github.com/solo-io/gloo/issues/1459)

New Features

Fixes

  • Use the installation ID set by Helm to ensure that glooctl uninstalls only resources created for the instance of Gloo being uninstalled. It does this by attempting to read the "installationId" label from the gloo pod. If the label is not found, the uninstall will fail. You can choose to proceed by passing the new --force flag to "glooctl uninstall", which will attempt to perform an uninstall that may inadvertently delete cluster-scoped resources belonging to some other installation of Gloo. (https://github.com/solo-io/gloo/issues/1593)
  • Currently Gloo logs a warning each time it replaces an illegal character in the name of a Virtual Host. Change it to a debug level message to not flood the logs. (https://github.com/solo-io/gloo/issues/1604)
gloo - v1.0.0-rc2

Published by kdorosh almost 5 years ago

Dependency Bumps

  • solo-io/go-utils has been upgraded to v0.10.22.
  • solo-io/go-utils has been upgraded to v0.10.25.
  • solo-io/envoy-gloo has been upgraded to v0.1.18.
  • solo-io/solo-kit has been upgraded to v0.11.7.

Breaking Changes

  • Remove some deprecated APIs:
  1. weighed_destination_plugins on WeightedDestinations, prefer weighted_destination_plugins
  2. gateway_proxy_name on Gateway, prefer proxy_names
  3. role_arns on UpstreamSpec, prefer role_arn
  4. Extauth's VhostExtension and RouteExtension, among other minor removals. Prefer configuring Gloo Enterprise ExtAuth using AuthConfig Custom Resources, and configure Virtual Services via ExtAuthExtension to either reference these AuthConfigs or reference your own custom auth implementation using CustomAuth. (https://github.com/solo-io/gloo/issues/1171)
  • This release changes the names of Gloo's ClusterRoles. By default, cluster-scoped roles will have the namespace of the associated Gloo installation appended to their name (i.e., the cluster-scoped role gloo-resource-reader created along with a Gloo installation to the gloo-system namespace will now become gloo-resource-reader-gloo-system). This may cause a problem during upgrades from Gloo <0.21.0 to Gloo >=0.21.0 for both open-source and enterprise Gloo, as the role ref in a ClusterRoleBinding is immutable. To resolve this, you can delete the existing ClusterRoleBindings with kubectl

Helm Changes

  • At install time, set an installation ID on all resources. This ID is determined by using the value of the new Helm setting "installConfig.installationId", or selecting an ID at random if that setting is not provided. If providing your own installation ID, the value you provide must be a valid kubernetes label (refer to https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set). (https://github.com/solo-io/gloo/issues/1589)
  • Fix casing of helm value global.glooRbac.namespaced in the generated docs. The value global.glooRbac.namespaced has always been supported but we had been generating docs that have the value capitalized (global.glooRbac.Namespaced), incorrectly. (https://github.com/solo-io/gloo/issues/1569)
  • Allow RBAC resource names to receive custom suffixes through the introduction of the new Helm setting "global.glooRbac.nameSuffix". This enables, for example, blue/green deployments of Gloo to different namespaces within the same cluster when using cluster-scoped RBAC resources. This change is backwards compatible. However, if you are performing an upgrade of Gloo from a version prior to this change and plan to use the new Helm value, then you may end up with duplicate RBAC resources in your cluster (e.g. Roles/RoleBindings with and without the suffix). If this is the case, the old resources (without the suffix) can be safely cleaned up. (https://github.com/solo-io/gloo/issues/1459)

New Features

  • Add API for data loss prevention filter. (https://github.com/solo-io/gloo/issues/1500)
  • Allow the gateway-proxy pod to optionally receive both init containers to run and extra volumes to define through helm (https://github.com/solo-io/gloo/issues/1537)
  • Support for Envoy's forward_client_cert_details and set_current_client_cert_details HTTP connection manager options (https://github.com/solo-io/gloo/issues/1577)
  • Add native generated Kubernetes types for Gloo config resources (https://github.com/solo-io/gloo/issues/1520)
  • This change adds new features to the transformation API. It is now possible to define Extractors which target the request/response body and use the resulting data in templates. You can decide whether to parse the body as JSON or as raw text; in the latter case extraction happens via regular expressions, in the former you will also be able to use all the templating capabilities. These have been augmented with three new template functions: body() will return the whole request body, context() will return the base JSON context (allowing for example to range on a JSON body that is an array), and env(NAME) will return the value of an environment variable with the given name. Finally, it is now possible to set Dynamic Metadata using all the available extraction and templating features. You can now use this metadata to include any request/response property you like in the access logs (see the DYNAMIC_METADATA command operator here). (https://github.com/solo-io/gloo/issues/1546)
  • Add glooctl commands to create and get AuthConfigs, and update glooctl create vs command to allow providing AuthConfig refs to configure extauth. (https://github.com/solo-io/gloo/issues/1171)

Fixes

  • Update docs as part of fix to standard DLP SSN and credit card regexes to ignore boundary characters during regex match. This fixes potential issues where DLP masks characters outside the interesting part of the match, for example, the opening quote if the SSN/Credit Card is part of a JSON response. Before this fix, DLP would incorrectly transform this response into invalid JSON by masking the opening parenthesis. (https://github.com/solo-io/gloo/issues/1591)
  • Make sure glooctl reports the same signature across multiple invocations (https://github.com/solo-io/gloo/issues/1559)
  • Mute logging of kubernetes health check in gateway (https://github.com/solo-io/gloo/issues/1435)
  • Currently Gloo logs a warning each time it replaces an illegal character in the name of a Virtual Host. Change it to a debug level message to not flood the logs. (https://github.com/solo-io/gloo/issues/1604)
gloo - v0.20.13

Published by GrahamGoudeau almost 5 years ago

Fixes

  • Avoid panicking on routes without matchers when running glooctl get vs. (https://github.com/solo-io/gloo/issues/1563)
  • Handle the rate_limit_before_auth setting in its deprecated location. We currently correctly handle the flag in its new location (spec.ratelimit_server.rate_limit_before_auth). (https://github.com/solo-io/gloo/issues/1572) but ignore it in the deprecated one (spec.extensions.configs.rate-limit.rate_limit_before_auth)
gloo - v0.20.12

Published by marcogschmidt almost 5 years ago

Dependency Bumps

  • solo-io/envoy-gloo has been upgraded to v0.1.18.
  • solo-io/solo-kit has been upgraded to v0.11.7.

New Features

  • Allow the gateway-proxy pod to optionally receive both init containers to run and extra volumes to define through helm (https://github.com/solo-io/gloo/issues/1537)
  • This change adds new features to the transformation API. It is now possible to define Extractors which target the request/response body and use the resulting data in templates. You can decide whether to parse the body as JSON or as raw text; in the latter case extraction happens via regular expressions, in the former you will also be able to use all the templating capabilities. These have been augmented with three new template functions: body() will return the whole request body, context() will return the base JSON context (allowing for example to range on a JSON body that is an array), and env(NAME) will return the value of an environment variable with the given name. Finally, it is now possible to set Dynamic Metadata using all the available extraction and templating features. You can now use this metadata to include any request/response property you like in the access logs (see the DYNAMIC_METADATA command operator here). (https://github.com/solo-io/gloo/issues/1546)
gloo - v0.20.11

Published by marcogschmidt almost 5 years ago

New Features

gloo - v0.20.10

Published by mitchdraft about 5 years ago

Dependency Bumps

  • solo-io/solo-kit has been upgraded to v0.10.5.

New Features

Package Rankings
Top 1.19% on Proxy.golang.org
Related Projects