Welcome! We are excited that you want to learn how to build artifacts.
An artifact is a set of elements composing an environment which may contains:
- Application code
- Architecture (infrastructure as code)
- Lifecycle (CI/CD)
- Configurations : accesses, plugins, etc.
An artifact can be seen as a PaaS framework using top-notch DevOps technologies (Terraform, CI/CD, etc.) but also as a SaaS framework when you package source code and data of your application in it.
An artifact can be used by anyone aiming to quickly deploy an application and get the most out of every cloud provider.
To create an artifact and test your work, you'll need to install Terraform.
Anatomy of an artifact
The directory structure of an artifact is pretty straightforward. Considering a
myGreatArtifact folder exists for your project, the recommended structure is as follows:
|File / Folder||Description|
||Application source code used by the project. Source code could also be retrieved using input variables.|
|| Helper file used for local testing purposes. It gathers environment variables needed by Terraform files and lifecycle processes (CI/CD). Do not share this file in publicly accessible areas (GitLab / Bitbucket / GitHub, client-side code, etc.).
Input variables (
This file will not be used by the Artifakt engine.
|| Describe your infrastructure (infrastructure as code) and the resources you want to manage (servers, CDN, buckets, etc.). Content will be different depending on the provider you've selected in the
|| Provider configuration as described in the Terraform documentation. This file may be publicly available, do not include sensitive data (SSH keys, passwords, tokens, etc.). Use the
||Output variables configuration. This file gathers data to display to the user after deployment success (back-office URL, public IP, etc.).|
||Input variable configuration. When deploying your artifact, users will be asked to set the value of these variables directly from the deployment tunnel.|
||Useful for setting configuration of your artifact. This file is used by Artifakt's engine. See below for the specification.|
||Generic README file that you can edit to describe your artifact (how it works, capabilities, etc.).|