Dell Infrastructure-as-a-code: Busting the regressive myth around on-premises infrastructure., GitHub Actions pipeline for Dell platforms.
This blog is part of the Dell Infrastructure-as-a-code saga series.
Cloud-like agility for on-premises infrastructure is multifaceted and usually combines a strong consumption-based model, ability to scale around dynamic requirements and most importantly the technological integration for modern Infrastructure-as-a-code pipelines.
Dell’s offerings encompass all of the above to ensure a true DevOps ready and cloud-native experience is made available to all., even to born-in-the-cloud personas. At the same token, I have always been intrigued when someone thinks of on-premises/co-located infrastructure as a rather traditional footprint., one that is for some reason excluded from cloud-native ways of running things.
In this blog, we will., as the title suggests bust this regressive myth by a practical demo that builds upon a scalable GitHub Actions IaC pipeline across Dell’s leading storage platforms (PowerFlex-on prem and as APEX Block for AWS, PowerScale and PowerStore).
Most importantly the environmental constraints in the demo such as a fully private environment make a further appeal to the agility by instilling security-first approach.
Let’s view this in action. The below visual is an end-to-end capture of the demo-context and the following video demonstrates all of this in a greater detail.
The template for the GitHub actions pipeline is provided below. The terraform templates are derived from my other blogs in the infrastructure as a code saga series.
GitHub Actions YAML
name: csc-ireland
on:
workflow_dispatch:
inputs:
# Terraform action you want to perform
action:
description: 'Terraform Action to Perform'
type: choice
options:
- Terraform_apply
- Terraform_destroy
jobs:
plan_and_apply:
name: Plan and Apply
if: ${{ github.event.inputs.action == 'Terraform_apply' }}
runs-on: [self-hosted, csc-ireland]
strategy:
fail-fast: false
matrix:
path:
- powerflex-equinix-ireland
- powerflex-aws-ireland
- powerstore-equinix-ireland
- powerscale-equinix-ireland
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Setup Nodejs
uses: actions/setup-node@v1
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.0.9
- name: Initialize Terraform
run: |
cd ${{ matrix.path }}
terraform init && terraform plan && terraform apply -auto-approve
terraform_destroy:
name: Terraform destroy
if: ${{ github.event.inputs.action == 'Terraform_destroy' }}
runs-on: [self-hosted, csc-ireland]
strategy:
fail-fast: false
matrix:
path:
- powerflex-equinix-ireland
- powerflex-aws-ireland
- powerstore-equinix-ireland
- powerscale-equinix-ireland
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Setup Nodejs
uses: actions/setup-node@v1
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.0.9
- name: Initialize Terraform
run: |
cd ${{ matrix.path }}
terraform init && terraform plan && terraform destroy -auto-approve
Happy automating Dell platforms,
cheers,
Ambar@thecloudgarage
#iwork4dell