Skip to content

Commit

Permalink
Merge branch 'main' into jhub_apps_user
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam-D-Lewis authored Jan 28, 2025
2 parents 0be3851 + f4ca133 commit fedf7ae
Show file tree
Hide file tree
Showing 10 changed files with 95 additions and 73 deletions.
36 changes: 12 additions & 24 deletions .github/workflows/test-provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ on:
required: true
type: string

env:
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}

jobs:
test-render-providers:
# Prevents the execution of this test under the following conditions:
Expand Down Expand Up @@ -72,32 +78,14 @@ jobs:
with:
python-version: "3.11"

- name: Retrieve secret from Vault
uses: hashicorp/vault-action@v3.0.0
with:
method: jwt
url: "https://quansight-vault-public-vault-b2379fa7.d415e30e.z1.hashicorp.cloud:8200"
namespace: "admin/quansight"
role: "repository-nebari-dev-nebari-role"
secrets: |
kv/data/repository/nebari-dev/nebari/amazon_web_services/nebari-dev-ci role_name | AWS_ROLE_ARN;
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci project_id | PROJECT_ID;
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci workload_identity_provider | GCP_WORKFLOW_PROVIDER;
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci service_account_name | GCP_SERVICE_ACCOUNT;
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci client_id | ARM_CLIENT_ID;
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci tenant_id | ARM_TENANT_ID;
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci subscription_id | ARM_SUBSCRIPTION_ID;
kv/data/repository/nebari-dev/nebari/shared_secrets SPACES_ACCESS_KEY_ID | SPACES_ACCESS_KEY_ID;
kv/data/repository/nebari-dev/nebari/shared_secrets SPACES_SECRET_ACCESS_KEY | SPACES_SECRET_ACCESS_KEY;
- name: 'Authenticate to GCP'
if: ${{ matrix.provider == 'gcp' }}
uses: 'google-github-actions/auth@v1'
with:
token_format: access_token
create_credentials_file: 'true'
workload_identity_provider: ${{ env.GCP_WORKFLOW_PROVIDER }}
service_account: ${{ env.GCP_SERVICE_ACCOUNT }}
workload_identity_provider: ${{ secrets.GCP_WORKFLOW_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

- name: Set required environment variables
if: ${{ matrix.provider == 'gcp' }}
Expand All @@ -108,17 +96,17 @@ jobs:
if: ${{ matrix.provider == 'aws' }}
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
role-session-name: github-action
aws-region: us-east-1

- name: 'Azure login'
if: ${{ matrix.provider == 'azure' }}
uses: azure/login@v1
with:
client-id: ${{ env.ARM_CLIENT_ID }}
tenant-id: ${{ env.ARM_TENANT_ID }}
subscription-id: ${{ env.ARM_SUBSCRIPTION_ID }}
client-id: ${{ secrets.ARM_CLIENT_ID }}
tenant-id: ${{ secrets.ARM_TENANT_ID }}
subscription-id: ${{ secrets.ARM_SUBSCRIPTION_ID }}

- name: Install Nebari
run: |
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/test_aws_integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,10 @@ jobs:
pip install .[dev]
playwright install
- name: Retrieve secret from Vault
uses: hashicorp/vault-action@v3.0.0
with:
method: jwt
url: "https://quansight-vault-public-vault-b2379fa7.d415e30e.z1.hashicorp.cloud:8200"
namespace: "admin/quansight"
role: "repository-nebari-dev-nebari-role"
secrets: |
kv/data/repository/nebari-dev/nebari/amazon_web_services/nebari-dev-ci role_name | AWS_ROLE_ARN;
kv/data/repository/nebari-dev/nebari/cloudflare/internal-devops@quansight.com/nebari-dev-ci token | CLOUDFLARE_TOKEN;
- name: Authenticate to AWS
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ env.AWS_ROLE_ARN }}
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
role-session-name: github-action
aws-region: ${{ env.AWS_DEFAULT_REGION }}

