diff --git a/.github/workflows/deploy-grafana-dashboards.yaml b/.github/workflows/deploy-grafana-dashboards.yaml index a64a38e63f..58728a372c 100644 --- a/.github/workflows/deploy-grafana-dashboards.yaml +++ b/.github/workflows/deploy-grafana-dashboards.yaml @@ -16,7 +16,6 @@ jobs: - cluster_name: 2i2c-uk - cluster_name: awi-ciroh - cluster_name: callysto - - cluster_name: carbonplan - cluster_name: catalystproject-africa - cluster_name: catalystproject-latam - cluster_name: cloudbank diff --git a/.github/workflows/deploy-hubs.yaml b/.github/workflows/deploy-hubs.yaml index f91acf5e3e..7290b609d1 100644 --- a/.github/workflows/deploy-hubs.yaml +++ b/.github/workflows/deploy-hubs.yaml @@ -182,7 +182,6 @@ jobs: outputs: failure_2i2c: "${{ env.failure_2i2c }}" failure_2i2c-uk: "${{ env.failure_2i2c-uk }}" - failure_carbonplan: "${{ env.failure_carbonplan }}" failure_cloudbank: "${{ env.failure_cloudbank }}" failure_leap: "${{ env.failure_leap }}" failure_meom-ige: "${{ env.failure_meom-ige }}" diff --git a/config/clusters/carbonplan/cluster.yaml b/config/clusters/carbonplan/cluster.yaml deleted file mode 100644 index cdfd40b9a1..0000000000 --- a/config/clusters/carbonplan/cluster.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: carbonplan -provider: aws # https://631969445205.signin.aws.amazon.com/console -account: "631969445205" -aws: - key: enc-deployer-credentials.secret.json - clusterType: eks - clusterName: carbonplanhub - region: us-west-2 -support: - helm_chart_values_files: - - support.values.yaml - - enc-support.secret.values.yaml -hubs: - - name: staging - display_name: "Carbon Plan (AWS, staging)" - domain: staging.carbonplan.2i2c.cloud - helm_chart: daskhub - helm_chart_values_files: - # The order in which you list files here is the order the will be passed - # to the helm upgrade command in, and that has meaning. Please check - # that you intend for these files to be applied in this order. - - common.values.yaml - - staging.values.yaml - - enc-staging.secret.values.yaml - - name: prod - display_name: "Carbon Plan (AWS, prod)" - domain: carbonplan.2i2c.cloud - helm_chart: daskhub - helm_chart_values_files: - # The order in which you list files here is the order the will be passed - # to the helm upgrade command in, and that has meaning. Please check - # that you intend for these files to be applied in this order. - - common.values.yaml - - prod.values.yaml - - enc-prod.secret.values.yaml diff --git a/config/clusters/carbonplan/common.values.yaml b/config/clusters/carbonplan/common.values.yaml deleted file mode 100644 index f2aaaecd4f..0000000000 --- a/config/clusters/carbonplan/common.values.yaml +++ /dev/null @@ -1,255 +0,0 @@ -basehub: - nfs: - pv: - # from https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html - mountOptions: - - rsize=1048576 - - wsize=1048576 - - timeo=600 - - soft # We pick soft over hard, so NFS lockups don't lead to hung processes - - retrans=2 - - noresvport - serverIP: fs-8a4e4f8d.efs.us-west-2.amazonaws.com - baseShareName: / - jupyterhub: - custom: - 2i2c: - add_staff_user_ids_to_admin_users: true - add_staff_user_ids_of_type: "github" - homepage: - templateVars: - org: - name: Carbon Plan - logo_url: https://pbs.twimg.com/profile_images/1262387945971101697/5q_X3Ruk_400x400.jpg - url: https://carbonplan.org - designed_by: - name: 2i2c - url: https://2i2c.org - operated_by: - name: 2i2c - url: https://2i2c.org - funded_by: - name: Carbon Plan - url: https://carbonplan.org - singleuser: - serviceAccountName: cloud-user-sa - image: - name: carbonplan/trace-python-notebook - profileList: - # The mem-guarantees are here so k8s doesn't schedule other pods - # on these nodes. - - display_name: "Small: r5.large" - description: "~2 CPU, ~15G RAM" - slug: "small" - default: true - profile_options: &profile_options - image: - display_name: Image - choices: - benchmark-maps: - display_name: Benchmark Maps - slug: "carbonplan" - kubespawner_override: - # Source: https://github.com/carbonplan/benchmark-maps - image: quay.io/carbonplan/benchmark-maps:latest - carbonplan-notebook: - display_name: Carbonplan Notebook - default: true - slug: "carbonplan" - kubespawner_override: - # Source: https://github.com/carbonplan/envs - image: quay.io/carbonplan/carbonplan-notebook:latest - forest-offset-fires: - display_name: Forest Offset Fires - slug: forest-offset-fires - kubespawner_override: - image: quay.io/carbonplan/forest-offsets-fires:latest - tensorflow: - display_name: Pangeo Tensorflow ML Notebook - slug: "tensorflow" - kubespawner_override: - image: "pangeo/ml-notebook:2023.10.24" - base-notebook: - display_name: Pangeo Base Notebook - slug: "base-notebook" - kubespawner_override: - image: "pangeo/base-notebook:2023.10.24" - pangeo-notebook: - display_name: Pangeo Notebook - slug: "pangeo-notebook" - kubespawner_override: - image: "pangeo/pangeo-notebook:2023.10.24" - kubespawner_override: - # Expllicitly unset mem_limit, so it overrides the default memory limit we set in - # basehub/values.yaml - mem_limit: null - mem_guarantee: 12G - node_selector: - node.kubernetes.io/instance-type: r5.large - - display_name: "Medium: r5.xlarge" - description: "~4 CPU, ~30G RAM" - profile_options: *profile_options - kubespawner_override: - mem_limit: null - mem_guarantee: 29G - node_selector: - node.kubernetes.io/instance-type: r5.xlarge - - display_name: "Large: r5.2xlarge" - description: "~8 CPU, ~60G RAM" - profile_options: *profile_options - kubespawner_override: - mem_limit: null - mem_guarantee: 60G - node_selector: - node.kubernetes.io/instance-type: r5.2xlarge - - display_name: "Huge: r5.8xlarge" - description: "~32 CPU, ~256G RAM" - profile_options: *profile_options - kubespawner_override: - mem_limit: null - mem_guarantee: 240G - node_selector: - node.kubernetes.io/instance-type: r5.8xlarge - - display_name: "Very Huge: x1.16xlarge" - description: "~64 CPU, ~976G RAM" - profile_options: *profile_options - kubespawner_override: - mem_limit: null - mem_guarantee: 940G - node_selector: - node.kubernetes.io/instance-type: x1.16xlarge - - display_name: "Very Very Huge: x1.32xlarge" - description: "~128 CPU, ~1952G RAM" - profile_options: *profile_options - kubespawner_override: - mem_limit: null - mem_guarantee: 1900G - node_selector: - node.kubernetes.io/instance-type: x1.32xlarge - - display_name: "GPU" - description: | - ~4CPUs, Nvidia T4 GPU, 14G of RAM. - profile_options: - image: - display_name: Image - choices: - tensorflow: - display_name: Pangeo Tensorflow ML Notebook - slug: "tensorflow" - kubespawner_override: - image: "pangeo/ml-notebook:2023.02.27" - pytorch: - display_name: Pangeo PyTorch ML Notebook - default: true - slug: "pytorch" - kubespawner_override: - image: "pangeo/pytorch-notebook:2023.02.27" - benchmark-maps: - display_name: Benchmark Maps - slug: "carbonplan" - kubespawner_override: - # Source: https://github.com/carbonplan/benchmark-maps - image: quay.io/carbonplan/benchmark-maps:latest - kubespawner_override: - environment: - NVIDIA_DRIVER_CAPABILITIES: compute,utility - mem_limit: null - extra_resource_limits: - nvidia.com/gpu: "1" - mem_guarantee: 14G - node_selector: - node.kubernetes.io/instance-type: g4dn.xlarge - scheduling: - userScheduler: - enabled: true - proxy: - chp: - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 1 - memory: 512Mi - hub: - resources: - requests: - cpu: 100m - memory: 512Mi - limits: - cpu: 1 - memory: 1Gi - allowNamedServers: true - config: - JupyterHub: - authenticator_class: cilogon - CILogonOAuthenticator: - allowed_idps: - http://github.com/login/oauth/authorize: - default: true - username_derivation: - username_claim: "preferred_username" - OAuthenticator: - # WARNING: Don't use allow_existing_users with config to allow an - # externally managed group of users, such as - # GitHubOAuthenticator.allowed_organizations, as it breaks a - # common expectations for an admin user. - # - # The broken expectation is that removing a user from the - # externally managed group implies that the user won't have - # access any more. In practice the user will still have - # access if it had logged in once before, as it then exists - # in JupyterHub's database of users. - # - allow_existing_users: True - Authenticator: - # WARNING: Removing a user from admin_users or allowed_users doesn't - # revoke admin status or access. - # - # OAuthenticator.allow_existing_users allows any user in the - # JupyterHub database of users able to login. This includes - # any previously logged in user or user previously listed in - # allowed_users or admin_users, as such users are added to - # JupyterHub's database on startup. - # - # To revoke admin status or access for a user when - # allow_existing_users is enabled, first remove the user from - # admin_users or allowed_users, then deploy the change, and - # finally revoke the admin status or delete the user via the - # /hub/admin panel. - # - admin_users: - - maxrjones - -dask-gateway: - traefik: - resources: - requests: - cpu: 0.5 - memory: 512Mi - limits: - cpu: 2 - memory: 4Gi - controller: - resources: - requests: - cpu: 0.5 - memory: 512Mi - limits: - cpu: 2 - memory: 4Gi - gateway: - backend: - scheduler: - extraPodConfig: - serviceAccountName: cloud-user-sa - worker: - extraPodConfig: - serviceAccountName: cloud-user-sa - resources: - requests: - cpu: 0.5 - memory: 512Mi - limits: - cpu: 2 - memory: 4Gi diff --git a/config/clusters/carbonplan/enc-deployer-credentials.secret.json b/config/clusters/carbonplan/enc-deployer-credentials.secret.json deleted file mode 100644 index 47a5fbbb3d..0000000000 --- a/config/clusters/carbonplan/enc-deployer-credentials.secret.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "AccessKey": { - "AccessKeyId": "ENC[AES256_GCM,data:al0s8YCkle85pguzIGCzFFOiS28=,iv:/KifdsAttkhV0GYNsYsNNMlCaJTNyqoNpVuZ4DDrTsE=,tag:WRBj1WZmrrm10vCMv6+Z0Q==,type:str]", - "SecretAccessKey": "ENC[AES256_GCM,data:sdJC4HrDKoPwFwycESdoLl/IYNdY1hX+cp6QPDJheAxMM70OrmW7EQ==,iv:D8ihv0tO91q/2FS9I8Ruy9xG/J+1FkHypCDQNmqTosQ=,tag:NISFPYlrBs9HMjWCzXm5aw==,type:str]", - "UserName": "ENC[AES256_GCM,data:0FObrzV9PIGBED65pw61//FuOjJicck=,iv:UXMhO5XGVXcJGZTQMtLNOJdG7WZh+EbS2VNcWoef6A4=,tag:Qoq4z5eSHBZAEHek+pHT3Q==,type:str]" - }, - "sops": { - "kms": null, - "gcp_kms": [ - { - "resource_id": "projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs", - "created_at": "2021-12-15T13:46:57Z", - "enc": "CiQA4OM7eFuB8u3cx5iw89KqzlzdyNXWBhwxBi4h43agspUXpgcSSQAZvYDZ/ltRKEi0dhuvDnmvvT2B5axUG1JQa6icIFO+XvApmbii2psG3cmyTEsZ2bJj7aP37qQHSSZedD8tOsSSGbFWJEnFXzE=" - } - ], - "azure_kv": null, - "hc_vault": null, - "age": null, - "lastmodified": "2021-12-15T13:46:58Z", - "mac": "ENC[AES256_GCM,data:HAmrHlFs7ptLEQQYpWNp+Dynw7SEXa3fMu8dBQqzm2/N7cgMPfH6P8ATsJ48FpVZ+mgkpxh/ynsmT7n+XTozTgliV4+GqvQ6dVNGx9V7B2ojqefJeQfQixRN3aLcVWQzkCx0stxBUTtj31JHxIrqyZCsvMmsB2Nh5FkHMiOSHbI=,iv:surqqycx42e/zv3ykYPzJ0XyO83/1jBY5nAGOTWvglk=,tag:K+CAfTxTHq4qcKlBDHqZVA==,type:str]", - "pgp": null, - "unencrypted_suffix": "_unencrypted", - "version": "3.7.1" - } -} \ No newline at end of file diff --git a/config/clusters/carbonplan/enc-grafana-token.secret.yaml b/config/clusters/carbonplan/enc-grafana-token.secret.yaml deleted file mode 100644 index a43e1fc78f..0000000000 --- a/config/clusters/carbonplan/enc-grafana-token.secret.yaml +++ /dev/null @@ -1,15 +0,0 @@ -grafana_token: ENC[AES256_GCM,data:b7qXzq1dhyQ6soQ0Mgc6GmPDpLjUeW7wjCQySGP+fxGCErIaJv3VWTtJ9AwluA==,iv:hHtoYhwmnYkdimGWrnCQM3VfGzgNCO+JJQmVtJdw6Hs=,tag:gtYdCERBitJz5jdFMGP25A==,type:str] -sops: - kms: [] - gcp_kms: - - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs - created_at: "2022-11-24T12:31:50Z" - enc: CiUA4OM7eCdk7ahwDlGRyIKHJWbWPKNfssNPw82HPUP/Zr2iiRdXEkkA+0T9hcB/6aZgFMu10Bfk6yuSlIICorOqk579MEn/hCYJ75v+IM+/OiLWHinzkNfANXo8rfN4Euu+Y9XSBQKyoBzdbnAJpw1r - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2022-11-24T12:31:50Z" - mac: ENC[AES256_GCM,data:SFFmU454wN4+utIT7gBfcGBs6Z2n9Nqr4VWZp5lUglWtKZpU+Iy1D/pUkZKNtkEKNMIEh5aPOukzJU/mB+Nfw9C6drwfRInxE5mrJ8IUbOzbtymYFyXguDvCDNuaqq1Hc3loRvcsEgiHEvzTwVEAB+QzvWcGg4zhbnjmIGt7wIw=,iv:bVurJbaQGdmBTnWxbCoziIHOkQVqDzxiIIA+f7ocF5c=,tag:qOa1ss5ArSGQkQwLTFe8+A==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.7.3 diff --git a/config/clusters/carbonplan/enc-prod.secret.values.yaml b/config/clusters/carbonplan/enc-prod.secret.values.yaml deleted file mode 100644 index 52111e99f1..0000000000 --- a/config/clusters/carbonplan/enc-prod.secret.values.yaml +++ /dev/null @@ -1,21 +0,0 @@ -basehub: - jupyterhub: - hub: - config: - CILogonOAuthenticator: - client_id: ENC[AES256_GCM,data:/4HJhFT25M7ndaNmZxsLS0yiUk9NcK3nf/ssu955tl0Zv5P3byfvv6O8yZZFiiGC2iDs,iv:6SOLvSpzaVtWnLnevTFqxAvbGo72ltdSf2w0fjXWYfs=,tag:vuCGGSxb7cvycCds2cbPOQ==,type:str] - client_secret: ENC[AES256_GCM,data:vWWpb9s3IlfFc4knSxKZf3mKv6e+7T7UBV5Hvfgv8l0wRAi5K4gNdvqii36KnXKZGbWnpiteyJLM5YQG0/jb4+IVTNwP9Z7xPgLnYFIYfdN5X8korW8=,iv:fG0I2Ml/t4SXeWTFIBCK3Qr/KNmD1oyw1H/OJ/Yr0h4=,tag:PolCnlCTjbWUSCLHWM9XrQ==,type:str] -sops: - kms: [] - gcp_kms: - - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs - created_at: "2023-03-10T14:14:44Z" - enc: CiUA4OM7eD4iOZT4U7dV7NF3Qz+HFISftGGIJZe/pjwxdAVjKwB9EkkALQgViLUlYBZm/1bByIkZRr8hJuququgDwHgT2RdjuY+rZ8bp0sUMiMhKZZsSksndfUdvLxTNqaNoytb0mG8aX6dIC2OkIvLY - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2023-03-10T14:14:44Z" - mac: ENC[AES256_GCM,data:NgmHdg0us7qAkwUDvHuVguESVDEbypia8EurIjnYwJQl+LNeB94Mh9e5bozKm8Q0kNG+BehfVdHAMD7zp4EHQNK5pLern+cMSqFbYQHo5mmtEfSLwGuS6UT9fBqyz6u8QBOeT9DXmLzSpkM4jBVd2usGocJfCWB+XbVifufIB6s=,iv:/84ExBaYTMC+MQgjjTjROCJ4d7o2Tr1Il7aERq57Sbg=,tag:istl5p8nT/78L0zle5FA8Q==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.7.3 diff --git a/config/clusters/carbonplan/enc-staging.secret.values.yaml b/config/clusters/carbonplan/enc-staging.secret.values.yaml deleted file mode 100644 index 7295a07941..0000000000 --- a/config/clusters/carbonplan/enc-staging.secret.values.yaml +++ /dev/null @@ -1,21 +0,0 @@ -basehub: - jupyterhub: - hub: - config: - CILogonOAuthenticator: - client_id: ENC[AES256_GCM,data:RhYGqIFvGPOq4aHJSRz2pGDH8YLOQzg+NFuObc9eazFGpM+C9SRI4TEZWfks/39PD88=,iv:VVd35loojo3vQIF/92EHonFae+x85xNYKjUucsbckkI=,tag:Tqag3Y0n0z7nGXwMmVYEFQ==,type:str] - client_secret: ENC[AES256_GCM,data:l+y8jLy9EoR1uzlWJJqgYh7GAtfHnn4NqdsyK9X2a/MrSNa86hZwMgt9XvK/JZDF/dzDgSsaJENjxmes4zX4iJKIC8yt/Qe0fEQf1zwfDQyXorWeNGA=,iv:irTeXTMsp6kfdPa1tuTQiSDUfWidhwHc8JoualdMux4=,tag:/WH5e9tZef4/CrPkJgpm5Q==,type:str] -sops: - kms: [] - gcp_kms: - - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs - created_at: "2023-03-10T14:04:09Z" - enc: CiUA4OM7eHEt0MqxHR+EYGCDUMJKPZgV74ZOx02eHJVOjAISjn7oEkkALQgViEwwaN2limZaQCEwfo6f7apJ/qpQCxMuoaGdyDzsFT7VSDW9jAMUdLbDOQ21FQox5SHqk50U20POOLbh/2jV+or22NKK - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2023-03-10T14:04:10Z" - mac: ENC[AES256_GCM,data:qsusV0yGD696dwiquL2KbkvzI+y7X4w6hHUVw/Wt16r3AcsUfoF8Yup95CP0k1hy+bUgs1yBZDTlv37M8PoATyMxPz5i8FDN9c+6an+DMro6jSAW9YuyQWbjIHvk2dfnlwTwVno9HgkMY0fsfezcTSEgyQEHGTnOXMHBMcVpVTY=,iv:7l30DOvO3zSym2VbwBAljVtqFX9ClJikV2N9vbmk6IY=,tag:+ON9dRxz9Sf9KENkV7DLbQ==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.7.3 diff --git a/config/clusters/carbonplan/enc-support.secret.values.yaml b/config/clusters/carbonplan/enc-support.secret.values.yaml deleted file mode 100644 index aabff54ea6..0000000000 --- a/config/clusters/carbonplan/enc-support.secret.values.yaml +++ /dev/null @@ -1,22 +0,0 @@ -prometheusIngressAuthSecret: - username: ENC[AES256_GCM,data:TSCjdYydQsYNp5otbeAzcDi/H1TdjbilhNfzd31FJ+mGIl+LE6DwHN+04NTcEqIKGprWWSqesPCKWcsGw++jQA==,iv:mlN6ku7DKTckZeOU3PXCuAPGbrhNF06N5M04NIBmOEo=,tag:0Ze7D7IoK/F3V5FjcbLUDA==,type:str] - password: ENC[AES256_GCM,data:yXZqIHPziZLUN2WG/yWotx72kbESAAx5zwNIgPzlDFmqegP62hUIWY8uwFSjpVl8PIQ4MSLgorrbm6Pq7eHu3w==,iv:w9MghOkbt5RoTXlh9jyemGalyB0COWpP/lzdgWm3ehI=,tag:k5f1Nq4yZzS8bTN2Lcl6Iw==,type:str] -grafana: - grafana.ini: - auth.github: - client_id: ENC[AES256_GCM,data:nxrFL8XmiKnYa5YPrinCNW6rOqw=,iv:c/W9a0TM29vLD3DxdsNaxW7u84/umHNhqdHkhvXfBUI=,tag:YzErxTXHMCxoxHyN8MgxwA==,type:str] - client_secret: ENC[AES256_GCM,data:Ycqb/J+LpIqulB5+Ez3M1L82o6pokuXUS1dnmVI2/sYFAianMza3YQ==,iv:0RRD0G3t+gjFY+y3k8CrcaSKSHcxyYxoT24TOVGNIUQ=,tag:aF6yp5U6bCZv5WbDxUkaJA==,type:str] -sops: - kms: [] - gcp_kms: - - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs - created_at: "2022-03-14T20:52:44Z" - enc: CiQA4OM7ePN/ZgJmtIYEoB1ZHMhPemM2vyl27kulBJz9wBmVjOESSQDm5XgWzNXvG+C9q/QRT2lYsd1gv25NK/2pYVT19BRvjNY7m7UhSnzJX26qwxjmFqrnKelSkZYnGOI4V838yyUoyNohhvtuouc= - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2023-02-08T14:00:59Z" - mac: ENC[AES256_GCM,data:bXDsN9d54w4IgLpMbhYgqR7JN8ApuQJs8lAC1XgAf4UtH6OSZlBAgE29oVj90tZ5ttPwKgMBHByMCp1i3wEVgaRf0yPV778j9abUR02tY3vfgT+KGESOMsIIMiMldQIj9ut0/jY6dziboe8T1bn4BoFBAtuP2IvDpwTVdA/Snn0=,iv:HUOjJEXKE4bPGyVMvxAL/6zhWTF7MdsCfk8AQzpa3vE=,tag:mTszwRrT8JI/uXFc28FsGg==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.7.2 diff --git a/config/clusters/carbonplan/prod.values.yaml b/config/clusters/carbonplan/prod.values.yaml deleted file mode 100644 index a8f4b3e428..0000000000 --- a/config/clusters/carbonplan/prod.values.yaml +++ /dev/null @@ -1,11 +0,0 @@ -basehub: - jupyterhub: - ingress: - hosts: [carbonplan.2i2c.cloud] - tls: - - hosts: [carbonplan.2i2c.cloud] - secretName: https-auto-tls - hub: - config: - CILogonOAuthenticator: - oauth_callback_url: "https://carbonplan.2i2c.cloud/hub/oauth_callback" diff --git a/config/clusters/carbonplan/staging.values.yaml b/config/clusters/carbonplan/staging.values.yaml deleted file mode 100644 index 64c03a33c2..0000000000 --- a/config/clusters/carbonplan/staging.values.yaml +++ /dev/null @@ -1,11 +0,0 @@ -basehub: - jupyterhub: - ingress: - hosts: [staging.carbonplan.2i2c.cloud] - tls: - - hosts: [staging.carbonplan.2i2c.cloud] - secretName: https-auto-tls - hub: - config: - CILogonOAuthenticator: - oauth_callback_url: "https://staging.carbonplan.2i2c.cloud/hub/oauth_callback" diff --git a/config/clusters/carbonplan/support.values.yaml b/config/clusters/carbonplan/support.values.yaml deleted file mode 100644 index 6a60e6eeec..0000000000 --- a/config/clusters/carbonplan/support.values.yaml +++ /dev/null @@ -1,39 +0,0 @@ -prometheusIngressAuthSecret: - enabled: true - -prometheus: - server: - ingress: - enabled: true - hosts: - - prometheus.carbonplan.2i2c.cloud - tls: - - secretName: prometheus-tls - hosts: - - prometheus.carbonplan.2i2c.cloud - resources: - requests: - memory: 8Gi - limits: - memory: 8Gi - -cluster-autoscaler: - enabled: true - autoDiscovery: - clusterName: carbonplanhub - awsRegion: us-west-2 - -grafana: - grafana.ini: - server: - root_url: https://grafana.carbonplan.2i2c.cloud/ - auth.github: - enabled: true - allowed_organizations: 2i2c-org - ingress: - hosts: - - grafana.carbonplan.2i2c.cloud - tls: - - secretName: grafana-tls - hosts: - - grafana.carbonplan.2i2c.cloud diff --git a/deployer/commands/generate/resource_allocation/daemonset_requests.yaml b/deployer/commands/generate/resource_allocation/daemonset_requests.yaml index 3e8e1850cf..ef9e94e15f 100644 --- a/deployer/commands/generate/resource_allocation/daemonset_requests.yaml +++ b/deployer/commands/generate/resource_allocation/daemonset_requests.yaml @@ -99,12 +99,6 @@ eks: cpu_requests: 170m memory_requests: 250Mi k8s_version: v1.25.12-eks-2d98532 - carbonplan: - requesting_daemon_sets: aws-node,ebs-csi-node,kube-proxy,support-cryptnono,support-prometheus-node-exporter - other_daemon_sets: "" - cpu_requests: 170m - memory_requests: 250Mi - k8s_version: v1.24.16-eks-2d98532 catalystproject-africa: requesting_daemon_sets: aws-node,ebs-csi-node,kube-proxy,support-cryptnono,support-prometheus-node-exporter other_daemon_sets: "" diff --git a/docs/howto/upgrade-cluster/aws.md b/docs/howto/upgrade-cluster/aws.md index 05e0fa23c7..11251368cc 100644 --- a/docs/howto/upgrade-cluster/aws.md +++ b/docs/howto/upgrade-cluster/aws.md @@ -136,7 +136,7 @@ where the version must be updated. ```yaml { - name: "carbonplanhub", + name: "openscapeshub", region: clusterRegion, version: '1.27' } diff --git a/docs/sre-guide/node-scale-up/aws.md b/docs/sre-guide/node-scale-up/aws.md index c0ec4c80a0..25089129f9 100644 --- a/docs/sre-guide/node-scale-up/aws.md +++ b/docs/sre-guide/node-scale-up/aws.md @@ -13,11 +13,9 @@ server startup faster. To scale all nodepools, locate the `minSize` property of the `nb` node group and change the value to what you want. An example can be found here: - + 2. **Scale a specific nodepool.** If you only wish to scale a specific nodepool, you can add the `minSize` property to the local `notebookNodes` variable next to the `instanceType` that you wish to scale. - An example can be found here: - ```{warning} It is currently unclear if *lowering* the `minSize` property just allows diff --git a/docs/topic/infrastructure/config.md b/docs/topic/infrastructure/config.md index 459e0d45e4..87a563c4ac 100644 --- a/docs/topic/infrastructure/config.md +++ b/docs/topic/infrastructure/config.md @@ -69,7 +69,6 @@ A hub's helm chart values file can be encrypted as well, following the naming co Where we run dedicated clusters that only host a `staging` and `prod` hub, we aggregate all helm chart values shared by each hub into a `common.values.yaml` file, and then describe the helm chart values specific to either `staging` or `prod` with a `staging.values.yaml` or `prod.values.yaml` file respectively. See the [Pangeo config](https://github.com/2i2c-org/infrastructure/blob/HEAD/config/clusters/pangeo-hubs/cluster.yaml) for an example. -This may lead to cases where two hubs on the same cluster use the same config for the `staging` and `prod` hubs, see the [Carbon Plan config](https://github.com/2i2c-org/infrastructure/blob/HEAD/config/clusters/carbonplan/cluster.yaml) as an example. ### Conventions for our configuration structure diff --git a/eksctl/carbonplan.jsonnet b/eksctl/carbonplan.jsonnet deleted file mode 100644 index 7064246d0b..0000000000 --- a/eksctl/carbonplan.jsonnet +++ /dev/null @@ -1,165 +0,0 @@ -/* - This file is a jsonnet template of a eksctl's cluster configuration file, - that is used with the eksctl CLI to both update and initialize an AWS EKS - based cluster. - - This file has in turn been generated from eksctl/template.jsonnet which is - relevant to compare with for changes over time. - - To use jsonnet to generate an eksctl configuration file from this, do: - - jsonnet carbonplan.jsonnet > carbonplan.eksctl.yaml - - References: - - https://eksctl.io/usage/schema/ -*/ -local ng = import "./libsonnet/nodegroup.jsonnet"; - -// place all cluster nodes here -local clusterRegion = "us-west-2"; -local masterAzs = ["us-west-2a", "us-west-2b", "us-west-2c"]; -local nodeAz = "us-west-2a"; - -// List of namespaces where we have hubs deployed -// Each will get a ServiceAccount that will get credentials to talk -// to AWS services, via https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html -local namespaces = ['staging', 'prod']; - -// Node definitions for notebook nodes. Config here is merged -// with our notebook node definition. -// A `node.kubernetes.io/instance-type label is added, so pods -// can request a particular kind of node with a nodeSelector -local notebookNodes = [ - { instanceType: "r5.large" }, - { instanceType: "r5.xlarge" }, - { instanceType: "r5.2xlarge" }, - { instanceType: "r5.8xlarge" }, - { instanceType: "x1.16xlarge" }, - { instanceType: "x1.32xlarge" }, - { - instanceType: "g4dn.xlarge", minSize: 0, - tags+: { - "k8s.io/cluster-autoscaler/node-template/resources/nvidia.com/gpu": "1" - }, - }, -]; - -local daskNodes = [ - // Node definitions for dask worker nodes. Config here is merged - // with our dask worker node definition, which uses spot instances. - // A `node.kubernetes.io/instance-type label is set to the name of the - // *first* item in instanceDistribution.instanceTypes, to match - // what we do with notebook nodes. Pods can request a particular - // kind of node with a nodeSelector - // - // A not yet fully established policy is being developed about using a single - // node pool, see https://github.com/2i2c-org/infrastructure/issues/2687. - // - { instancesDistribution+: { instanceTypes: ["r5.4xlarge"] }}, -]; - -{ - apiVersion: 'eksctl.io/v1alpha5', - kind: 'ClusterConfig', - metadata+: { - name: "carbonplanhub", - region: clusterRegion, - version: '1.27' - }, - availabilityZones: masterAzs, - iam: { - withOIDC: true, - - serviceAccounts: [{ - metadata: { - name: "cloud-user-sa", - namespace: namespace - }, - attachPolicyARNs:[ - "arn:aws:iam::aws:policy/AmazonS3FullAccess" - ], - } for namespace in namespaces], - }, - // If you add an addon to this config, run the create addon command. - // - // eksctl create addon --config-file=carbonplan.eksctl.yaml - // - addons: [ - { - // aws-ebs-csi-driver ensures that our PVCs are bound to PVs that - // couple to AWS EBS based storage, without it expect to see pods - // mounting a PVC failing to schedule and PVC resources that are - // unbound. - // - // Related docs: https://docs.aws.amazon.com/eks/latest/userguide/managing-ebs-csi.html - // - name: 'aws-ebs-csi-driver', - version: "latest", - wellKnownPolicies: { - ebsCSIController: true, - }, - }, - ], - nodeGroups: [ - ng + { - namePrefix: 'core', - nameSuffix: 'a', - nameIncludeInstanceType: false, - availabilityZones: [nodeAz], - ssh: { - publicKeyPath: 'ssh-keys/carbonplan.key.pub' - }, - instanceType: "m5.xlarge", - minSize: 1, - maxSize: 6, - labels+: { - "hub.jupyter.org/node-purpose": "core", - "k8s.dask.org/node-purpose": "core" - }, - }, - ] + [ - ng + { - namePrefix: "nb", - availabilityZones: [nodeAz], - minSize: 0, - maxSize: 500, - instanceType: n.instanceType, - ssh: { - publicKeyPath: 'ssh-keys/carbonplan.key.pub' - }, - labels+: { - "hub.jupyter.org/node-purpose": "user", - "k8s.dask.org/node-purpose": "scheduler" - }, - taints+: { - "hub.jupyter.org_dedicated": "user:NoSchedule", - "hub.jupyter.org/dedicated": "user:NoSchedule" - }, - - } + n for n in notebookNodes - ] + [ - ng + { - namePrefix: "dask", - availabilityZones: [nodeAz], - minSize: 0, - maxSize: 500, - ssh: { - publicKeyPath: 'ssh-keys/carbonplan.key.pub' - }, - labels+: { - "k8s.dask.org/node-purpose": "worker" - }, - taints+: { - "k8s.dask.org_dedicated" : "worker:NoSchedule", - "k8s.dask.org/dedicated" : "worker:NoSchedule" - }, - instancesDistribution+: { - onDemandBaseCapacity: 0, - onDemandPercentageAboveBaseCapacity: 0, - spotAllocationStrategy: "capacity-optimized", - }, - } + n for n in daskNodes - ] - - -} diff --git a/eksctl/ssh-keys/carbonplan.key.pub b/eksctl/ssh-keys/carbonplan.key.pub deleted file mode 100644 index c4812018f2..0000000000 --- a/eksctl/ssh-keys/carbonplan.key.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDaDc3nWE5ndKpmeIg1vbYnCmG4UZ/ZYMKXAdKaVy/p0EHec99o2WqqoqIjgJzeZBGSC/v57igWWbxjlvtnAMbd1M7JXvz1RTjzsw2ankBCq96UOklQoOR341ekxt/Zomp8TC+J7neXYHdSzQ280HNHQpX0MhwxsHLTs49kYOmauiW4uiXuTgRL5nvCeHzeIXFvhLuC9QmeQpaFoPgJrHS5AGER5C7fcRdybyMVfm/EDvc27c9S6NYZ98fcjyR9fmIeOB+krNWlB3UIQG1IwxR1Yhy9f/c8R2RCg63aWFMgGbF70MHGi9m3ntFkq9HMPoEHzLDB20vd/9Om+vIqq9nykBYiS1tjzGKv/jbvr7d6c81POv6UgMaVcDZYnAx/AHv4zzS0KDtnNLd/OAk2r1Ov9v104J7U17WjNBJjNMxtMe8skj/JqXPJJ/6FDI3/7S+zKX1tszMqi+XD/jUAisiZh/VvarJGzkyI09JyC6M6w507/HBjzuMePFtroeCf270= yuvipanda@do-the-work.local diff --git a/eksctl/ssh-keys/secret/carbonplan.key b/eksctl/ssh-keys/secret/carbonplan.key deleted file mode 100644 index b28bb3855c..0000000000 --- a/eksctl/ssh-keys/secret/carbonplan.key +++ /dev/null @@ -1,21 +0,0 @@ -{ - "data": "ENC[AES256_GCM,data:BZazQGKXm86j1Pb/RRhmGdJGSoUUed7GY6Fo6xrZEh73qyNS13IJop9eGmeMI7UsuOCwPungwW++pJX7MDQ5wa4ol9E4m/+1FoO56paLwGnCexsx0no9s+3y9UZVN4TCXkd3ISaq92FdUc2FKuLkUiKMOC78uYtaSDyIOWOpba0MxbLdScITbSBGwmP+nEoWt52wGokqrPMGKre9WMpRaUycPSB+rL0A13rnH/nwYdQhRHEWmCIulPAMNe5aeYUQ/NMPJaoxGhL7A7TmeFcX7nWedymRn/WGTS3AIo8iPXQkBe7lurPQrS1pzP5lG6IX6pNJ3STbHYRkWl+xTaoBjH29r5+VPuHsBfMr1jwW8j3dCqOB/oODbz0cSW7qlb0sLNgJ+JuCyCBFJNzie6pBHORLjhhv1ifhMCuLXs0Fk5TJVnh7ODwWaRUuD1DgGz2XnOOiWOW1hIb2hqt0dojEbgSC2iPuUi1bCu5UnNZ8XgD27A5xKwRasYtCJuRJjJ+WGiQnzSNSTW4A/qJ6tPk8oVLgxYvGlmgot6KtCSIOsc9EbrYIrBKXZIl34B/X954F/1HkIi1qTtho3c6QSyvXB1pmjEBg7Trl5gbqGQ3aFLqKu4Li1Uv3wo5P1yKubfwI7gz7OMwRKl+x0VGQcL+isYugcwu//ABPYWgiyXx/UEW7rMxsWQS9OHXBCig97g+4+JZH+VeJimov6qOmCTGzpJh7ubkbYhw/OnvNZC5jRX75372RsYp00iMb9kH/txEQit+d/2T+9Sck4nVE+iOyQuyeHzAo2uNG5MQQM3V3WbppZ7ITRzIv6Zve26+HtdZj+ukle+NpmFPnwe1kAt5q+d769wI0q0G/lU0S3HFSGMEIBTm9cDBDg9lxRHEGLylAgvfpBYwJGRW3mF0BmgmxAUygA9w6YzFuEWd4S/jj4aWqkDEXK0VpdosaamxmfVVIU7crq/gI9i1bjW/GdEGjruh5eqiQCscXPfOziV6bD9sliXAETE4ViMW2sLNK/0jdq0n2GAT0rtGnL86OJ7unaTAMnpjQT9JpriYByAEqzwyYwBmIzexCfvIiX+Q3XWCPpXFoArOmpfM8bNfui8j3BGTy96hk4Bn54s2r+JdK0TLxPaKBlG9YHyhhbW5speZjqhhqQk1trTJKTnQrTDWb2zeT8U2KFP71ErU3IPxgK1oy2unBealNPV9ozAXzW6xliCd0ZBoJCrROrWNxeI9Wtpta0ZgyRLHjs7vZduzNdEDsQ3+O+XNhIHJd1Yb4RwoKaA4aedk82Yy3smxCYvxcwMMTx4b27L/xcAWBxMzzLE/rUeJ+YIn8IllaEWHv7ud5DjBjvv2MIL8GWDOykH982HtSYuvs6NnZ0K5kc+As0AUAuFoAGwsW/PSxCXRNHlFTOXnQ//zLKYL+s6X5pGCbKWjRGXoo/jd+mhJyy2/UKPbAc2q+aGEAliZjvWH9BWX8WSEKCa1Far3kZMOB01WLu5oDXSCbuqCoV882u7mhcvoAsxccm7MXuQUBlohP6DLamW4Le6wzy2zXGo9QnfcNsHhminp0gJW1WknCUR4BoZnRo0CzVDdOXbVazYQGTI0x2FzQWDievape27ccbOeLMI4PjMf2m/LlLLgCAXp3Emrzf1DfhUc/s0I8XAM3HmuUWeFGyZkjJlXomGowtbyCKoAxqiy7VRMDkHYo87s48uvruJIJQdKwpv8WPJmd0xprCE6eAK+LkqkoTTfOBPpOoUwEkUC8DgQH7g2JJv6aryFcxM7vw4m7hniRM0v2yXhSPCpQ0ThQ2oY8SHc0R3afyfOd5958PpRZl4wixOIp2p9TVR8HhQ3KpNbIAY+t2ft3EMpDHFI0SBWw+Ns2dgxJEo3/xGYUndb/88CR9WRITO+xLsBkYOmsXZihXe2XG4RDQ5iYCcVVfrqz6yMy9rWqEaSwEgiZq/9Y/b7dvCs9soLl0PMfkDlm7thiTGh1Bq+7LwJRvaufJTO2LyJqHxiITppazzm12FW0x7DACcBbyQRNhpbIwUUOdoVgjRiknGHmP/J8KrxEq9WuDQLdMt9quXCli5aTtYNkY+Ja1mxLe/WjLIorCyYfzravveDZbcP4TVJkjrLIWrcIz88JEf1HWRU1erhMHnAQ63aRgRzk6Ztle6f9TF4XfnM14GnmhBeWV55HQLsFcpq34OR5AsH4+fbAHv6Vc6vbDlTBZkU0g3IJTq/YYnOqDBLOjy0ifxI1/TEkAXtcKevhCsOqZVfCKO+pUkmnGg++5VI4dsS+h2/7KHpj0SFYmbdggDnTiRlVAU4/mbpLcSTX6+KYBlfAydawDBita6fzFKX+dHeMOBdRgCrEXfsf5xgRk2u5B0JppdbrJXCJ7J+b+TM4y8P7Mr6USKxFH3tGEWEETbA1/hz0QcUf+Gvk+lNB/RN9FGmPNt59GvSTGWALeUKLCclbzmmu0UnOeW5BZteFIaRpJ6Mya9ATvbjKyX8J3hb20Db00MTKLc7EoD8iQ9qQO6kDbhHDzpHFDfs/ytSN47G637xrIOFO064uB2N3Y5mGFp5NjETgrjemGjRqrzBGwIzsxciGgLjSlG2FWTXBLP8rh/ROXKGhDvJ/qkTIwX55RAzg2e/UpK8isaPJwQTa0B2ef8obMiwib5jnH0y0p3iVCv7mEMKTQF1vI5hV8wi+l8FhjDN8IcLQFFxOxXK0rQuK8EsEzk57UGW2s8mKwmUClpq6rxOQ+VokDzDm2MeDuD9ZA+u7rv7d+QJu59NGvfDHOx21HSZS4r8UsEO45LBy27saQgFY1b100Q8j4G641xAip1uTY98hi2fIyQi79p1NZ6hVB/ia65xb728uOzI2VvBjiOphbGTawVQBSqDtpbOjc4Fo8Xrw2xlqaQPsRDnn6baMWCXfFt4+lgMI8D75lQtQ/stV7ZRZOM+qUI7Qf/k5gjIKT0LcjGGFLRRrbg4GiTbnGR8H10PiYTFyTAfYhaQFN9VKfVY50ulCJlI2QC8uJy5o40R3Ye6jJFYu7mjOWNJF7eY51FkexiTmvVt9SerR4UqqcM7qE++IpI+xu2qCmY8TA08SiZ0qfKBT/VrcBlRC3gYQvaEVSX+GZlKUfzXn++pY/SeSReOpf2TRy01/vZwlOe+9yDBX8GSw7KKxCW5qGFUSWUSBM8D1mjsTM74kWw7LAlLJnpIRXxns7GmwRiGyhSo5R8gyZg0tiNDuegazCW0JOLUJRX4bL4HDOdTCMvjK1dPe0oCqG0AG25v9TWWfp1Vnm5EDcdUVFQAyIu+w5wy68NPt5RIsKQPGK2gcP46btKR/janEwmPvh+Bzwm/onPOLFAMhqiPU0kD7tvOW7tpZgo1kbaZzz3n6X5mPevhffHIj9QMor66Kb0x24+6h9KdwHDvJ9aAsS9VO8qnUVJWuPoA2eHWS+4rxaHFSCVDlOGLqmdhzd4nt5btHB/DcBzOJssQJHqVV+jyHa6TGouONaDVPTFSFfq6D,iv:6L89V9Nycfneb4bU0nCvA0i+qxy9JMqwRIr/H5T3PQ4=,tag:yCmxcl0ZwMLQ0zU0CmZ6FA==,type:str]", - "sops": { - "kms": null, - "gcp_kms": [ - { - "resource_id": "projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs", - "created_at": "2021-07-27T12:23:33Z", - "enc": "CiQA4OM7eICUZva/D+yx43fQXwFmI54mOdn4+aT3TdnTqIWaI9USSQB6TpsYaJh4GNAW1aI3J+N9fokpWYybO8SUIQRebDpmNUpeMh+xqQG2lRnpjnGt/2D2JGnMzUn076Nd/0CIUSlVoq5/W57jsk8=" - } - ], - "azure_kv": null, - "hc_vault": null, - "age": null, - "lastmodified": "2021-07-27T12:23:34Z", - "mac": "ENC[AES256_GCM,data:8KbxNB7+PYDE79iHXrw7aLvt3DE07MMRhAqhrbdNeKAVE+iMpQyxk4twjG/hEJSYXq3Q17VjIJNqDtFF4EE+/cveOH4A9yNtXlne0mEacFuRD2Av4GHUt7i1EjFNyXiPhirUovu1RiG9pcIKu5zkOhMOMk2lYv6l4i2GVmxDjLQ=,iv:WMM/f3kGv6gdoxwiPMPs2/8VHYDfkmZSp8hgZ+hnOzo=,tag:KfQa2YWEzDRJPHc9oqXyIA==,type:str]", - "pgp": null, - "unencrypted_suffix": "_unencrypted", - "version": "3.7.1" - } -} \ No newline at end of file diff --git a/terraform/aws/projects/carbonplan.tfvars b/terraform/aws/projects/carbonplan.tfvars deleted file mode 100644 index 92a788373e..0000000000 --- a/terraform/aws/projects/carbonplan.tfvars +++ /dev/null @@ -1,5 +0,0 @@ -region = "us-west-2" - -cluster_name = "carbonplanhub" - -cluster_nodes_location = "us-west-2a" \ No newline at end of file