Skip to content

Commit

Permalink
Merge pull request #2 from NASA-IMPACT/eis-fire
Browse files Browse the repository at this point in the history
Bring Master up to date
  • Loading branch information
wildintellect authored Mar 14, 2024
2 parents abadbb6 + 6fac980 commit 69d6494
Show file tree
Hide file tree
Showing 396 changed files with 13,382 additions and 4,467 deletions.
File renamed without changes.
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/2_new-hub-provide-info.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@ body:
validations:
required: true

- type: checkboxes
attributes:
label: Technical support contacts listed
description: |
Technical contacts are the folks who are authorized to open support tickets about this hub.
The source of truth is maintained in [this airtable](https://airtable.com/appbjBTRIbgRiElkr/pagog9egWRpeLyLGW?uMtyG=b%3AWzAsWyI4WnV1VyIsOSxbInNlbDRjSG1pdlRuRlRza0ljIl0sIklPZVJqIl1d).
Validate that there is at least one technical contact listed in the airtable for this hub. If not, ping
partnerships to ensure they find out who that is and fill that information in.
options:
- label: Technical contact present
validations:
required: true

- type: textarea
attributes:
label: Hub important dates
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,23 +32,27 @@ Usually, it is because it was a hub that we created for a workshop/conference an

(These steps are described in more detail in the docs at https://infrastructure.2i2c.org/en/latest/hub-deployment-guide/hubs/other-hub-ops/delete-hub.html)

- [ ] Manage existing data (migrate data from the hub or delete it)
- [ ] Manage existing home directory data (migrate data from the hub or delete it)
- [ ] Manage existing cloud bucket data (migrate data, or delete it)
- [ ] Delete the hub's authentication application on GitHub or CILogon (note CILogon removal requires the hub config in place)
- [ ] Remove the appropriate `config/clusters/<cluster_name>/<hub_name>.values.yaml` files. A complete list of relevant files can be found under the appropriate entry in the associated `cluster.yaml` file.
- [ ] Remove the associated hub entry from the `config/clusters/<cluster_name>/cluster.yaml` file.
- [ ] Remove the hub deployment
- `helm --namespace HUB_NAME delete HUB_NAME`
- `kubectl delete namespace HUB_NAME`
- TIP: Run `deployer use-cluster-credentials <cluster_name>` before running the above commands

#### Phase III - Cluster Removal

_This phase is only necessary for single hub clusters._

- [ ] Remove the cluster's datasource from the central Grafana with:
- `deployer grafana central-ds remove <cluster_name>`
- [ ] Run `terraform plan -destroy` and `terraform apply` from the [appropriate workspace](https://infrastructure.2i2c.org/en/latest/topic/terraform.html#workspaces), to destroy the cluster
- [ ] Delete the terraform workspace: `terraform workspace delete <NAME>`
- [ ] Delete the terraform values file under the `projects` folder associated with the relevant cloud provider (e.g. `terraform/gcp/projects/` for GCP)
- [ ] Remove the associated `config/clusters/<cluster_name>` directory and all its contents
- Remove the cluster from CI:
- [ ] [`deploy-hubs.yaml`](https://github.com/2i2c-org/infrastructure/blob/HEAD/.github/workflows/deploy-hubs.yaml)
- [ ] [`validate-clusters.yaml`](https://github.com/2i2c-org/infrastructure/blob/HEAD/.github/workflows/validate-clusters.yaml)
- [ ] Remove the cluster from the list of grafana datasources at https://grafana.pilot.2i2c.cloud/datasources
- [ ] [`deploy-grafana-dashboards.yaml`](https://github.com/2i2c-org/infrastructure/blob/HEAD/.github/workflows/deploy-grafana-dashboards.yaml)
- [ ] Remove A record from Namecheap account
134 changes: 134 additions & 0 deletions .github/ISSUE_TEMPLATE/4_event-hub.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: 📅 Event for a community
description: Coordination and planning around an event for a community
title: "[EVENT] {{ HUB NAME }}"
labels: ["event"]
body:
- type: markdown
attributes:
value: |
# Event Info
The following information is needed to determine if additional changes need to be done to the infrastructure.
Get this information from the community representative via support if not already provided.
- type: input
id: ticket_id
attributes:
label: The link towards the Freshdesk ticket this event was reported
description: |
Copy-paste the Freshdesk link here
validations:
required: true

- type: input
id: community_rep
attributes:
label: The GitHub handle or name of the community representative
description: |
Type the GitHub handle of the community representative or their name if the handle is not known.
validations:
required: true

- type: textarea
id: event_begin
attributes:
label: The date when the event will start
description: |
Make sure to specify the timezone or to add an https://arewemeetingyet.com/ link or similar so team members can translate to their timezone.
validations:
required: true

- type: textarea
id: event_end
attributes:
label: The date when the event will end
description: |
Make sure to specify the timezone or to add an https://arewemeetingyet.com/ link or similar so team members can translate to their timezone.
validations:
required: true

- type: textarea
id: active_times
attributes:
label: What hours of the day will participants be active? (e.g., 5am - 5pm US/Pacific)
validations:
required: true

- type: checkboxes
id: enough_notice
attributes:
label: Are we three weeks before the start date of the event?
options:
- label: "Yes"
- label: "No"

- type: input
id: user_number
attributes:
label: Number of attendees
description: |
How many attendees should we expect simultaneously each day.
validations:
required: true

- type: checkboxes
id: calendar
attributes:
label: Make sure to add the event into the calendar
description: |
The [Hub Events Calendar link](https://calendar.google.com/calendar/u/2?cid=Y19rdDg0c2g3YW5tMHNsb2NqczJzdTNqdnNvY0Bncm91cC5jYWxlbmRhci5nb29nbGUuY29t)
options:
- label: Done

- type: markdown
attributes:
value: |
# Hub info
General info about the hub that will be used for the event.
- type: checkboxes
id: hub_exists
attributes:
label: Does the hub already exist?
options:
- label: "Yes"
- label: "No"

- type: input
id: hub_url
attributes:
label: The URL of the hub that will be used for the event
validations:
required: true

- type: checkboxes
id: hub_decommision
attributes:
label: Will this hub be decommissioned after the event is over?
options:
- label: "Yes"
- label: "No"

- type: markdown
attributes:
value: |
# Engineer task list
General checks to perform before the event.
- type: checkboxes
id: info_available
attributes:
label: Was all the info filled in above?
options:
- label: "Yes"
- label: "No"

- type: checkboxes
id: quotas_ok
attributes:
label: Quotas from the cloud provider are high-enough to handle expected usage?
options:
- label: "Yes"
- label: "No"
79 changes: 79 additions & 0 deletions .github/ISSUE_TEMPLATE/5_freshdesk-ticket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: "🎫 Freshdesk ticket tracker"
description: Track work on GitHub requested via a Freshdesk ticket
title: "[Support] {{ Ticket name }}"
labels: ["support"]
body:
- type: markdown
attributes:
value: |
This template is designed to help the support triagers provide information about a Freshdesk ticket that could not be solved in [the first 30min support window](https://compass.2i2c.org/projects/managed-hubs/timeboxed-initial-ticket-evaluation/#support-timeboxed-evaluation).
This information will then be used to plan, prioritize and assign capacity in order to resolve this ticket.
# Ticket Information
- type: input
id: ticket_id
attributes:
label: The Freshdesk ticket link
description: |
Copy-paste the Freshdesk link here
validations:
required: true

- type: dropdown
id: ticket_type
attributes:
label: Ticket request type
description: |
The general topic of request in the Freshdesk ticket. Note that the Event type has its own issue template! Select "Other" if none of the first options qualify.
options:
- Feature Request
- Something is not working
- Technical questions
- Other
validations:
required: true

- type: dropdown
id: ticket_impact
attributes:
label: Ticket impact
description: |
The impact the support triager believes the ticket has. Choose the most appropriate one from the drowpdown below. This information will be used to prioritize the ticket.
Checkout the [non-incident support process](https://compass.2i2c.org/projects/managed-hubs/support/#non-incident-response-process) for more information about choosing the impact level.
options:
- 🟩 Low
- 🟨 Medium
- 🟧 High
- 🟥 Critical
validations:
required: true

- type: textarea
id: description
attributes:
label: Short ticket description
description: |
Short description of what the ticket is about and what kind of work needs to be done to fix it.
validations:
required: true

- type: markdown
attributes:
value: |
# Initial 30m Investigation Context
Use the following section to provide the results of the initial 30min investigation.
If no initial investigation was performed because it was clear that the the ticket cannot be resolved by the support triager in the first 30min window, then leave the next section blank.
- type: textarea
id: results
attributes:
label: (Optional) Investigation results
description: |
Paste any useful information that was discovered during the initial ticket triaging.
validations:
required: false
80 changes: 0 additions & 80 deletions .github/ISSUE_TEMPLATE/6_event-hub.md

This file was deleted.

10 changes: 5 additions & 5 deletions .github/actions/setup-deploy/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@ inputs:
runs:
using: "composite"
steps:
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"

# There will always be a cache hit on the cache key when this composite
# action is run, as its only done after the "generate-jobs" job has been run
# which will save a cache.
- name: Restore pip's install cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/.cache/pip
# key determines if we define or re-use an existing cache or not. Our
# key determines if we define or reuse an existing cache or not. Our
# key ensure we cache within a workflow run and its attempts, but not
# between workflow runs.
key: "${{ github.run_id }}"
Expand All @@ -69,7 +69,7 @@ runs:
shell: bash

# This action use the github official cache mechanism internally
- uses: azure/setup-helm@v3
- uses: azure/setup-helm@v4
with:
# Manually update a pinning of helm to a minor version based on:
#
Expand Down Expand Up @@ -129,6 +129,6 @@ runs:
shell: bash

- name: Setup sops credentials to decrypt repo secrets
uses: google-github-actions/auth@v1
uses: google-github-actions/auth@v2
with:
credentials_json: "${{ inputs.GCP_KMS_DECRYPTOR_KEY }}"
6 changes: 6 additions & 0 deletions .github/dependabot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ updates:
schedule:
# Check for updates once a week. By default, this check happens on a Monday.
interval: "monthly"
groups:
# Group all GHA updates together (to avoid desync in related actions e.g. upload-artifact, download-artifact)
# ref: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups
actions:
patterns:
- "*"
ignore:
# Ignore patch upgrades to further reduce noise
- update-types: ["version-update:semver-patch"]
Expand Down
Loading

0 comments on commit 69d6494

Please sign in to comment.