Dell Infrastructure-as-a-code: Busting the regressive myth around on-premises infrastructure., GitHub Actions pipeline for Dell platforms.

Ambar Hassani
3 min readMar 13, 2024

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

--

--

Ambar Hassani

24+ years of blended experience of technology & people leadership, startup management and disruptive acceleration/adoption of next-gen technologies