Skip to content

Commit

Permalink
add support section
Browse files Browse the repository at this point in the history
  • Loading branch information
artberger committed Apr 5, 2024
1 parent 911c899 commit 5722d66
Show file tree
Hide file tree
Showing 4 changed files with 389 additions and 0 deletions.
9 changes: 9 additions & 0 deletions docs/content/support/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: Get help and support
description: Get help, training, and other forms of support.
weight: 175
---

Get help, training, and other forms of support.

{{% children description="true" %}}
109 changes: 109 additions & 0 deletions docs/content/support/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
title: About Solo Support
weight: 910
description: Learn what is included in Solo's product support and how to communicate with Solo Engineers in case of an issue.
---
Learn what is included in Solo's product support and how to communicate with Solo Engineers in case of an issue.
## Solo Support scope

Solo Support offers technical assistance in English for Solo products. We are committed to helping you successfully utilize our software in your production environment by:

* Addressing specific questions and concerns related to the installation and maintenance of our software.
* Assisting with troubleshooting.
* Helping resolve errors or failures encountered during installation or use of our products.
* Identifying and documenting reported bugs, as well as providing workaround solutions when possible.
* Providing support for the integration between Solo products — Istio included — and third-party software. **Note**: If we identify that the issue is happening on the third-party side, we may redirect you to work with the appropriate vendor, as we do not provide support for other vendor’s software.

