Skip to content
This repository has been archived by the owner on Jun 13, 2023. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: AlabamaWaterInstitute/CloudInfra
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: CIROH-UA/NGIAB-CloudInfra
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
Loading
96 changes: 96 additions & 0 deletions .github/ISSUE_TEMPLATE/case_studies_call.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
name: Case Studies Request Form
about: PI leading CIROH projects may use this form to request cloud computing resources (AWS, Google Cloud, CIROH-2i2c JupyterHub). Access is available to all consortium members and partners.
title: ''
labels: infrastructure
assignees: ''

---


**1. Requester Information:**
This should include the name and contact information of the person making the request.
- PI's Full Name:
- PI's Affiliated Institute:
- PI's Affiliated Email Address:


**2. Project Information:**
Provide a brief description of the project and its goals. This can help the infrastructure team understand the context and purpose of the requested resources. *Please highlight how this project will be benefit from and/or provide benefit to other resources on the shared infrastructure.*


**3. Project Description:**
If your project involves developing software or scripts, briefly describe the software you plan to develop.

**4. Resource Requirements:**
Specify the compute, storage, and network resources needed for the project. Be as specific as possible about the number of resources required, and any specific configurations or capabilities needed. This information will help the infrastructure team determine the appropriate resources to allocate.

**Options:**
1. Cloud Provider: AWS/Azure/GCP

2. Required Services in the Cloud:

List of AWS Services
====================
- EC2
- S3 – public, private, requester pay, bucket name suggestion?
- EBS (Amazon Elastic Block Store)
- EFS
- RDS
- VPC (Virtual Private Cloud)
- DynamoDB
- ECS
- EKS (Kubernetes Cluster)
- Lambda
- Others: please list

List of Azure Services
====================
- Virtual Machines
- Azure App Service
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Batch
- Azure Blob Storage
- Azure File Storage
- Azure Machine Learning
- Azure Key Vault
- Other: please list

List of GCP Services
====================
- Google Compute Engine
- Google Kubernetes Engine (GKE)
- Google Cloud Storage
- Google VPC
- Google IAM
- Google BigQuery
- Google Cloud Functions
- Dataflow
- Other: please list

**5. Working Group Detail**

Working Group 1/2/3/4 (select one):

**6. Timeline:**
Indicate the expected timeline for the project and when the resources will be needed. This information can help the infrastructure team plan and allocate resources accordingly.



**7. Security and Compliance Requirements:**
If there are any specific security or compliance requirements for the project, these should be clearly stated in the request. This will help ensure that the necessary security measures are in place for the project.



**8. Estimation:**
Include any cost estimation or requirements for the project. This will help the infrastructure team select the most cost-effective solutions for the project.

AWS Cost Calculator: https://calculator.aws/#/

Google Cloud Pricing Calculator: https://cloud.google.com/products/calculator



**9. Approval:**
Indicate the necessary approval processes or sign-offs required for the request.
86 changes: 86 additions & 0 deletions .github/ISSUE_TEMPLATE/exceeding_budget_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
name: Exceeding Budget Request Form
about: This form would be specifically for projects who anticipate exceeding the $500/month limit.
title: ''
labels: infrastructure
assignees: ''

---


**1. Requester Information:**
This should include the name and contact information of the person making the request.

**2. Link to Existing Infrastructure Ticket:**
Provide a ticket created for this project for which extension is being requested.

**3. Justification for increased budget:**
Please provide technical details for the increased usage.

**3. Resource Requirements:**
Specify the compute, storage, and network resources needed for the project. Be as specific as possible about the number of resources required, and any specific configurations or capabilities needed. This information will help the infrastructure team determine the appropriate resources to allocate.

**Options:**
1. Cloud Provider: AWS/Azure/GCP

2. Required Services in the Cloud:

List of AWS Services
====================
- EC2
- S3 – public, private, requester pay, bucket name suggestion?
- EBS (Amazon Elastic Block Store)
- EFS
- RDS
- VPC (Virtual Private Cloud)
- DynamoDB
- ECS
- EKS (Kubernetes Cluster)
- Lambda
- Others: please list

List of Azure Services
====================
- Virtual Machines
- Azure App Service
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Batch
- Azure Blob Storage
- Azure File Storage
- Azure Machine Learning
- Azure Key Vault
- Other: please list

List of GCP Services
====================
- Google Compute Engine
- Google Kubernetes Engine (GKE)
- Google Cloud Storage
- Google VPC
- Google IAM
- Google BigQuery
- Google Cloud Functions
- Dataflow
- Other: please list

**4. Timeline:**
Indicate the expected timeline for the extended resource requirement for the project.

**5. Security and Compliance Requirements:**
If there are any specific security or compliance requirements for the project, these should be clearly stated in the request. This will help ensure that the necessary security measures are in place for the project.

**6. Cost Estimation:**
Include the updated cost estimation for your project based on more resource requirements:

AWS Cost Calculator: https://calculator.aws/#/

NOTE: CIROH has AWS Savings plan added to the account and Data Egress Waiver Program signed and available. So please take a note while estimating the Cost.

Google Cloud Pricing Calculator: https://cloud.google.com/products/calculator

**7. Approval:**
Once Form is submitted, we will email the CIROH management to get the approval.

