Code & DevOps Config templates for many popular programming languages and DevOps tools including:
- Kubernetes - advanced K8s templates eg. deployment.yaml, statefulset.yaml, service.yaml, ingress.yaml, kustomization.yaml, skaffold.yaml, helmfile.yaml, k3d.yaml, kind.yaml and many others
- Terraform - provider.tf, backend.tf, variables.tf, terraform.tfvars - see this bundle trick
- Docker - Dockerfile, docker-compose.yml
- HashiCorp Packer - template.pkr.hcl - build portable Virtual Machines of Debian, Ubuntu and RHEL-based distros using 100% automated installs via Kickstart, Preseed, AutoInstaller. See Packer-templates
- AWS - various -
aws_*, buildspec.yml,ec*, eksctl.yaml,lambda*,s3* - GCP - cloudbuild.yaml, cloudbuild-golang.yaml, gcp_deployment-manager.yaml
- Jenkins - Jenkinsfile (advanced) and jenkins/vars/ Jenkins Shared Library
- GitHub Actions - github-action.yaml (advanced) and github-actions/.github/workflows GitHub Workflows Library
- Azure DevOps Pipelines - azure-pipelines.yaml
- Circle CI - circleci-config.yml (advanced)
- Vagrant - Vagrantfile
- Make - Makefile
- Maven - pom.xml
- SBT - build.sbt
- Gradle - build.gradle
- Golang - template.go
- Groovy - template.groovy
- Perl - template.pl, template.pm
- Python / Jython - template.py /
template.jy - Ruby / JRuby - template.rb, template.jrb, Gemfile
- Scala - template.scala
- Bash - template.sh
- Puppet - template.pp
- Redhat Kickstart automated install - anaconda-ks.cfg
- Debian Preseed automated install - preseed.cfg
- Ubuntu AutoInstall Cloud-Init - autoinstall-user-data
- MermaidJS - template.mmd
- D2 Lang - diagram.d2
- Python Diagrams - diagram.py
- SQL - template.sql
- XML - template.xml
- YAML - template.yaml
Many more real world DevOps Tooling & CI/CD configs for all major CI/CD systems can be found in the DevOps Bash tools repo.
Forked from DevOps Perl tools, this is now a submodule of the following repos:
See also the HariSekhon/Template-Repo for quickly generating new GitHub repos containing all the basic CI/CD configurations, SonarCloud, README badges etc.
new.pl can instantiate these templates as new date-timestamped files, autopopulating the date, vim tags, GitHub
URL and other headers and drops you in to your $EDITOR of choice (eg.
vim or
IntelliJ IDEA).
You can give an exact filename like Dockerfile, Makefile, Jenkinsfile, docker-compose.yml, pom.xml, build.gradle, or you can instantiate one of the templates based on their file extension (eg. py, sh) with any filename (eg. main.py, test.py, myapp.py).
Examples:
new Makefilenew Dockerfilenew Jenkinsfilenew docker-compose.ymlnew myapp.pynew build.gradlenew .github/workflows/build.yamlnew.pl can be found in the DevOps Perl tools repo.
alias new=new.pl(done automatically in the DevOps Bash tools repo .bash.d/)
new terraform
Instantly creates and opens all standard files for a Terraform deployment in your $EDITOR of choice:
all heavily commented to get a new Terraform environment up and running quickly - with links to things like AWS / GCP regions, Terraform backend providers, state locking etc.
new terraformor shorter
new tfCreates portable Virtual Machines in OVA format using 100% automated installs of Ubuntu, Debian and RHEL/Fedora using their native installers:
- Packer - template.pkr.hcl - uses the following:
- Redhat Kickstart - anaconda-ks.cfg
- Debian Preseed - preseed.cfg
- Ubuntu AutoInstall - autoinstall-user-data
See Packer-templates for more details and ready-to-run templates for each distro.
The rest of my original source repos are here.
Pre-built Docker images are available on my DockerHub.