diff --git a/docs/intro.md b/docs/intro.md index 357b8d9687..c7a5160c4a 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -49,13 +49,10 @@ pagination_next: null Replicated FAQs
Embedded Kubernetes
+Embedded Cluster (Beta)
Embed Kubernetes with your application to support installations on VMs or bare metal servers.
| Description | -The icon file for the application. Used on the license upload and in various places in the Admin Console. | +The icon file for the application. Used on the license upload, in various places in the Admin Console, and in the Download Portal. The icon can be a remote URL or a Base64 encoded image. Base64 encoded images are required to display the image in air gap installations with no outbound internet access. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Example | diff --git a/docs/vendor/distributing-workflow.md b/docs/vendor/distributing-workflow.md deleted file mode 100644 index 3b10aebc71..0000000000 --- a/docs/vendor/distributing-workflow.md +++ /dev/null @@ -1,129 +0,0 @@ -import SDKOverview from "../partials/replicated-sdk/_overview.mdx" - -# Onboarding with KOTS - -This topic describes how to onboard with Replicated KOTS, including prerequisites and the list of custom resources to add to your releases in order to support KOTS installations. - -## Prerequisites - -If you are new to Replicated, complete the following prerequisites before you get started with KOTS: - -* Create an account in the Vendor Portal. You can either create a new team or join an existing team. For more information, see [Creating a Vendor Account](vendor-portal-creating-account). - -* Review [Replicated Onboarding](/vendor/replicated-onboarding) for more information about onboarding an application to the Replicated Platform before you get started with KOTS. - -## Add Custom Resources - -You can add custom resources to your releases to support installations with KOTS. The custom resources are consumed by KOTS and are not deployed to the cluster. This section provides a checklist of the custom resources to add as well as information about how to add and test custom resources. - -### How to Add Custom Resources - -Replicated recommends that you configure and add one custom resource at a time by creating a release and then upgrading in a development environment to test. You can add these custom resources to releases in any order that you prefer. - -For more information about creating releases, see [Managing Releases with the Vendor Portal](releases-creating-releases). For more information about installing and upgrading with KOTS, see [About Installing an Application](/enterprise/installing-overview) and [Performing Updates in Existing Clusters](/enterprise/updating-app-manager). - -### Custom Resource Checklist - -This section lists the required and recommended custom resources to add to your releases to enable KOTS installations for your application. The custom resources are grouped in the following categories: - -* [KOTS Admin Console](#admin-console) -* [Helm Chart Installations](#helm-chart-installations) -* [Embedded Kubernetes](#embedded-kubernetes) - -#### KOTS Admin Console {#admin-console} - -The following custom resources can be added to customize the Admin Console experience for your application and enable recommended features for KOTS. - -
| Custom Resource | -Description | -How To | -
|---|---|---|
| KOTS Application | -Control the KOTS Admin Console experience for your application. |
- - Application - | -
| Kubernetes SIG Application | -Add links to the Admin Console dashboard. A common use case for the Kubernetes Application custom resource is adding a button to the dashboard that users can click to navigate to port forwarded services for your application. |
- Adding Application Links to the Dashboard | -
| Config | -
- Create a configuration screen in the Admin Console to collect required and optional configuration values from your users. -Note: This feature does not apply to Kubernetes Operators. - |
- Creating and Editing Configuration Fields | -
| Preflight | -Define preflight checks to test for system compliance during installation and upgrade to reduce the number of support escalations. |
- Defining Preflight Checks | -
| SupportBundle | -Enable customers to quickly collect and analyze troubleshooting data from their clusters to help you diagnose problems with application deployments. |
- Adding and Customizing Support Bundles | -
| Backup | -Enable snapshots with Velero so that end users can back up and restore their application data. | -Configuring Backup and Restore | -
| Custom Resource | -Description | -How To | -
|---|---|---|
| HelmChart | -Provides instructions for KOTS about how to deploy a given Helm chart. |
- Configuring the HelmChart Custom Resource | -
| Custom Resource | -Description | -How To | -
|---|---|---|
| Embedded Cluster Config | -Create an embedded cluster config to support installations in VMs or bare metal servers with Replicated Embedded Cluster. | -Using Embedded Cluster | -
| Installer | -Create an Installer spec to support installations in VMs or bare metal servers with Replicated kURL. | -Creating a kURL Installer | -
| HelmChart v1beta2 | -HelmChart v1beta1 | -Description | -
|---|---|---|
apiVersion: kots.io/v1beta2 |
- apiVersion: kots.io/v1beta1 |
- apiVersion is updated to kots.io/v1beta2 |
-
releaseName |
- chart.releaseName |
- releaseName is a top level field under spec |
-
| N/A | -helmVersion |
- helmVersion field is removed |
-
| N/A | -useHelmInstall |
- useHelmInstall field is removed |
-
| HelmChart v1beta2 | +HelmChart v1beta1 | +Description | +
|---|---|---|
apiVersion: kots.io/v1beta2 |
+ apiVersion: kots.io/v1beta1 |
+ apiVersion is updated to kots.io/v1beta2 |
+
releaseName |
+ chart.releaseName |
+ releaseName is a top level field under spec |
+
| N/A | +helmVersion |
+ helmVersion field is removed |
+
| N/A | +useHelmInstall |
+ useHelmInstall field is removed |
+
The KOTS HelmChart custom resource provides instructions to KOTS about how to deploy the Helm chart. The name and chartVersion listed in the HelmChart custom resource must match the name and version of a Helm chart archive in the release. The optionalValues field sets the specified Helm values when a given conditional statement evaluates to true. In this case, if the application is installed with Embedded Cluster, then the Gitea service type is set to `NodePort` and the node port is set to `"32000"`. This will allow Gitea to be accessed from the local machine after deployment for the purpose of this quick start.
The KOTS Application custom resource enables features in the Replicated Admin Console such as branding, release notes, application status indicators, and custom graphs.
The YAML below provides a name for the application to display in the Admin Console, adds a custom status informer that displays the status of the gitea Deployment resource in the Admin Console dashboard, adds a custom application icon, and adds the port where the Gitea service can be accessed so that the user can open the application after installation.
The Kubernetes SIG Application custom resource supports functionality such as including buttons and links on the Replicated Admin Console dashboard. The YAML below adds an Open App button to the Admin Console dashboard that opens the application using the service port defined in the KOTS Application custom resource.
+To install your application with Embedded Cluster, an Embedded Cluster Config must be present in the release. At minimum, the Embedded Cluster Config sets the version of Embedded Cluster that will be installed. You can also define several characteristics about the cluster.
+
+
+ [View a larger version of this image](/images/embedded-cluster-install-dialog-latest.png)
+
+ 1. When prompted, enter a password for accessing the Admin Console.
+
+ The installation command takes a few minutes to complete.
+
+ **Example output:**
+
+ ```bash
+ ? Enter an Admin Console password: ********
+ ? Confirm password: ********
+ ✔ Host files materialized!
+ ✔ Running host preflights
+ ✔ Node installation finished!
+ ✔ Storage is ready!
+ ✔ Embedded Cluster Operator is ready!
+ ✔ Admin Console is ready!
+ ✔ Additional components are ready!
+ Visit the Admin Console to configure and install gitea-kite: http://104.155.145.60:30000
+ ```
+
+ At this point, the cluster is provisioned and the Admin Console is deployed, but the application is not yet installed.
+
+ 1. Go to the URL provided in the output to access to the Admin Console.
+
+ 1. Bypass the browser TLS warning by clicking **Continue to Setup**.
+
+ 1. Click **Advanced > Proceed**.
+
+ 1. On the **HTTPS for the Gitea Admin Console** page, select **Self-signed** and click **Continue**.
+
+ 1. On the login page, enter the Admin Console password that you created during installation and click **Log In**.
+
+ 1. On the **Nodes** page, you can view details about the VM where you installed, including its node role, status, CPU, and memory. Users can also optionally add additional nodes on this page before deploying the application. Click **Continue**.
+
+ The Admin Console dashboard opens.
+
+ 1. In the **Version** section, next to the new version, click **Deploy** and then **Yes, Deploy**.
+
+ The application status changes from Missing to Unavailable while the `gitea` Deployment is being created.
+
+ 1. After a few minutes when the application status is Ready, click **Open App** to view the Gitea application in a browser.
+
+ For example:
+
+ 
+
+ [View a larger version of this image](/images/gitea-ec-ready.png)
+
+
+
+ [View a larger version of this image](/images/gitea-app.png)
+
+1. Return to the Vendor Portal and go to **Customers**. Under the name of the customer, confirm that you can see an active instance.
+
+ This instance telemetry is automatically collected and sent back to the Vendor Portal by both KOTS and the Replicated SDK. For more information, see [About Instance and Event Data](/vendor/instance-insights-event-data).
+
+1. Under **Instance ID**, click on the ID to view additional insights including the versions of Kubernetes and the Replicated SDK running in the cluster where you installed the application. For more information, see [Instance Details](/vendor/instance-insights-details).
+
+1. Create a new release that adds preflight checks to the application:
+
+ 1. In your local filesystem, go to the `gitea` directory.
+
+ 1. Create a `gitea-preflights.yaml` file in the `templates` directory:
+
+ ```
+ touch templates/gitea-preflights.yaml
+ ```
+
+ 1. In the `gitea-preflights.yaml` file, add the following YAML to create a Kubernetes Secret with a simple preflight spec:
+
+ ```yaml
+ apiVersion: v1
+ kind: Secret
+ metadata:
+ labels:
+ troubleshoot.sh/kind: preflight
+ name: "{{ .Release.Name }}-preflight-config"
+ stringData:
+ preflight.yaml: |
+ apiVersion: troubleshoot.sh/v1beta2
+ kind: Preflight
+ metadata:
+ name: preflight-sample
+ spec:
+ collectors:
+ - http:
+ collectorName: slack
+ get:
+ url: https://api.slack.com/methods/api.test
+ analyzers:
+ - textAnalyze:
+ checkName: Slack Accessible
+ fileName: slack.json
+ regex: '"status": 200,'
+ outcomes:
+ - pass:
+ when: "true"
+ message: "Can access the Slack API"
+ - fail:
+ when: "false"
+ message: "Cannot access the Slack API. Check that the server can reach the internet and check [status.slack.com](https://status.slack.com)."
+ ```
+ The YAML above defines a preflight check that confirms that an HTTP request to the Slack API at `https://api.slack.com/methods/api.test` made from the cluster returns a successful response of `"status": 200,`.
+
+ 1. In the `Chart.yaml` file, increment the version to 1.0.7:
+
+ ```yaml
+ # Chart.yaml
+ version: 1.0.7
+ ```
+
+ 1. Update dependencies and package the chart to a `.tgz` chart archive:
+
+ ```bash
+ helm package -u .
+ ```
+
+ 1. Move the chart archive to the `manifests` directory:
+
+ ```bash
+ mv gitea-1.0.7.tgz manifests
+ ```
+
+ 1. In the `manifests` directory, open the KOTS HelmChart custom resource (`gitea.yaml`) and update the `chartVersion`:
+
+ ```yaml
+ # gitea.yaml KOTS HelmChart
+ chartVersion: 1.0.7
+ ```
+
+ 1. Remove the chart archive for version 1.0.6 of the Gitea chart from the `manifests` directory:
+
+ ```
+ rm gitea-1.0.6.tgz
+ ```
+
+ 1. From the `manifests` directory, create and promote a new release, setting the version label of the release to `0.0.2`:
+
+ ```bash
+ replicated release create --yaml-dir . --promote Unstable --version 0.0.2
+ ```
+ **Example output**:
+ ```bash
+ • Reading manifests from . ✓
+ • Creating Release ✓
+ • SEQUENCE: 2
+ • Promoting ✓
+ • Channel 2kvjwEj4uBaCMoTigW5xty1iiw6 successfully set to release 2
+ ```
+
+1. On your VM, update the application instance to the new version that you just promoted:
+
+ 1. In the Admin Console, go to the **Version history** tab.
+
+ The new version is displayed automatically.
+
+ 1. Click **Deploy** next to the new version.
+
+ The Embedded Cluster upgrade wizard opens.
+
+ 1. In the Embedded Cluster upgrade wizard, on the **Preflight checks** screen, note that the "Slack Accessible" preflight check that you added was successful. Click **Next: Confirm and deploy**.
+
+ 
+
+ [View a larger version of this image](/images/quick-start-ec-upgrade-wizard-preflight.png)
+
+ :::note
+ The **Config** screen in the upgrade wizard is bypassed because this release does not contain a KOTS Config custom resource. The KOTS Config custom resource is used to set up the Config screen in the KOTS Admin Console.
+ :::
+
+ 1. On the **Confirm and Deploy** page, click **Deploy**.
+
+1. Reset and reboot the VM to remove the installation:
+
+ ```bash
+ sudo ./APP_SLUG reset
+ ```
+ Where `APP_SLUG` is the unique slug for the application.
+
+ :::note
+ You can find the application slug by running `replicated app ls` on your local machine.
+ :::
+
+## Next Steps
+
+Congratulations! As part of this quick start, you:
+* Added the Replicated SDK to a Helm chart
+* Created a release with the Helm chart
+* Installed the release on a VM with Embedded Cluster
+* Viewed telemetry for the installed instance in the Vendor Portal
+* Created a new release to add preflight checks to the application
+* Updated the application from the Admin Console
+
+Now that you are familiar with the workflow of creating, installing, and updating releases, you can begin onboarding your own application to the Replicated Platform.
+
+To get started, see [Replicated Onboarding](replicated-onboarding).
+
+## Related Topics
+
+For more information about the Replicated Platform features mentioned in this quick start, see:
+
+* [About Distributing Helm Charts with KOTS](/vendor/helm-native-about)
+* [About Preflight Checks and Support Bundles](/vendor/preflight-support-bundle-about)
+* [About the Replicated SDK](/vendor/replicated-sdk-overview)
+* [Introduction to KOTS](/intro-kots)
+* [Managing Releases with the CLI](/vendor/releases-creating-cli)
+* [Packaging a Helm Chart for a Release](/vendor/helm-install-release)
+* [Using Embedded Cluster](/vendor/embedded-overview)
+
+## Related Tutorials
+
+For additional tutorials related to this quick start, see:
+
+* [Deploying a Helm Chart on a VM with Embedded Cluster](/vendor/tutorial-embedded-cluster-setup)
+* [Adding Preflight Checks to a Helm Chart](/vendor/tutorial-preflight-helm-setup)
+* [Deploying a Helm Chart with KOTS and the Helm CLI](/vendor/tutorial-kots-helm-setup)
\ No newline at end of file
diff --git a/docs/vendor/replicated-onboarding.mdx b/docs/vendor/replicated-onboarding.mdx
index 3db3560477..362b420b70 100644
--- a/docs/vendor/replicated-onboarding.mdx
+++ b/docs/vendor/replicated-onboarding.mdx
@@ -1,171 +1,583 @@
----
-pagination_next: null
----
+import CreateRelease from "../partials/getting-started/_create-promote-release.mdx"
+import DependencyYaml from "../partials/replicated-sdk/_dependency-yaml.mdx"
+import EcCr from "../partials/embedded-cluster/_ec-config.mdx"
+import HelmPackage from "../partials/helm/_helm-package.mdx"
+import Requirements from "../partials/embedded-cluster/_requirements.mdx"
+import SDKOverview from "../partials/replicated-sdk/_overview.mdx"
+import TestYourChanges from "../partials/getting-started/_test-your-changes.mdx"
+import UnauthorizedError from "../partials/replicated-sdk/_401-unauthorized.mdx"
-# Replicated Onboarding
+# Replicated Onboarding
-Welcome! This topic provides a checklist to help you onboard to the Replicated Platform. For more information about Replicated, see [Introduction to Replicated](../intro-replicated).
+This topic describes how to onboard applications to the Replicated Platform.
-## Best Practices and Recommendations
+## Before You Begin
-The following are Replicated's best practices and recommendations for successfully onboarding:
+This section includes guidance and prerequisites to review before you begin onboarding your application.
-* Replicated recommends that all applications are packaged with Helm. If you are relatively new to Kubernetes or Helm, start with a basic tutorial. For example, see [10 Helm Tutorials to Start your Kubernetes Journey](https://jfrog.com/blog/10-helm-tutorials-to-start-your-kubernetes-journey/) or [Tutorials](https://kubernetes.io/docs/tutorials/) in the Kubernetes documentation.
+### Best Practices and Recommendations
-* When integrating new Replicated features with an application, make changes in small iterations and test frequently by installing or upgrading the application in a development environment. This will help you to more easily identify issues and troubleshoot.
+The following are some best practices and recommendations for successfully onboarding with Replicated:
- For information about how to install, see:
- * [Installing with Embedded Cluster](/enterprise/installing-embedded)
- * [Installing with Helm](/vendor/install-with-helm)
- * [Installing with KOTS in Existing Clusters](/enterprise/installing-existing-cluster)
-
- For information about how to perform updates, see:
- * [Performing Updates in Embedded Clusters](/enterprise/updating-embedded)
- * [Performing Updates in Existing Clusters](/enterprise/updating-app-manager)
+* When integrating new Replicated features with an application, make changes in small iterations and test frequently by installing or upgrading the application in a development environment. This will help you to more easily identify issues and troubleshoot. This onboarding workflow will guide you through the process of integrating features in small iterations.
-* Create and manage releases with the Replicated CLI. For more information, see [Installing the Replicated CLI](/reference/replicated-cli-installing).
+* Use the Replicated CLI to create and manage your application and releases. Getting familiar with the Replicated CLI will also help later on when integrating Replicated workflows into your CI/CD pipelines. For more information, see [Installing the Replicated CLI](/reference/replicated-cli-installing).
-* Ask for help from the Replicated community. For more information, see [Get Help from the Community](#get-help-from-the-community).
+* These onboarding tasks assume that you will test the installation of each release on a VM with the Replicated Embedded Cluster installer _and_ in a cluster with the Replicated KOTS installer. If you do not intend to offer existing cluster installations with KOTS (for example, if you intend to support only Embedded Cluster and Helm installations for your users), then can choose to test with Embedded Cluster only.
-* Replicated also offers labs in Instruqt that provide a hands-on introduction to working with Replicated features, without needing your own sample application or development environment. To complete one or more labs before you begin the onboarding workflow, see:
- * [Distributing Your Application with Replicated](https://play.instruqt.com/embed/replicated/tracks/distributing-with-replicated?token=em_VHOEfNnBgU3auAnN): Learn how to quickly get value from the Replicated Platform for your application.
- * [Avoiding Installation Pitfalls](https://play.instruqt.com/embed/replicated/tracks/avoiding-installation-pitfalls?token=em_gJjtIzzTTtdd5RFG): Learn how to use preflight checks to avoid common installation issues and assure your customer is installing into a supported environment.
- * [Closing the Support Information Gap](https://play.instruqt.com/embed/replicated/tracks/closing-information-gap?token=em_MO2XXCz3bAgwtEca): Learn how to use support bundles to close the information gap between your customers and your support team.
+* Ask for help from the Replicated community. For more information, see [Getting Help from the Community](#community) below.
-## Get Help from the Community
+### Getting Help from the Community {#community}
The [Replicated community site](https://community.replicated.com/) is a forum where Replicated team members and users can post questions and answers related to working with the Replicated Platform. It is designed to help Replicated users troubleshoot and learn more about common tasks involved with distributing, installing, observing, and supporting their application.
Before posting in the community site, use the search to find existing knowledge base articles related to your question. If you are not able to find an existing article that addresses your question, create a new topic or add a reply to an existing topic so that a member of the Replicated community or team can respond.
-To search and participate in the Replicated community, see https://community.replicated.com/.
+To search and participate in the Replicated community, see https://community.replicated.com/.
-## Prerequisites
+### Prerequisites
-* Create an account in the Vendor Portal. You can either create a new team or join an existing team. For more information, see [Creating a Vendor Account](/vendor/vendor-portal-creating-account).
+* Create an account in the Vendor Portal. You can either create a new team or join an existing team. For more information, see [Creating a Vendor Account](vendor-portal-creating-account).
* Install the Replicated CLI. See [Installing the Replicated CLI](/reference/replicated-cli-installing).
-* Create an application in the Vendor Portal. This will be the official Vendor Portal application used by your team to create and promote both internal and customer-facing releases. See [Create an Application](/vendor/vendor-portal-manage-app#create-an-application).
-
-* Ensure that you have development environments available to test installation and upgrades with Replicated KOTS, Replicated Embedded Cluster, and Helm. For more information about the installation requirements for the Replicated installers, see [Installation Requirements](/enterprise/installing-general-requirements).
-
-* Complete a getting started tutorial to get familiar with the process of creating, installing, and iterating on releases in the Replicated Platform using a sample Helm chart. You will use this same basic workflow throughout the onboarding process to integrate and test new features with your own application.
- * [Tutorial: Deploy a Helm Chart on a VM with Embedded Cluster](/vendor/tutorial-embedded-cluster-setup)
- * [Tutorial: Deploy a Helm Chart with KOTS and the Helm CLI](/vendor/tutorial-kots-helm-setup)
-
-## Onboarding Checklist
-
-This checklist includes key Replicated Platform features to integrate with your application to onboard to the Replicated Platform.
-
-| Feature | -Description | -How to | -
|---|---|---|
| Replicated SDK | -
- Add the Replicated SDK as a dependency of your Helm chart. The Replicated SDK is a Helm chart that can be installed as a small service alongside your application. The SDK provides access to key Replicated functionality, including an in-cluster API and automatic access to insights and operational telemetry for instances running in customer environments. - |
- Packaging a Helm Chart for a Release | -
| Replicated proxy registry | -
- Connect your image registry to allow customer licenses to grant proxy access to your application's private images using the Replicated proxy registry. -To support the use of the proxy registry in Helm installations, there is an additional step to add a Kubernetes Secret to your Helm chart. - |
- - - | -
| Replicated KOTS and Replicated Embedded Cluster | -
- Add custom resources to a release to support installations with the Replicated KOTS and Replicated Embedded Cluster installers. - |
- Onboarding with KOTS | -
| Preflight checks | -
- Define preflight checks to test for system compliance during the installation process and reduce the number of support escalations. - |
- - - | -
| Support bundles | -
- Add a support bundle spec to enable customers to quickly collect and analyze troubleshooting data from their clusters to help you diagnose problems with application deployments. - |
- - - | -
| License entitlement checks | -
- Add checks for customer license entitlements before installation and during runtime. - |
- - - | -
| Alias Replicated endpoints | -
- Configure custom domains to alias the Replicated endpoints that are used for customer-facing URLs, such as |
- Using Custom Domains | -
| Custom license entitlements | -
- Configure custom license fields that are specific to a customer, such as limiting the number of active users permitted. - |
- - Managing Custom License Fields - | -
| Custom metrics | -
- Use the SDK API to send custom metrics that measure instances of your application running in online or air gap environments. -To get started, use the SDK in integration mode to develop locally without needing to make real changes in the Vendor Portal or in your environment. - |
- - Configuring Custom Metrics - | -
| Integrate with CI/CD | -
- Update your existing development and release CI/CD pipelines to automatically complete tasks such as creating and promoting releases, provisioning clusters to test installation with the Replicated Compatibility Matrix, installing releases in test environments, and more. - |
- - - | -