**8. Project to charge to: (For CIROH IT Admin to fill out based on approval process) **
Indicate the necessary approval processes or sign-offs required for the request.
Original file line number Diff line number Diff line change
@@ -1,55 +1,53 @@
---
name: Infrastructure Request Form
about: This template is used to request the resources on AWI/CIROH - AWS Infrastructure.
name: OnPremise Request Form
about: This template is used to request the on-premise requests (Pantarhei, Wukong and NSF Allocation - JetStream) from CIROH members and partners utilizing the NextGen framework for the research projects. This form must be submitted by Principal Investigator (PI) of the project.
title: ''
labels: infrastructure
labels: on-prem
assignees: ''

---


**1. Requester Information:**
This should include the name and contact information of the person making the request.


- PI's Full Name:
- PI's Affiliated Institute:
- PI's Affiliated Email Address:

**2. Project Information:**
Provide a brief description of the project and its goals. This can help the infrastructure team understand the context and purpose of the requested resources.
Provide a brief description of the project and its goals. This can help the infrastructure team understand the context and purpose of the requested resources. *Please highlight how this project will be benefit from and/or provide benefit to other resources on the shared infrastructure.*


**3. Project Description:**
If your project involves developing software or scripts, briefly describe the software you plan to develop.

**3. Resource Requirements:**
**4. Resource Requirements:**
Specify the compute, storage, and network resources needed for the project. Be as specific as possible about the number of resources required, and any specific configurations or capabilities needed. This information will help the infrastructure team determine the appropriate resources to allocate.

**Options:**
- EC2
- S3 – public, private, requester pay, bucket name suggestion?
- EBS (Amazon Elastic Block Store)
- EFS
- RDS
- VPC (Virtual Private Cloud)
- DynamoDB
- ECS
- EKS (Kubernetes Cluster)
- Lambda
- Others: please list

1. HPC or VM

2. vCPU

3. Memory

**4. Timeline:**
Indicate the expected timeline for the project and when the resources will be needed. This information can help the infrastructure team plan and allocate resources accordingly.

4. Disk Space

5. Pantarhei/Wukong/NSF Allocations-JetStream (specify one)

**5. Security and Compliance Requirements:**
If there are any specific security or compliance requirements for the project, these should be clearly stated in the request. This will help ensure that the necessary security measures are in place for the project.
**5. Working Group Detail**

Working Group 1/2/3/4 (select one):

**6. Timeline:**
Indicate the expected timeline for the project and when the resources will be needed. This information can help the infrastructure team plan and allocate resources accordingly.



**6. Budget:**
Include any budget constraints or requirements for the project. This will help the infrastructure team select the most cost-effective solutions for the project.
**7. Security and Compliance Requirements:**
If there are any specific security or compliance requirements for the project, these should be clearly stated in the request. This will help ensure that the necessary security measures are in place for the project.



**7. Approval:**
Indicate the necessary approval processes or sign-offs required for the request.
**8. Approval:**
Indicate the necessary approval processes or sign-offs required for the request.
70 changes: 57 additions & 13 deletions .github/action_templates/build-and-push/action.yaml
Original file line number Diff line number Diff line change
@@ -5,28 +5,72 @@ inputs:
docker-auth-token:
description: 'Docker Hub authentication token'
required: true
github-sha:
description: 'github sha hash for tagging image'
image-name:
description: 'image name to be built'
required: true
image-platform:
description: 'Platform of the image to be built'
dockerfile-name:
description: 'The name of dockerfile to use'
required: true
platform:
description: 'The platform to build'
required: false

outputs:
tag-name:
description: "The tag name used for the image"
value: ${{ steps.set-outputs.outputs.tag-name }}

runs:
using: "composite"
steps:
- name: Login to Docker Hub
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Set env vars for main branch
shell: bash
run: |
echo "${{ inputs.docker-auth-token }}" | docker login --username awiciroh --password-stdin
- name: Clean docker cache
echo "TAG_NAME=latest" >> "$GITHUB_ENV"
if: startsWith(github.ref, 'refs/heads/main')
- name: Set env vars for other branch
shell: bash
run: |
echo "TAG_NAME=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
if: ${{ !startsWith(github.ref, 'refs/heads/main') }}

- name: Set outputs
id: set-outputs
shell: bash
run: |
docker system prune -af
- name: Build and tag Docker image
echo "Current TAG_NAME from env: ${{ env.TAG_NAME }}"
echo "tag-name=${{ env.TAG_NAME }}" >> $GITHUB_OUTPUT
- name: Attach platform to tag
shell: bash
run: docker build -t awiciroh/ciroh-ngen-image:${{ inputs.github-sha }} -t awiciroh/ciroh-ngen-image:latest-${{ inputs.image-platform }} docker/.
- name: Push Docker image
run: |
echo "TAG_NAME=${{env.TAG_NAME}}-${{inputs.platform}}" >> "$GITHUB_ENV"
- name: Login to Docker Hub
shell: bash
run: |
docker push awiciroh/ciroh-ngen-image:${{ inputs.github-sha }}
#docker push awiciroh/ciroh-ngen-image:latest-${{ inputs.image-platform }}
echo "${{ inputs.docker-auth-token }}" | docker login --username awiciroh --password-stdin
- name: Create Cache and Builder for Buildx
shell: bash
run: |
docker buildx create --use --name mybuilder --node mybuilder
- name: Build and Cache Docker Image
uses: docker/build-push-action@v5
with:
context: ./docker
file: ./docker/${{ inputs.dockerfile-name}}
push: true
tags: |
awiciroh/${{ inputs.image-name}}:${{ env.TAG_NAME}}
builder: mybuilder
no-cache: true
platforms: linux/${{ inputs.platform }}
provenance: false
env:
DOCKER_BUILDKIT: 1
DOCKER_CLI_EXPERIMENTAL: enabled
Loading