Expand All @@ -77,3 +66,4 @@ jobs:
NEBARI_SECRET__default_images__jupyterhub: "quay.io/nebari/nebari-jupyterhub:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__jupyterlab: "quay.io/nebari/nebari-jupyterlab:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__dask_worker: "quay.io/nebari/nebari-dask-worker:${{ env.NEBARI_IMAGE_TAG }}"
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
27 changes: 7 additions & 20 deletions .github/workflows/test_azure_integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,12 @@ jobs:
conda install --quiet --yes conda-build
playwright install
- name: Retrieve secret from Vault
uses: hashicorp/vault-action@v3.0.0
with:
method: jwt
url: "https://quansight-vault-public-vault-b2379fa7.d415e30e.z1.hashicorp.cloud:8200"
namespace: "admin/quansight"
role: "repository-nebari-dev-nebari-role"
secrets: |
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci client_id | ARM_CLIENT_ID;
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci tenant_id | ARM_TENANT_ID;
kv/data/repository/nebari-dev/nebari/azure/nebari-dev-ci/github-nebari-dev-repo-ci subscription_id | ARM_SUBSCRIPTION_ID;
kv/data/repository/nebari-dev/nebari/cloudflare/internal-devops@quansight.com/nebari-dev-ci token | CLOUDFLARE_TOKEN;
- name: 'Azure login'
uses: azure/login@v2
with:
client-id: ${{ env.ARM_CLIENT_ID }}
tenant-id: ${{ env.ARM_TENANT_ID }}
subscription-id: ${{ env.ARM_SUBSCRIPTION_ID }}
client-id: ${{ secrets.ARM_CLIENT_ID }}
tenant-id: ${{ secrets.ARM_TENANT_ID }}
subscription-id: ${{ secrets.ARM_SUBSCRIPTION_ID }}

