diff --git a/docs/docs/explanations/advanced-custom-settings.md b/docs/docs/explanations/advanced-custom-settings.md index 25b24e99c..d004987fd 100644 --- a/docs/docs/explanations/advanced-custom-settings.md +++ b/docs/docs/explanations/advanced-custom-settings.md @@ -143,37 +143,54 @@ This is quite useful for pinning the IP Address of the load balancer. -Using terraform overrides you can also deploy inside a Virtual Private Network (VPN). +You can deploy your cluster into a Virtual Private Network (VPN) or Virtual Network (VNET). An example configuration for Azure is given below: ```yaml azure: - terraform_overrides: - private_cluster_enabled: true - vnet_subnet_id: '/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/' region: Central US + ... + vnet_subnet_id: '/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/' +``` + +If you want the AKS cluster to be [private cluster](https://learn.microsoft.com/en-us/azure/aks/private-clusters?tabs=azure-portal). + +For extra security, you can deploy your cluster from an [Azure Bastion host](https://learn.microsoft.com/en-us/azure/aks/operator-best-practices-network#securely-connect-to-nodes-through-a-bastion-host) (or jump host), making the Kubernetes API only accessible from this one secure machine. You will likely need to also modify the network_profile as follows: + +```yaml +azure: + region: Central US + private_cluster_enabled: true + vnet_subnet_id: '/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/' + network_profile: + service_cidr: "10.0.2.0/24" # how many IPs would you like to reserve for Nebari + network_plugin: "azure" + network_policy: "azure" + dns_service_ip: "10.0.2.10" # must be within the `service_cidr` range from above + docker_bridge_cidr: "172.17.0.1/16" # no real need to change this + ``` + -Using terraform overrides you can also deploy inside a [Virtual Private Cloud (VPC) in GCP](https://cloud.google.com/vpc/docs/overview), making the Kubernetes cluster private. Here is an example configuration: +You can also deploy inside a [Virtual Private Cloud (VPC) in GCP](https://cloud.google.com/vpc/docs/overview), making the Kubernetes cluster private. Here is an example configuration: ```yaml google_cloud_platform: - terraform_overrides: - networking_mode: "VPC_NATIVE" - network: "your-vpc-name" - subnetwork: "your-vpc-subnet-name" - private_cluster_config: - enable_private_nodes: true - enable_private_endpoint: true - master_ipv4_cidr_block: "172.16.0.32/28" - master_authorized_networks_config: - cidr_block: null - display_name: null + networking_mode: "VPC_NATIVE" + network: "your-vpc-name" + subnetwork: "your-vpc-subnet-name" + private_cluster_config: + enable_private_nodes: true + enable_private_endpoint: true + master_ipv4_cidr_block: "172.16.0.32/28" + master_authorized_networks_config: + cidr_block: null + display_name: null ``` As the name suggests the cluster will be private, which means it would not have access to the internet - not ideal for deploying pods in the cluster. Therefore, we need diff --git a/docs/docs/faq.md b/docs/docs/faq.md index 293fd49d3..b06b1d8cb 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -12,7 +12,7 @@ and so which way depends on your use-case. The longer answer: -- For global environments, you can specify the environment in `nebari_config.yml`, and it will be made available for all users and services (for example, CDSDashboards). +- For global environments, you can specify the environment in `nebari-config.yml`, and it will be made available for all users and services. - By comparison, creating the environments through conda-store will provide more granular control over certain settings and permissions. As Nebari and conda-store mature, the intent is to migrate exclusively to conda-store for environment creation and management. @@ -30,6 +30,10 @@ There are drop-in replacements for `distributed`, `dask`, and `dask-gateway` wit ## What packages are needed in your environment to create a dashboard? +:::info +CDS Dashboards has been deprecated in version `2023.9.1`. +::: + When deploying an app via CDS Dashboards, you will always need to have `cdsdashboards-singleuser` installed in your environment. This allows your environment to show up on the environment options menu when creating your app. Furthermore, with each framework, you will need to make sure that the specific framework you are deploying is installed. You will need to install `streamlit` for a streamlit app, `panel` for a panel app, etc. diff --git a/docs/docs/how-tos/nebari-aws.md b/docs/docs/how-tos/nebari-aws.md index a573470f0..ea48e984b 100644 --- a/docs/docs/how-tos/nebari-aws.md +++ b/docs/docs/how-tos/nebari-aws.md @@ -152,6 +152,10 @@ nebari init aws --project projectname \ You will be prompted to enter values for some choices above if they are absent from the command line arguments (for example, project name and domain) ::: +:::note +Nebari can also be deployed into an [AWS GovCloud](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/whatis.html) account, you simply need to ensure you specify the appropriate AWS GovCloud region in the `amazon_web_services.region` field of your `nebari-config.yaml`. +::: + Once `nebari init` is executed, you should then be able to see the following output: ```bash diff --git a/docs/docs/tutorials/cost-estimate-report.md b/docs/docs/tutorials/cost-estimate-report.md deleted file mode 100644 index 3d7425175..000000000 --- a/docs/docs/tutorials/cost-estimate-report.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -id: cost-estimate-report -title: Create a cost estimate report -description: A guide to Nebari's cost estimate tool ---- - -## Introduction - -[Infracost](https://www.infracost.io/) is a tool that enables developers to analyze their cloud cost estimates using their Terraform templates. Nebari wraps the `infracost` command-line interface, which is free and open-source, to provide cost estimates for your Nebari deployments across major cloud providers. - -In this tutorial you'll learn to generate a cost report for your Nebari deployment, which you can share with other users and groups through an Infracost link. You will also be looking into how Infracost can be configured on your local machine. - -Infracost natively supports Amazon Web Services, Azure, and Google Cloud Platform. For this tutorial, we will be using the Google Cloud Platform (GCP) deployment to generate the cost report. - -## Step 1- Setting up Infracost - -1. To install the `infracost` command-line interface, run the following command on your terminal: - - ```bash - curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh - ``` - - The script downloads the CLI based on your operating-system/architecture and installs it under `/usr/local/bin`. - -2. After installation, you can verify `infracost` was successfully installed via the following command: - - ```sh - infracost --version - ``` - -3. Next, you'll need to configure the API key for Infracost to enable generating cost reports and dashboards. Nebari's cost estimate feature requires this API key. To generate the key, run the following command on your terminal: - - ```sh - infracost register - ``` - -4. You will then need to validate your API key with the following command: - - ```sh - infracost configure get api_key - ``` - -You are now ready to run the cost estimate tool. - -## Step 2 - Generating the cost estimates - -1. To generate the cost estimate, run the following command: - - ```sh - nebari cost-estimate - ``` - -The Nebari cost estimate tool will look for the `stages` directory within your deployment file structure and analyze the Terraform templates to generate a cost report. It will consist of two tables describing the cost and resources breakdown, a publicly-accessible Infracost dashboard URL, and additional documentation on the edge cases that the cost estimate tool currently misses. - -The report should look something like this: - -```sh title="Sample Infracost generated report" - Cost Breakdown -┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┓ -┃ Name ┃ Cost ($) ┃ -┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━┩ -│ Total Monthly Cost │ XX │ -│ Total Hourly Cost │ XX │ -└────────────────────┴──────────┘ - Resource Breakdown -┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓ -┃ Name ┃ Number ┃ -┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩ -│ Total Detected Costs │ X │ -│ Total Supported Resources │ X │ -│ Total Un-Supported Resources │ X │ -│ Total Non-Priced Resources │ X │ -│ Total Usage-Priced Resources │ X │ -└──────────────────────────────┴────────┘ -Access the dashboard here: -https://dashboard.infracost.io/share/XXXXXXXXXX - -Nebari relies upon node pools which is a usage resource that doesn't get captured in -the above report. A general node pool will always have one node running will add -an additional charge. Please check with your cloud provider to see the -associated costs with node pools. - - • Total Monthly Cost: The total monthly cost of the deployment of supported - resources. - • Total Hourly Cost: The total hourly cost of the deployment of supported - resources. - • Total Detected Costs: The total number of resources detected by Infracost. - • Total Supported Resources: The total number of resources supported by - Infracost. - • Total Unsupported Resources: The total number of resources unsupported by - Infracost. - • Total Non-Priced Resources: The total number of resources that are not - priced. - • Total Usage-Priced Resources: The total number of resources that are priced - based on usage. -``` - -You can share the URL of your Infracost dashboard `https://dashboard.infracost.io/share/XXXXXXXXXX` -across your team for better insights into your cloud costs breakdown. - -:::note -The Infracost dashboards are enabled by default for users. This is done via the Infracost's `INFRACOST_ENABLE_DASHBOARD` environment variable, which is set `true` by default. -::: - -You can run the Nebari cost estimate tool outside your Nebari directory by specifying the location of your deployment's stages directory: - -```sh -# where your deployment stage directory is -nebari cost-estimate --path= -``` - -## A note on node pools costs - -The cost estimate report is statically analyzed via Terraform templates stored in the `stages` subdirectory. The actual cloud costs are subject to change. Nebari relies upon node pools, a useful resource that doesn't get captured in the above report. A general node pool will always have one node running - which incurs in an additional cost. - -For example, using a `m5.2xlarge` instance type on AWS for the general node pool (currently the default) will cost $276.84 additional per month. Please check with your cloud provider to see the associated costs with node pools. diff --git a/docs/docs/tutorials/creating-cds-dashboard.md b/docs/docs/tutorials/creating-cds-dashboard.md index ec82adfd2..3a9aa92df 100644 --- a/docs/docs/tutorials/creating-cds-dashboard.md +++ b/docs/docs/tutorials/creating-cds-dashboard.md @@ -8,10 +8,8 @@ description: Quickly build and deploy a panel and CDS Dashboards :::danger -CDS Dashboards will be deprecated soon. -Nebari 2023.7.1 will be the last release with support for CDS Dashboards integration. -A new dashboard sharing mechanism added in the near future, but some releases in the interim will not have dashboard sharing capabilities. - +CDS Dashboards has been deprecated in `2023.9.1`. +Nebari 2023.7.1 is the last release that support CDS Dashboards. A new dashboard sharing mechanism will be added in the near future. ::: ## Introduction diff --git a/docs/docs/welcome.mdx b/docs/docs/welcome.mdx index fac188bbe..50bd4a4b3 100644 --- a/docs/docs/welcome.mdx +++ b/docs/docs/welcome.mdx @@ -47,8 +47,6 @@ If you are setting up Nebari and managing the platform for your organization or 🔸 After setup, [provide your team members access to your Nebari instance by configuring Keycloak][configure-keycloak]. -🔸 Learn to [estimate the cost of your cloud resources](./tutorials/cost-estimate-report) to inform future configuratios and allocations. - 🔸 If you face issues or challenges, check out the [Troubleshooting section](./troubleshooting) and [GitHub Discussions][github-discussions] to learn from the community. You can also look into [debugging your deployment](./how-tos/debug-nebari). 🔸 As a good security practice, [create and keep a manual backup](./how-tos/manual-backup) of your configurations and your team's work. diff --git a/docs/sidebars.js b/docs/sidebars.js index 3678291ca..9cddbe34c 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -46,7 +46,6 @@ module.exports = { "tutorials/creating-cds-dashboard", "tutorials/creating-new-environments", "tutorials/kbatch", - "tutorials/cost-estimate-report", "tutorials/jupyter-scheduler", "tutorials/argo-workflows-walkthrough", ],