All Solo customers have access to various channels for obtaining technical assistance for our software:
* Open a support ticket in the [Support Portal](https://support.solo.io).
* Join the community of Solo users in [Slack](https://soloio.slack.com), or talk to your Account Executive to be added to the private Solo Slack space.
* Contact Solo Support by sending an email to `support@solo.io`.
* Call the Support Hotline at `+1-601-476-5646` (for **urgent priority, production-related** issues only).

For more information, see the following resources:
* [Submit a request]({{% versioned_link_path fromRoot="/support/support-ticket/#submit-a-ticket" %}}): Learn how to create a ticket by using the Support Portal or email.
* [Add support information]({{< versioned_link_path fromRoot="/support/support-info/" >}}): Review what Solo Support needs to understand your request and provide timely, accurate assistance.
* [Priority levels]({{% versioned_link_path fromRoot="/support/support-ticket/#priority-levels" %}}): Learn more about priority levels and how to assign the right priority level to your support request.
* [Targeted times for initial response]({{% versioned_link_path fromRoot="/support/support-ticket/#response-time" %}}): Review response times from Solo Support based on the priority level that you chose for your request.
* [Join the Solo.io Slack community]({{% versioned_link_path fromRoot="/support/support-ticket/#slack" %}}): Learn about which channels to join, and how to open a Support ticket in Zendesk by using Slack.


## Not within Solo Support’s scope

Solo Support is not accountable for providing assistance with custom code, third-party tools, or unsupported technologies. Your request is likely out of Solo Support’s scope if it is primarily about:
* Third party integrations, such as Hashicorp Vault
* Writing custom scripts
* Configuration of external authentication systems
* Open source projects (Istio is an exception)

Reach out to your Solo Account Executive or Customer Success Manager if you have questions or require assistance with any of the following:
* Architecture, design review, and best practices
* Securing your environment
* Comprehensive installation guide
* Help with custom code
* Scheduling or registering for training and workshops

For guidance on what products may be right for you, to request a demo, and to learn more about pricing options, [contact Solo Sales](https://www.solo.io/company/contact-sales/) or reach out to your Account Executive.

<!--
## Support for Istio
Solo Support offers technical assistance for Istio in English for Solo-supported images of Istio only. Support for upstream Istio images is not included. For more information, see [Solo distribution of Istio](https://docs.solo.io/gloo-mesh-enterprise/main/reference/version/gloo_mesh_istio/).
We are committed to helping you successfully utilize Istio by:
* Addressing specific questions and concerns related to the installation and maintenance of Solo distributions of Istio.
* Assisting with break/fix troubleshooting.
* Helping resolve errors or failures encountered during installation or use of our products.
* Identifying and documenting reported bugs, as well as providing workaround solutions when possible.
* Providing support for the integration between Solo products — Istio included — and third-party software. **Note**: If we identify that the issue is happening on the third-party side, we may redirect you to work with the appropriate vendor, as we do not provide support for other vendor’s software.
All Solo.io customers have access to various channels for obtaining technical assistance for our software:
* Open a support ticket in the [Support Portal](https://support.solo.io).
* Join the community of Solo users in [Slack](https://soloio.slack.com), or talk to your Account Executive to be added to the private Solo Slack space.
* Contact Solo Support by sending an email to `support@solo.io`.
* Call the Support Hotline at `+1-601-476-5646` (for **urgent priority, production-related** issues only).
### Istio-support only: Targeted time for initial response
When you contact Solo Support, you can choose a priority for your request. For more See the Priority Levels section to see the definitions of each priority level.
|Priority level|Targeted time for initial response|
|--|--|
|Urgent**|1 hour (24/7/365)|
|High|4 business hours (Monday - Friday 9:00 am - 6:00 pm US Eastern Time)|
|Normal|8 business hours (Monday - Friday 9:00 am - 6:00 pm US Eastern Time)|
|Low|24 business hours (Monday - Friday 9:00 am - 6:00 pm US Eastern Time)|
{{% alert context="danger" %}}
**To report Urgent priority, production-related issues, you must contact Solo’s Support Hotline at `+1-601-476-5646`.
{{% /alert %}}
{{% alert %}}
Solo Support reserves the right to adjust the priority you select if it does not align with the priorities documented above.
{{% /alert %}}
For more information, see the following resources:
* [Submit a request]({{< versioned_link_path fromRoot="/support/support-ticket/" >}}): Learn how to create a ticket by using the Support Portal or email.
* [Details to include in your support request]({{< versioned_link_path fromRoot="/support/support-ticket/#ticket-details" >}}): Review what Solo Support needs to understand your request and provide timely, accurate assistance.
* [Priority levels]({{< versioned_link_path fromRoot="/support/support-ticket/#priority-levels" >}}): Learn more about priority levels and how to assign the right priority level to your support request.
* [Join the Solo.io Slack community]({{< versioned_link_path fromRoot="/support/support-ticket/#slack" >}}): Learn about which channels to join, and how to open a Support ticket in Zendesk by using Slack.
-->

## Support for Legacy Software

Solo recommends using the latest version of our software to ensure you have access to the latest features and bug fixes.

If you are a few versions behind, you have access to Solo’s support for legacy software as shown in the following table:

|Software|Details|
|--|--|
|Solo products, including Gloo Gateway|Support for N-3 versions|


<!--
|Istio|Support for N-4 versions (Example: If the current version of Istio is 1.19, support is provided for 1.15 and later versions.)
|Cilium|Support for N-4 versions (Example: If the current version of Cilium is 1.15, support is provided for 1.11 and later versions.)
-->
175 changes: 175 additions & 0 deletions docs/content/support/support-info.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
---
title: Add support information
description: Review the details to include in your support.
weight: 930
---

Collect valuable information for Solo to review and troubleshoot your support request.

## Environment

1. Get your Gloo Edge version.
```shell
glooctl version -o yaml
```
2. Get the version of Kubernetes that you run in your cluster.
```shell
kubectl version -o yaml
```
3. List the infrastructure provider that hosts your environment, such as AWS or an on-premise virtual machine (VM).

## Setup

Share the installation method that you used to install Gloo Edge, such as Helm, `glooctl`, or Argo CD, and the configuration that you used during the installation.

{{< tabs >}}
{{% tab name="Helm" %}}
Use the following command to extract the Helm manifests that were used for the Gloo Edge installation and the state of each manifest. Replace `releaseName` and `namespaceName` with the values that you used for your installation.
```shell
helm get all <releaseName> --namespace <namespaceName> > gloo_edge_helm.yaml
```

{{% /tab %}}

{{% tab name="glooctl"%}}
Share the complete command that you used to install Gloo Edge. The following command shows an example command that you might have used.
```shell
glooctl install gateway enterprise --license-key <license> --values foo,bar
```
{{% /tab %}}

{{% tab name="Argo CD"%}}
Get the Argo CD applications that define the installation of Gloo Edge by using one of the following methods.
* `kubectl`:
```shell
kubectl get applications.argoproj.io/<applicationName> -n <namespaceName> -o yaml
```
* Argo CD CLI:
```shell
argocd app get <applicationName> -o yaml
```
{{% /tab %}}
{{< /tabs >}}

## Issue

1. Provide a detailed description of the issue. Make sure to include the following information:
- If reproducable, steps to reproduce the issue
- If applicable, sample of a client request including the payload
- High-level diagram of the interactions from the perspective of the client request
- The request protocol that is handled by the application(s) in question, such as HTTP / TCP / gRPC
- If the issue is related to authentication or authorization, details of the auth configuration
2. Describe the impact of the issue. For example, the issue might block an update or a demo, or cause the loss of data or an entire system.
3. Export the relevant configuration files that are related to the issue.
{{< tabs >}}
{{% tab name="Gloo Edge resources"%}}
- Typically, the Gloo Edge `Settings` object is useful to understand the configuration of Gloo Edge.
- For traffic management issues, include the following list of Gloo Edge resources:
- `Gateway`
- `VirtualService`
- `RouteTable`
- `Upstream`

- Use the following script to dump all Gloo Edge custom resources into a file. Attach the `gloo-edge-configuration.yaml` file to your support request.
```shell
for n in $(kubectl get crds | grep solo.io | awk '{print $1}'); do kubectl get $n --all-namespaces -o yaml >> gloo-edge-configuration.yaml; echo "---" >> gloo-edge-configuration.yaml; done
```
{{% /tab %}}
{{% tab name="Istio resources"%}}
If you use Gloo Edge as a gateway to an Istio service mesh, provide details about how Istio is configured. You can use the following command to create an Istio bug report that you can attach to your support request.

```shell
istioctl bug-report --istio-namespace <istioControlPlaneNamespace>
```
{{% /tab %}}
{{< /tabs >}}

## Product-specific details

### Control plane

1. Capture the output of the `glooctl check` command.
<br>Typically, the command output indicates any errors in the control plane components or associated resources, such as in the following example.

```
Checking deployments... 1 Errors!
Checking pods... 2 Errors!
Checking upstreams... OK
Checking upstream groups... OK
Checking auth configs... OK
Checking rate limit configs... OK
Checking VirtualHostOptions... OK
Checking RouteOptions... OK
Checking secrets... OK
Checking virtual services... OK
Checking gateways... OK
Checking proxies... Skipping due to an error in checking deployments
Skipping due to an error in checking deployments
Error: 5 errors occurred:
* Deployment gloo in namespace gloo-system is not available! Message: Deployment does not have minimum availability.
* Pod gloo-8ddc4ff4c-g4mnf in namespace gloo-system is not ready! Message: containers with unready status: [gloo]
* Not all containers in pod gloo-8ddc4ff4c-g4mnf in namespace gloo-system are ready! Message: containers with unready status: [gloo]
* proxy check was skipped due to an error in checking deployments
* xds metrics check was skipped due to an error in checking deployment
```
2. Collect the logs for various control plane components, such as `gloo`, `gloo-fed`, `redis`, or `observability` by using the `debug` log level (if possible). The components vary depending on your Gloo Edge setup and can be found in the `gloo-system` namespace. At a minimum, include the logs for the `gloo` pod in your support request.
<br>To enable the `debug` log level, see [Debugging control plane]({{< versioned_link_path fromRoot="/operations/debugging_gloo/#debugging-the-control-plane" >}}).
<br><br>Follow the steps below to get the logs for the `gloo` controller pod.
1. Set the log level to `debug`.
```shell
kubectl port-forward deploy/gloo -n <controlplaneNamespace> 9091:9091 > /dev/null 2>&1 &
PID=$!
curl -X PUT -H "Content-Type: application/json" -d '{"level": "debug"}' http://localhost:9091/logging
```
2. Capture the logs when reproducing the issue.
```shell
kubectl logs -f deploy/gloo -n <controlplaneNamespace> > gloo.log
```
3. After you capture the logs, reset the log level to `info`.
```shell
curl -X PUT -H "Content-Type: application/json" -d '{"level": "info"}' http://localhost:9091/logging
kill -9 $PID
```
Repeat these steps for all the control plane components.

### Data plane

1. Capture the xDS configuration that is currently served.
```shell
glooctl proxy served-config -n <controlplaneNamespace> > served-config.yaml
```
2. Get the configuration that is served in the `gateway-proxy` Envoy pod(s).
<br>For more information, see [Dumping Envoy configuration]({{< versioned_link_path fromRoot="/operations/debugging_gloo/#dumping-envoy-configuration" >}}).
```shell
kubectl port-forward deploy/gateway-proxy -n <proxyNamespace> 19000:19000 > /dev/null 2>&1 &
PID=$!
curl -s localhost:19000/config_dump\?include_eds > gateway-config.json
kill -9 $PID
```
3. Get the access log(s) for failed request from the `gateway-proxy` pod(s). If access logging is not enabled, refer to [this guide]({{< versioned_link_path fromRoot="/guides/security/access_logging" >}}) to enable it.
4. If possible, collect the logs from the `gateway-proxy` Envoy pod(s) in `debug` log level for the failed request.
{{% notice tip %}}
The `gateway-proxy` component comes with several loggers. Setting the log level to `debug` for all loggers can get very noisy. Instead, you can change the log level for a specific logger only. For more information, see [Viewing Envoy logs]({{< versioned_link_path fromRoot="/operations/debugging_gloo/#viewing-envoy-logs" >}}).
{{% /notice %}}
1. Choose the logger that you want to get logs for. For a list of available loggers, see [Viewing Envoy logs]({{< versioned_link_path fromRoot="/operations/debugging_gloo/#viewing-envoy-logs" >}}).
2. Port-forward the `gateway-proxy` pod on port 19000.
```shell
kubectl -n gloo-system port-forward deploy/gateway-proxy 19000 &
```
3. Change the log level to `debug` for the selected logger. The following example changes the log level for the `grpc` logger.
```shell
curl -X POST "127.0.0.1:19000/logging?grpc=debug"
```

4. Capture the logs when reproducing the issue.
```shell
kubectl logs -f deploy/gateway-proxy -n gloo-system > gateway-proxy.log
```
3. After you capture the logs, reset the log level to `info`.
```shell
curl -X POST "127.0.0.1:19000/logging?grpc=info"
```
5. Gather the stats from the proxy pod(s).
```shell
glooctl proxy stats > proxy-stats.log
```
Loading

0 comments on commit 5722d66

Please sign in to comment.