Docs
Getting Started
How Frigg Works

How Frigg Works

This section will familiarise you with the basics of the Frigg methodology.

Resource files

YAML resource files are the core concept of Frigg. Each resource file defines a type of resource to be managed by Frigg, or to be used for managing other resource types. The following types of resource files exist:

  • Users (metadata resource used in other resources)
  • GitLabDefaults (metadata resource used for GitLab resources)
  • GitlabGroup
  • GitlabProject

A full description of all resource types can be found under the documentation of “Resource kinds”.

Applying changes

Frigg itself is a GitLab repository, just like any other repository. Changes to resources are applied by creating a merge request to the default branch of Frigg’s repository after editing the corresponding resource file.

Rights to users to directly change configuration should be limited, therefore forcing users to change configuration and user access through Frigg. By adjusting the merge request approval rules and branch protection of Frigg’s repository, we are thus able to limited who and under which circumstances configuration can be changed of various resources within your organisation.

Holding onto the state

Frigg can both manage existing resources, and create and start managing new resources. Until the time of resource creation the IDs of newly resources will be unknown. However, these IDs are necessary to apply any future changes to resources created. Frigg uses a GitLab issue on its project to keep track of these ids. This issue should never be manually edited.

In case the issue is edited by someone other than Frigg’s API token, Frigg will fail to apply to prevent possible security issues and inconsistencies. Delete the issue and re-export all resource files to resolve this error state.