- name: Integration Tests
run: |
Expand All @@ -78,8 +65,8 @@ jobs:
NEBARI_SECRET__default_images__jupyterhub: "quay.io/nebari/nebari-jupyterhub:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__jupyterlab: "quay.io/nebari/nebari-jupyterlab:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__dask_worker: "quay.io/nebari/nebari-dask-worker:${{ env.NEBARI_IMAGE_TAG }}"
ARM_CLIENT_ID: ${{ env.ARM_CLIENT_ID }}
ARM_TENANT_ID: ${{ env.ARM_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ env.ARM_SUBSCRIPTION_ID }}
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_USE_OIDC: "true"
CLOUDFLARE_TOKEN: ${{ env.CLOUDFLARE_TOKEN }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
19 changes: 4 additions & 15 deletions .github/workflows/test_gcp_integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,24 +50,11 @@ jobs:
pip install .[dev]
playwright install
- name: Retrieve secret from Vault
uses: hashicorp/vault-action@v3.0.0
with:
method: jwt
url: "https://quansight-vault-public-vault-b2379fa7.d415e30e.z1.hashicorp.cloud:8200"
namespace: "admin/quansight"
role: "repository-nebari-dev-nebari-role"
secrets: |
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci project_id | PROJECT_ID;
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci workload_identity_provider | GCP_WORKFLOW_PROVIDER;
kv/data/repository/nebari-dev/nebari/google_cloud_platform/nebari-dev-ci/github-nebari-dev-repo-ci service_account_name | GCP_SERVICE_ACCOUNT;
kv/data/repository/nebari-dev/nebari/cloudflare/internal-devops@quansight.com/nebari-dev-ci token | CLOUDFLARE_TOKEN;
- name: 'Authenticate to GCP'
uses: 'google-github-actions/auth@v1'
with:
workload_identity_provider: ${{ env.GCP_WORKFLOW_PROVIDER }}
service_account: ${{ env.GCP_SERVICE_ACCOUNT }}
workload_identity_provider: ${{ secrets.GCP_WORKFLOW_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}

- name: Set required environment variables
run: |
Expand All @@ -81,3 +68,5 @@ jobs:
NEBARI_SECRET__default_images__jupyterhub: "quay.io/nebari/nebari-jupyterhub:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__jupyterlab: "quay.io/nebari/nebari-jupyterlab:${{ env.NEBARI_IMAGE_TAG }}"
NEBARI_SECRET__default_images__dask_worker: "quay.io/nebari/nebari-dask-worker:${{ env.NEBARI_IMAGE_TAG }}"
PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
34 changes: 34 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,40 @@ This file is copied to nebari-dev/nebari-docs using a GitHub Action. -->

---

## Release 2025.1.1 - January 27, 2025

> NOTE: In this release, we have updated our maximum supported Kubernetes version from
> 1.29 to 1.31. we strongly recommend updating the Kubernetes version
> specified in your nebari-config YAML file and redeploying to apply the changes.
>
> Remember that Kubernetes minor versions must be upgraded incrementally (1.29 → 1.30 →
> 1.31).
## What's Changed
* fix bug to allow --import-plugin to work by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2864
* Add azure kubernetes policy add-on by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2888
* Yaml config sets by @Adam-D-Lewis in https://github.com/nebari-dev/nebari/pull/2876
* Add ability to list user installed plugins from the CLI by @soapy1 in https://github.com/nebari-dev/nebari/pull/2891
* [AUTO] Update CLI doc by @nebari-sensei in https://github.com/nebari-dev/nebari/pull/2841
* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/nebari-dev/nebari/pull/2896
* [ENH] - Include "--attempt-fixes" flag from Nebari upgrade CLI in upgrade steps logic by @smokestacklightnin in https://github.com/nebari-dev/nebari/pull/2839
* add authorized ip range variable for azure by @dcmcand in https://github.com/nebari-dev/nebari/pull/2880
* Upgrade conda-store to 2024.11.2 by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2815
* Handle default value for azure addon policy by @viniciusdc in https://github.com/nebari-dev/nebari/pull/2905
* Update conda-store-ui tests for updated page verbiage by @soapy1 in https://github.com/nebari-dev/nebari/pull/2911
* Remove unintended character at the end of the TF_LOG variable by @marcelovilla in https://github.com/nebari-dev/nebari/pull/2912
* Update k8s max version by @dcmcand in https://github.com/nebari-dev/nebari/pull/2903
* [ENH] - Use GitHub secrets instead of Vault by @smokestacklightnin in https://github.com/nebari-dev/nebari/pull/2889
* adds info command text display & change the order of command display by @kernel-loophole in https://github.com/nebari-dev/nebari/pull/2916
* [AUTO] Update CLI doc by @nebari-sensei in https://github.com/nebari-dev/nebari/pull/2921

## New Contributors
* @soapy1 made their first contribution in https://github.com/nebari-dev/nebari/pull/2891
* @smokestacklightnin made their first contribution in https://github.com/nebari-dev/nebari/pull/2839
* @kernel-loophole made their first contribution in https://github.com/nebari-dev/nebari/pull/2916

**Full Changelog**: https://github.com/nebari-dev/nebari/compare/2024.12.1...2025.1.1

## Release 2024.12.1 - December 13, 2024

> NOTE: Support for DigitalOcean has been removed in this release. If you plan to deploy Nebari on DigitalOcean, you first need to independently create a Kubernetes cluster and then use the `existing` deployment option.
Expand Down
1 change: 1 addition & 0 deletions docs-sphinx/cli.html
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ <h4>keycloak-api<a class="headerlink" href="#nebari-dev-keycloak-api" title="Lin
</section>
<section id="nebari-info">
<h3>info<a class="headerlink" href="#nebari-info" title="Link to this heading"></a></h3>
<p>Display information about installed Nebari plugins and their configurations.</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>nebari<span class="w"> </span>info<span class="w"> </span><span class="o">[</span>OPTIONS<span class="o">]</span>
</pre></div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/_nebari/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
class OrderCommands(TyperGroup):
def list_commands(self, ctx: typer.Context):
"""Return list of commands in the order appear."""
return list(self.commands)
return list(self.commands)[::-1]


def version_callback(value: bool):
Expand Down
2 changes: 1 addition & 1 deletion src/_nebari/constants.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CURRENT_RELEASE = "2024.12.1"
CURRENT_RELEASE = "2025.1.1"

HELM_VERSION = "v3.15.3"
KUSTOMIZE_VERSION = "5.4.3"
Expand Down
3 changes: 3 additions & 0 deletions src/_nebari/subcommands/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ def nebari_subcommand(cli: typer.Typer):

@cli.command()
def info(ctx: typer.Context):
"""
Display information about installed Nebari plugins and their configurations.
"""
from nebari.plugins import nebari_plugin_manager

rich.print(f"Nebari version: {__version__}")
Expand Down
30 changes: 30 additions & 0 deletions src/_nebari/upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -1626,6 +1626,36 @@ def _version_specific_upgrade(
return config


class Upgrade_2025_1_1(UpgradeStep):
version = "2025.1.1"

@override
def _version_specific_upgrade(
self, config, start_version, config_filename: Path, *args, **kwargs
):
rich.print("\n ⚠️ Upgrade Warning ⚠️")

text = textwrap.dedent(
"""
In this release, we have updated our maximum supported Kubernetes version from 1.29 to 1.31.
Please note that Nebari will NOT automatically upgrade your running Kubernetes version as part of
the redeployment process.
After completing this upgrade step, we strongly recommend updating the Kubernetes version
specified in your nebari-config YAML file and redeploying to apply the changes. Remember that
Kubernetes minor versions must be upgraded incrementally (1.29 → 1.30 → 1.31).
For more information on upgrading Kubernetes for your specific cloud provider, please visit:
https://www.nebari.dev/docs/how-tos/kubernetes-version-upgrade
"""
)

rich.print(text)
rich.print("Ready to upgrade to Nebari version [green]2025.1.1[/green].")

return config


__rounded_version__ = str(rounded_ver_parse(__version__))

# Manually-added upgrade steps must go above this line
Expand Down

0 comments on commit fedf7ae

Please sign in to comment.