Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x
- Puppet >= 7.0.0 < 9.0.0
- , , , , , ,
Tasks:
- post_upgrade
- postgres_upgrade
Start using this module
Add this module to your Puppetfile:
mod 'puppet-gitlab', '10.1.0'
Learn more about managing modules with a PuppetfileDocumentation
GitLab module for Puppet
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with GitLab
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
This Puppet module installs and manages GitLab. It makes use of the provided Omnibus packages and the packagecloud package repositories.
Please note: The module vshn/gitlab has been deprecated and is now available under Vox Pupuli puppet/gitlab.
Module Description
The module installs the GitLab package from the provided repositories and
creates the configuration file which is then used by gitlab-ctl reconfigure
to
configure all the services. Fun fact: This really uses Chef to configure all
the services.
Supported are Debian based (Ubuntu, Debian) and RedHat based (CentOS, RHEL) operating systems.
Beaker acceptance tests are run in Travis for supported versions of CentOS and Ubuntu.
This module is designed to support the most recent versions of the gitlab-omnibus package (both ce and ee). GitLab will support and release patches for the last 3 releases. This module can typically support the most recent major version, as well as the previous major version, but is currently only tested in the gitlab-supported versions of the module.
If you find configurations or features in gitlab-omnibus that are not supported by this module, please open an issue or submit a pull request.
Current Support Status
gitlab-omnibus version | support of gitlab.rb configurations |
---|---|
11.x | Mostly implemented, supported configs are stable |
10.x | All configs implemented and stable |
For older versions of GitLab, you may find an older version of this module to work better for you, as this module changes over time to support the valid configuration of versions of the gitlab-omnibus supported by the gitlab engineering team. The oldest versions of this puppet module were designed to support gitlab-omnibus 7.10, and may be unstable even then.
Setup
What GitLab affects
- Package repository (APT or YUM)
- Omnibus gitlab package, typically
gitlab-ce
orgitlab-ee
- Configuration file
/etc/gitlab/gitlab.rb
- System service
gitlab-runsvdir
- GitLab configuration using
gitlab-ctl reconfigure
Setup Requirements
Have a look at the official download page for the required prerequisits (f.e. Postfix). This module doesn't handle them, that's the job of the specific modules.
It requires only the puppetlabs/apt module when using it under a Debian
based OS and the parameter manage_package_repo
is not false. Furthermore the
stdlib
module is required.
At least on RedHat based OS versions, it's required that Puppet is configured
with the stringify_facts
setting set to false
(Puppet < 4.0), otherwise
the $::os
fact used in install.pp
doesn't work as expected.
Beginning with GitLab
Just include the class and specify at least external_url
. If external_url
is
not specified it will default to the FQDN fact of the system.
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
}
The module also supports Hiera, here comes an example:
gitlab::external_url: 'http://gitlab.mydomain.tld'
gitlab::gitlab_rails:
time_zone: 'UTC'
gitlab_email_enabled: false
gitlab_default_theme: 4
gitlab_email_display_name: 'GitLab'
gitlab::sidekiq:
shutdown_timeout: 5
If one wants to install GitLab Enterprise Edition, just define the parameter
manage_upstream_edition
with the value ee
:
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
manage_upstream_edition => 'ee',
}
Note: This works only for GitLab version 7.11 and greater. See this blog entry: GitLab 7.11 released with Two-factor Authentication and a publicly viewable Enterprise Edition
Usage
The main class (init.pp
) exposes the configuration sections from the
gitlab.rb
configuration file as hashes. So if there are any parameter changes
in future versions of GitLab, the module should support them right out of the
box. Only if there would be bigger changes to sections, the module would need
some updates.
All possible parameters for gitlab.rb
can be found here: gitlab.rb.template
Some examples:
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
gitlab_rails => {
'webhook_timeout' => 10,
'gitlab_default_theme' => 2,
},
logging => {
'svlogd_size' => '200 * 1024 * 1024',
},
}
Service management
GitLab Omnibus is designed to manage it's own services internally. The
gitlab-runsvdir
service isn't a typical service that you would manage with
puppet, it is a monitoring service for the other services gitlab will create
based on your selected configuration. Starting, stopping and restarting the
gitlab-runsvdir
service should only be done by gitlab-ctl
commands. Service
restart is also handled implicitly during installation and upgrades, and does
not normally need to be triggered by puppet.
If you find yourself needing to modify this behavior, you can set
service_manage => true
to have puppet ensure the service is running.
Setting service_provider_restart => true
will cause puppet to trigger a
gitlab-ctl restart
command to be issued following any configuration change
managed by puppet.
Package & Repository Configuration
Repository Resource Configuration
This module allows you a great range of options when configuring the repository
and package sources on your host. By default, the gitlab repository will be
configured to use the upstream source from packagecloud. However, if you
wish to use a different repository source, you can provide your own yumrepo
,
apt
or any other package/repository configuration you wish.
This module does this by iterating through configurations provided to
gitlab::omnibus_package_repository::repository_configuration
. You can provide
any number of repository resource types and configurations you want, as long as
the dependent modules are installed on your basemodulepath.
This approach provides the following advantages:
- means any and all parameters supported by your repository manager module are
inherently supported by the
gitlab
module - you aren't required to use a version of a dependency we specify, supporting a
wide range of versions for modules like
apt
- you can easily add more required repositories and packages as needed by your
infrastructure, and ensure ordering is managed within the
gitlab
module before any GitLab related packages are installed
In order to provide your own repository configurations, you are required to set
manage_upstream_edition => disabled
, and provide a hash of repository resource
type configurations in the following format:
gitlab::repository_configuration:
repository_resource_type: #ex... 'apt::source` or `apt::pin` or `yumrepo`
repository_resource_title:
repository_resource_attribute1: 'value'
repository_resource_attribute2: 'value'
Examples/defaults for yumrepo
can be found at data/RedHat.yaml
, and for
apt
at data/Debian.yaml
.
You could also do things like:
- add an additional repository at the same level as
internal_mirror_of_gitlab_official_ce
(for example if you wanted to use your own packagenginx
instead of the one provided in omnibus-gitlab) - add any other high level resource types from the
apt
module at the level ofapt:source
. (apt::pin
,apt::key
, etc...)
Each unique resource provided to the repository_configuration
setup:
- gets tagged with
gitlab_omnibus_package_resource
- gets the
before => Class['gitlab::install']
metaparameter.
You can use these tags to further customize ordering within your own catalogs.
Selecting Version, edition, package name and holding
The package_ensure
parameter is used to control which version of the package
installed. It expects either a version string, or one of the ensure
values for
the Package
resource type. Default is installed
. This value works with the
package_name
parameter to install the correct package.
If you are using upstream package source, the package name automatically
switches between gitlab-ce
and gitlab-ee
depending on the value you have
provided to manage_upstream_edition
. If manage_upstream_edition
is set to
disabled
, you will need to provide the appropriate value to package_name
yourself.
This approach of package management has the following advantages:
- more easily adaptable if GitLab changes package naming based on editions (won't require you to install new puppet-gitlab module if you're not ready)
- allows you to install custom built packages for gitlab-omnibus that have different package name on your host
The package_hold
parameter allows you to hold the package version in the APT
package manager. This is useful when you intend to update the host with
'apt upgrade' (or the bolt task apt action=upgrade
from puppetlabs-apt) and
keep your gitlab instance at the intended version. This prevents unintended
upgrading gitlab and perhaps skipping important upgrade path steps.
To learn more about gitlab upgrading please visit the upgrade path page.
Custom Repository & Package configuration example
As an expanded example of repository and package configuration, let's assume you're:
- using a private mirror of the upstream GitLab‚ package channel
- hosted inside your organizations firewall
- installing gitlab-omnibus enterprise edition
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
manage_upstream_edition => 'disabled',
package_name => 'gitlab-ee',
repository_configuration => {
'apt::source' => {
'internal_mirror_of_gitlab_official_ce' => {
'comment' => 'Internal mirror of upstream GitLab package repository',
'location' => 'https://my.internal.url/repository/packages.gitlab.com/gitlab/gitlab-ce/debian',
'key' => {
'id' => 'F6403F6544A38863DAA0B6E03F01618A51312F3F',
'source' => 'https://my.internal.url/repository/package.gitlab.com/gpg.key'
}
},
}
}
}
GitLab secrets
Note: gitlab::secrets
parameter was removed in v3.0.0. See: Issues#213 -
Remove support for setting content of gitlab-secrets.json
When using HA role application_role
, make sure to add the appropriate shared
secrets to your gitlab_rails
and gitlab_shell
hashes to ensure
front-end nodes are configured to access all backend data-sources and
repositories. If you receive 500 errors on your HA setup, this is one of the
primary causes.
LDAP configuration example
Here is an example how to configure LDAP using Hiera:
gitlab::gitlab_rails:
ldap_enabled: true
ldap_servers:
myldapserver:
label: 'Company LDAP'
host: 'ldap.company.tld'
port: 389
uid: 'uid'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'MYBINDDN'
password: 'MYBINDPW'
active_directory: false
allow_username_or_email_login: false
block_auto_created_users: false
base: 'MYBASEDN'
group_base: 'MYGROUPBASE'
user_filter: ''
NGINX Configuration
Configuration of the embedded NGINX instance is handled by the
/etc/gitlab/gitlab.rb
file. Details on available configuration options are
available at [https://docs.gitlab.com/omnibus/settings/nginx.html][NGINX settings].
Options listed there can be passed in to the nginx
parameter as a hash.
For example, to enable redirection from HTTP to HTTPS:
class { 'gitlab':
external_url => 'https://gitlab.mydomain.tld',
nginx => {
redirect_http_to_https => true,
},
}
Similarly, the certificate and key location can be configured as follows:
class { 'gitlab':
external_url => 'https://gitlab.mydomain.tld',
nginx => {
ssl_certificate => '/etc/gitlab/ssl/gitlab.example.com.crt',
ssl_certificate_key => '/etc/gitlab/ssl/gitlab.example.com.key'
},
}
Skip Auto Reconfigure (formerly Skip Auto Migrations)
In order to achieve Zero Downtime Upgrades of your GitLab instance, GitLab
will need to skip the post-install step of the omnibus package that
automatically calls gitlab-ctl reconfigure
for you. In GitLab < 10.5, GitLab
check for the presence of a file at /etc/gitlab/skip-auto-migrations
. As of
GitLab 10.6
, this is deprecated, and you are warned to use
/etc/gitlab/skip-auto-reconfigure
going forward.
Both of these are currently supported in this module, and you should be aware of which option is right for you based on the version of GitLab Omnibus you are running. You will be presented with a deprecation notice in you puppet client if using the deprecated form.
# use 'absent' or 'present' for the skip_auto_reconfigure param
class { 'gitlab':
skip_auto_reconfigure => 'present'
}
# use true/false for the skip_auto_migrations param
class { 'gitlab':
skip_auto_migrations => true
}
GitLab Custom Hooks
Manage custom hook files within a GitLab project. Custom hooks can be created as a pre-receive, post-receive, or update hook. It's possible to create different custom hook types for the same project - one each for pre-receive, post-receive and update.
gitlab::custom_hook { 'my_custom_hook':
namespace => 'my_group',
project => 'my_project',
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
or via hiera
gitlab::custom_hooks:
my_custom_hook:
namespace: my_group
project: my_project
type: post-receive
source: 'puppet:///modules/my_module/post-receive'
Since GitLab Shell 4.1.0 and GitLab 8.15 Chained hooks are supported. You can create global hooks which will run for each repository on your server. Global hooks can be created as a pre-receive, post-receive, or update hook.
gitlab::global_hook { 'my_custom_hook':
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
or via hiera
gitlab::global_hooks:
my_custom_hook:
type: post-receive
source: 'puppet:///modules/my_module/post-receive'
Gitlab System Hooks
A file hook will run on each event so it's up to you to filter events or projects within a file hook code. You can have as many file hooks as you want. Each file hook will be triggered by GitLab asynchronously in case of an event. For a list of events see the system hooks documentation.
gitlab::system_hook { 'my_custom_hook':
source => 'puppet:///modules/my_module/file-hook',
}
or via hiera
gitlab::system_hooks:
my_custom_hook:
source: 'puppet:///modules/my_module/file-hook'
Fast Lookup of SSH keys
GitLab instances with a large number of users may notice slowdowns when making
initial connections for ssh operations. GitLab has created a feature that allows
authorized ssh keys to be stored in the db (instead of the authorized_keys
file for the git
user)
You can enable this feature in GitLab using the store_git_keys_in_db
parameter,
or by enabling gitlab-sshd
as it is configured to use fast lookup automatically.
Please note, while you can manage gitlab-sshd (Gitlab's standalone SSH server)
with this module, you can not manage openssh and the sshd service as it is outside
the scope of the module. You will need to configure the AuthorizedKeysCommand
for the git
user in sshd.server yourself. Instructions for this are provided by
GitLab at Fast lookup of authorized SSH keys in the databasse
Setting up GitLab HA
pgbouncer Authentication
For use in HA configurations, or when using postgres replication in a
single-node setup, this module supports automated configuration of pgbouncer
authentication. To set this up, set pgpass_file_ensure => 'present'
and
provide a valid value for pgbouncer_password
.
class {'gitlab':
pgpass_file_ensure => 'present',
pgbouncer_password => 'YourPassword'
}
By default, this creates a file at /home/gitlab-consul/.pgpass
, which gitlab
uses to authenticate to the pgbouncer database as the gitlab-consul
database
user. This does not refer to the gitlab-consul
system user. The location of
the .pgpass
file can be changed based on how you manage homedirs or based on
your utilization of NFS. This location should be set to be the home directory
you have configured for the gitlab-consul
system user.
class {'gitlab':
pgpass_file_location => '/homedir/for/gitlab-consul-system-user/.pgpass'
}
Tasks
The GitLab module has a task that allows a user to upgrade the pgsql database
GitLab uses if upgrading from version 9.2.18, which is required to upgrade
GitLab past 10. When running the tasks on the command line, you will need to
use the --sudo
, --run-as-root
, and --tty
flags to execute the commands as
needed for your environment.
Please refer to to the PE documentation or Bolt documentation on how to execute a task.
Development
- Fork on Github
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Make sure your PR passes the Rspec tests.
Contributors
Have a look at Github contributors to see a list of all the awesome contributors to this Puppet module. <3 This module was created and maintained by VSHN AG until the end of 2017. It was then donated to Voxpupuli so that a broader community is able to maintain the module.‚
Reference
Table of Contents
Classes
gitlab
: This module installs and configures Gitlab with the Omnibus package.gitlab::backup
: This class is called from gitlab for backup config.gitlab::host_config
: This class is for setting host configurations required for gitlab installation.gitlab::install
: This class is called from gitlab for install.gitlab::omnibus_config
: This class is used to configure the gitlab omnibus package on a nodegitlab::omnibus_package_repository
: This class is used to configure gitlab repositoriesgitlab::service
: This class is meant to be called from gitlab. It ensure the service is running.
Defined types
gitlab::custom_hook
: Manage custom hook files within a GitLab project. Custom hooks can be created as a pre-receive, post-receive, or update hook. Only one of each is currently supported by this module.gitlab::global_hook
: Manage global chain loaded hook files for all GitLab projects. Hooks can be created as a pre-receive, post-receive, or update hook. It's possible to create multipe hooks per type as long as their names are unique. Support for chained (global) hooks is introduced in GitLab Shell 4.1.0 and GitLab 8.15.gitlab::system_hook
: A file hook will run on each event so it's up to you to filter events or projects
Tasks
post_upgrade
: Cleans up old postgres database after upgradepostgres_upgrade
: Upgrades the postgres database if needed
Classes
gitlab
This module installs and configures Gitlab with the Omnibus package.
Parameters
The following parameters are available in the gitlab
class:
package_ensure
service_name
service_enable
service_exec
service_ensure
service_manage
service_provider_restart
service_user
service_group
rake_exec
edition
manage_upstream_edition
config_manage
config_file
alertmanager
ci_redis
ci_unicorn
external_url
external_port
geo_postgresql
geo_logcursor
geo_primary_role
geo_secondary
geo_secondary_role
git
gitaly
git_data_dirs
gitlab_git_http_server
gitlab_ci
gitlab_kas
gitlab_pages
gitlab_rails
gitlab_sshd
gitlab_workhorse
grafana
logging
letsencrypt
package
logrotate
manage_storage_directories
manage_accounts
mattermost_external_url
mattermost
mattermost_nginx
mattermost_nginx_eq_nginx
nginx
node_exporter
redis_exporter
postgres_exporter
pgbouncer_exporter
gitlab_monitor
gitlab_exporter
pages_external_url
pages_nginx
pages_nginx_eq_nginx
praefect
postgresql
prometheus
prometheus_monitoring_enable
redis
redis_master_role
redis_slave_role
redis_sentinel_role
registry
registry_external_url
registry_nginx
registry_nginx_eq_nginx
roles
sentinel
shell
sidekiq
sidekiq_cluster
skip_auto_migrations
skip_auto_reconfigure
skip_post_deployment_migrations
store_git_keys_in_db
source_config_file
unicorn
puma
user
web_server
high_availability
backup_cron_enable
backup_cron_minute
backup_cron_hour
backup_cron_skips
package_hold
package_name
manage_package
repository_configuration
manage_omnibus_repository
pgpass_file_location
pgpass_file_ensure
pgbouncer_password
consul
custom_hooks_dir
system_hooks_dir
pgbouncer
repmgr
custom_hooks
global_hooks
system_hooks
package_ensure
Data type: String
Can be used to choose exact package version to install.
Default value: 'installed'
service_name
Data type: String
Name of the system service.
Default value: 'gitlab-runsvdir'
service_enable
Data type: Boolean
Run the system service on boot.
Default value: true
service_exec
Data type: String
The service executable path. Provide this variable value only if the service executable path would be a subject of change in future GitLab versions for any reason.
Default value: '/usr/bin/gitlab-ctl'
service_ensure
Data type: Enum['stopped', 'false', 'running', 'true']
Should Puppet start the service?
Default value: 'running'
service_manage
Data type: Boolean
Should Puppet manage the service?
Default value: false
service_provider_restart
Data type: Boolean
Should Puppet restart the gitlab systemd service?
Default value: false
service_user
Data type: String
Owner of the config file.
Default value: 'root'
service_group
Data type: String
Group of the config file.
Default value: 'root'
rake_exec
Data type: String
The gitlab-rake executable path. You should not need to change this path.
Default value: '/usr/bin/gitlab-rake'
edition
Data type: Optional[String]
Deprecated: See manage_upstream_edition
Default value: undef
manage_upstream_edition
Data type: Enum['ce', 'ee', 'disabled']
One of [ 'ce', 'ee', 'disabled' ]. Manage the installation of an upstream Gitlab Omnibus edition to install.
Default value: 'ce'
config_manage
Data type: Boolean
Should Puppet manage the config?
Default value: true
config_file
Data type: Stdlib::Absolutepath
Path of the Gitlab Omnibus config file.
Default value: '/etc/gitlab/gitlab.rb'
alertmanager
Data type: Optional[Hash]
Hash of 'alertmanager' config parameters.
Default value: undef
ci_redis
Data type: Optional[Hash]
Hash of 'ci_redis' config parameters.
Default value: undef
ci_unicorn
Data type: Optional[Hash]
Hash of 'ci_unicorn' config parameters.
Default value: undef
external_url
Data type: Stdlib::Httpurl
External URL of Gitlab.
Default value: "http://${facts['networking']['fqdn']}"
external_port
Data type: Optional[Integer[1, 65565]]
External PORT of Gitlab.
Default value: undef
geo_postgresql
Data type: Optional[Hash]
Hash of 'geo_postgresql' config parameters.
Default value: undef
geo_logcursor
Data type: Optional[Hash]
Hash of 'geo_logcursor' config parameters.
Default value: undef
geo_primary_role
Data type: Boolean
Boolean to enable Geo primary role
Default value: false
geo_secondary
Data type: Optional[Hash]
Hash of 'geo_secondary' config parameters.
Default value: undef
geo_secondary_role
Data type: Boolean
Boolean to enable Geo secondary role
Default value: false
git
Data type: Optional[Hash]
Hash of 'omnibus_gitconfig' config parameters.
Default value: undef
gitaly
Data type: Optional[Hash]
Hash of 'omnibus_gitconfig' config parameters.
Default value: undef
git_data_dirs
Data type: Optional[Hash]
Hash of git data directories
Default value: undef
gitlab_git_http_server
Data type: Optional[Hash]
Hash of 'gitlab_git_http_server' config parameters.
Default value: undef
gitlab_ci
Data type: Optional[Hash]
Hash of 'gitlab_ci' config parameters.
Default value: undef
gitlab_kas
Data type: Optional[Hash]
Hash of 'gitlab_kas' config parameters.
Default value: undef
gitlab_pages
Data type: Optional[Hash]
Hash of 'gitlab_pages' config parameters.
Default value: undef
gitlab_rails
Data type: Optional[Hash]
Hash of 'gitlab_pages' config parameters.
Default value: undef
gitlab_sshd
Data type: Optional[Hash]
Hash of 'gitlab_sshd' config parameters.
Default value: undef
gitlab_workhorse
Data type: Optional[Hash]
Hash of 'gitlab_workhorse' config parameters.
Default value: undef
grafana
Data type: Optional[Hash]
Hash of 'grafana' config parameters.
Default value: undef
logging
Data type: Optional[Hash]
Hash of 'logging' config parameters.
Default value: undef
letsencrypt
Data type: Optional[Hash]
Hash of 'letsencrypt' config parameters.
Default value: undef
package
Data type: Optional[Hash[String[1], Scalar]]
Hash of 'package' config parameters.
Default value: undef
logrotate
Data type: Optional[Hash]
Hash of 'logrotate' config parameters.
Default value: undef
manage_storage_directories
Data type: Optional[Hash]
Hash of 'manage_storage_directories' config parameters.
Default value: undef
manage_accounts
Data type: Optional[Hash]
Hash of 'manage_accounts' config parameters.
Default value: undef
mattermost_external_url
Data type: Optional[String]
External URL of Mattermost.
Default value: undef
mattermost
Data type: Optional[Hash]
Hash of 'mattmost' config parameters.
Default value: undef
mattermost_nginx
Data type: Optional[Hash]
Hash of 'mattmost_nginx' config parameters.
Default value: undef
mattermost_nginx_eq_nginx
Data type: Boolean
Replicate the Mattermost Nginx config from the Gitlab Nginx config.
Default value: false
nginx
Data type: Optional[Hash]
Hash of 'nginx' config parameters.
Default value: undef
node_exporter
Data type: Optional[Hash]
Hash of 'node_exporter' config parameters.
Default value: undef
redis_exporter
Data type: Optional[Hash]
Hash of 'redis_exporter' config parameters.
Default value: undef
postgres_exporter
Data type: Optional[Hash]
Hash of 'postgres_exporter' config parameters.
Default value: undef
pgbouncer_exporter
Data type: Optional[Hash]
Hash of 'pgbouncer_exporter' config parameters.
Default value: undef
gitlab_monitor
Data type: Optional[Hash]
Deprecated if using Gitlab > 12.3 and < 13.0, unsupported by gitlab omnibus using Gitlab 13+. Hash of 'gitlab_monitor' config parameters.
Default value: undef
gitlab_exporter
Data type: Optional[Hash]
Hash of 'gitlab_exporter' config parameters.
Default value: undef
pages_external_url
Data type: Optional[String]
External URL of Gitlab Pages.
Default value: undef
pages_nginx
Data type: Optional[Hash]
Hash of 'pages_nginx' config parameters.
Default value: undef
pages_nginx_eq_nginx
Data type: Boolean
Replicate the Pages Nginx config from the Gitlab Nginx config.
Default value: false
praefect
Data type: Optional[Hash]
Hash of 'praefect' config parameters.
Default value: undef
postgresql
Data type: Optional[Hash]
Hash of 'postgresql' config parameters.
Default value: undef
prometheus
Data type: Optional[Hash]
Hash of 'prometheus' config parameters.
Default value: undef
prometheus_monitoring_enable
Data type: Optional[Boolean]
Enable/disable prometheus support.
Default value: undef
redis
Data type: Optional[Hash]
Hash of 'redis' config parameters.
Default value: undef
redis_master_role
Data type: Optional[Boolean]
To enable Redis master role for the node.
Default value: undef
redis_slave_role
Data type: Optional[Boolean]
To enable Redis slave role for the node.
Default value: undef
redis_sentinel_role
Data type: Optional[Boolean]
To enable sentinel role for the node.
Default value: undef
registry
Data type: Optional[Hash]
Hash of 'registry' config parameters.
Default value: undef
registry_external_url
Data type: Optional[String]
External URL of Registry
Default value: undef
registry_nginx
Data type: Optional[Hash]
Hash of 'registry_nginx' config parameters.
Default value: undef
registry_nginx_eq_nginx
Data type: Boolean
Replicate the registry Nginx config from the Gitlab Nginx config.
Default value: false
roles
Data type: Optional[Array]
Array of roles when using a HA or Geo enabled GitLab configuration. See: https://docs.gitlab.com/omnibus/roles/README.html for acceptable values
Default value: undef
sentinel
Data type: Optional[Hash]
Hash of 'sentinel' config parameters.
Default value: undef
shell
Data type: Optional[Hash]
Hash of 'gitlab_shell' config parameters.
Default value: undef
sidekiq
Data type: Optional[Hash]
Hash of 'sidekiq' config parameters
Default value: undef
sidekiq_cluster
Data type: Optional[Hash]
Hash of 'sidekiq_cluster' config parameters.
Default value: undef
skip_auto_migrations
Data type: Optional
Deprecated if using Gitlab > 10.6.4 and < 11.0.0, unsupported by gitlab omnibus using gitlab 11+. Use skip_auto_reconfigure
Default value: undef
skip_auto_reconfigure
Data type: Enum['present', 'absent']
Utilized for Zero Downtime Updates, See: https://docs.gitlab.com/omnibus/update/README.html#zero-downtime-updates
Default value: 'absent'
skip_post_deployment_migrations
Data type: Boolean
Adds SKIP_POST_DEPLOYMENT_MIGRATIONS=true to the execution of gitlab-ctl reconfigure. Used for zero-downtime updates
Default value: false
store_git_keys_in_db
Data type: Boolean
Enable or disable Fast Lookup of authorized SSH keys in the database. See: https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html
Default value: false
source_config_file
Data type: Optional[Stdlib::Absolutepath]
Override Hiera config with path to gitlab.rb config file
Default value: undef
unicorn
Data type: Optional[Hash]
Hash of 'unicorn' config parameters.
Default value: undef
puma
Data type: Optional[Hash]
Hash of 'puma' config parameters.
Default value: undef
user
Data type: Optional[Hash]
Hash of 'user' config parameters.
Default value: undef
web_server
Data type: Optional[Hash]
Hash of 'web_server' config parameters.
Default value: undef
high_availability
Data type: Optional[Hash]
Hash of 'high_availability' config parameters.
Default value: undef
backup_cron_enable
Data type: Boolean
Boolean to enable the daily backup cron job
Default value: false
backup_cron_minute
Data type: Integer[0,59]
The minute when to run the daily backup cron job
Default value: 0
backup_cron_hour
Data type: Integer[0,23]
The hour when to run the daily backup cron job
Default value: 2
backup_cron_skips
Data type: Array
Array of items to skip valid values: db, uploads, repositories, builds, artifacts, lfs, registry, pages
Default value: []
package_hold
Data type: Enum['hold', 'none']
Wether to hold the specified package version. Available options are 'hold' or 'none'. Defaults to 'none'. Available only for Debian/Solaris package managers.
Default value: 'none'
package_name
Data type: Optional[String]
The internal packaging system's name for the package. This name will automatically be changed by the gitlab::edition parameter. Can be overridden for the purposes of installing custom compiled version of gitlab-omnibus.
Default value: undef
manage_package
Data type: Boolean
Should the GitLab package be managed?
Default value: true
repository_configuration
Data type: Hash
A hash of repository types and attributes for configuraiton the gitlab package repositories. See docs in README.md
manage_omnibus_repository
Data type: Boolean
Set to false if you wish to manage gitlab without configuring the package repository
Default value: true
pgpass_file_location
Data type: Stdlib::Absolutepath
Path to location of .pgpass file used by consul to authenticate with pgbouncer database
Default value: '/home/gitlab-consul/.pgpass'
pgpass_file_ensure
Data type: Enum['absent', 'present']
Create .pgpass file for pgbouncer authentication. When set to present requires valid value for pgbouncer_password.
Default value: 'absent'
pgbouncer_password
Data type: Optional[String]
Password for the gitlab-consul database user in the pgbouncer database
Default value: undef
consul
Data type: Optional[Hash]
Default value: undef
custom_hooks_dir
Data type: Stdlib::Absolutepath
Default value: '/opt/gitlab/embedded/service/gitlab-shell/hooks'
system_hooks_dir
Data type: Stdlib::Absolutepath
Default value: '/opt/gitlab/embedded/service/gitlab-rails/file_hooks'
pgbouncer
Data type: Optional[Hash]
Default value: undef
repmgr
Data type: Optional[Hash]
Default value: undef
custom_hooks
Data type: Hash
Default value: {}
global_hooks
Data type: Hash
Default value: {}
system_hooks
Data type: Hash[String[1],Hash[String[1],Any]]
Default value: {}
gitlab::backup
This class is called from gitlab for backup config.
gitlab::host_config
This class is for setting host configurations required for gitlab installation.
Parameters
The following parameters are available in the gitlab::host_config
class:
config_dir
skip_auto_migrations
skip_auto_reconfigure
store_git_keys_in_db
pgpass_file_ensure
pgpass_file_location
pgbouncer_password
config_dir
Data type: Any
The service executable path. Provide this variable value only if the service executable path would be a subject of change in future GitLab versions for any reason.
Default value: '/etc/gitlab'
skip_auto_migrations
Data type: Any
Deprecated if using Gitlab > 10.6.4 and < 11.0.0, unsupported by gitlab omnibus using gitlab 11+. Use skip_auto_reconfigure
Default value: $gitlab::skip_auto_migrations
skip_auto_reconfigure
Data type: Any
Utilized for Zero Downtime Updates, See: https://docs.gitlab.com/omnibus/update/README.html#zero-downtime-updates
Default value: $gitlab::skip_auto_reconfigure
store_git_keys_in_db
Data type: Any
Enable or disable Fast Lookup of authorized SSH keys in the database. See: https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html
Default value: $gitlab::store_git_keys_in_db
pgpass_file_ensure
Data type: Any
Create .pgpass file for pgbouncer authentication. When set to present requires valid value for pgbouncer_password.
Default value: $gitlab::pgpass_file_ensure
pgpass_file_location
Data type: Any
Path to location of .pgpass file used by consul to authenticate with pgbouncer database
Default value: $gitlab::pgpass_file_location
pgbouncer_password
Data type: Any
Password for the gitlab-consul database user in the pgbouncer database
Default value: $gitlab::pgbouncer_password
gitlab::install
This class is called from gitlab for install.
Parameters
The following parameters are available in the gitlab::install
class:
package_name
Data type: Any
Default value: $gitlab::package_name
package_ensure
Data type: Any
Default value: $gitlab::package_ensure
package_hold
Data type: Any
Default value: $gitlab::package_hold
manage_package
Data type: Any
Default value: $gitlab::manage_package
gitlab::omnibus_config
This class is used to configure the gitlab omnibus package on a node
Parameters
The following parameters are available in the gitlab::omnibus_config
class:
config_manage
Data type: Any
Should Puppet manage the config?
Default value: $gitlab::config_manage
config_file
Data type: Any
Path of the Gitlab Omnibus config file.
Default value: $gitlab::config_file
gitlab::omnibus_package_repository
This class is used to configure gitlab repositories
Parameters
The following parameters are available in the gitlab::omnibus_package_repository
class:
repository_configuration
Data type: Any
A hash of repository types and attributes for configuraiton the gitlab package repositories. See docs in README.md
Default value: $gitlab::repository_configuration
manage_omnibus_repository
Data type: Any
Set to false if you wish to manage gitlab without configuring the package repository
Default value: $gitlab::manage_omnibus_repository
manage_upstream_edition
Data type: Any
One of [ 'ce', 'ee', 'disabled' ]. Manage the installation of an upstream Gitlab Omnibus edition to install.
Default value: $gitlab::manage_upstream_edition
gitlab::service
This class is meant to be called from gitlab. It ensure the service is running.
Parameters
The following parameters are available in the gitlab::service
class:
service_ensure
service_enable
service_name
service_exec
service_manage
service_provider_restart
skip_post_deployment_migrations
service_ensure
Data type: Any
Should Puppet start the service?
Default value: $gitlab::service_ensure
service_enable
Data type: Any
Run the system service on boot.
Default value: $gitlab::service_enable
service_name
Data type: Any
Name of the system service.
Default value: $gitlab::service_name
service_exec
Data type: Any
The service executable path. Provide this variable value only if the service executable path would be a subject of change in future GitLab versions for any reason.
Default value: $gitlab::service_exec
service_manage
Data type: Any
Should Puppet manage the service?
Default value: $gitlab::service_manage
service_provider_restart
Data type: Any
Should Puppet restart the gitlab systemd service?
Default value: $gitlab::service_provider_restart
skip_post_deployment_migrations
Data type: Any
Adds SKIP_POST_DEPLOYMENT_MIGRATIONS=true to the execution of gitlab-ctl reconfigure. Used for zero-downtime updates
Default value: $gitlab::skip_post_deployment_migrations
Defined types
gitlab::custom_hook
Manage custom hook files within a GitLab project. Custom hooks can be created as a pre-receive, post-receive, or update hook. Only one of each is currently supported by this module.
Examples
Custom hook usage
gitlab::custom_hook { 'my_custom_hook':
namespace => 'my_group',
project => 'my_project',
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
Calculate hashed storage path
gitlab::custom_hook { 'my_custom_hook':
project => 93,
hashed_storage => true,
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
# Hook path will be `@hashed/6e/40/6e4001871c0cf27c7634ef1dc478408f642410fd3a444e2a88e301f5c4a35a4d`
Parameters
The following parameters are available in the gitlab::custom_hook
defined type:
project
Data type: Variant[String,Integer]
The GitLab project name, or the hashed directory name or project ID number
namespace
Data type: Optional[String]
The GitLab group namespace for the project.
Default value: undef
type
Data type: Enum['update', 'post-receive', 'pre-receive']
The custom hook type. Should be one of pre-receive, post-receive, or update.
content
Data type: Optional[String]
Specify the custom hook contents either as a string or using the template function. If this paramter is specified source parameter must not be present.
Default value: undef
source
Data type: Optional[String]
Specify a file source path to populate the custom hook contents. If this paramter is specified content parameter must not be present.
Default value: undef
repos_path
Data type: Optional[Stdlib::Absolutepath]
The GitLab shell repos path. This defaults to '/var/opt/gitlab/git-data/repositories' if not present.
Default value: undef
hashed_storage
Data type: Boolean
Whether to treat the project name as a hashed storage directory name or ID number
Default value: false
gitlab::global_hook
Manage global chain loaded hook files for all GitLab projects. Hooks can be created as a pre-receive, post-receive, or update hook. It's possible to create multipe hooks per type as long as their names are unique. Support for chained (global) hooks is introduced in GitLab Shell 4.1.0 and GitLab 8.15.
Examples
Global hook usage
gitlab::custom_hook { 'my_custom_hook':
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
Parameters
The following parameters are available in the gitlab::global_hook
defined type:
type
Data type: Enum['post-receive', 'pre-receive', 'update']
The custom hook type. Should be one of pre-receive, post-receive, or update.
custom_hooks_dir
Data type: Stdlib::Absolutepath
The GitLab shell repos path. This defaults to '/opt/gitlab/embedded/service/gitlab-shell/hooks' if not present.
Default value: $gitlab::custom_hooks_dir
content
Data type: Optional[String[1]]
Specify the custom hook contents either as a string or using the template function. If this paramter is specified source parameter must not be present.
Default value: undef
source
Data type: Optional[Pattern[/^puppet:/]]
Specify a file source path to populate the custom hook contents. If this paramter is specified content parameter must not be present.
Default value: undef
gitlab::system_hook
within a file hook code. You can have as many file hooks as you want. Each file hook will be triggered by GitLab asynchronously in case of an event. For a list of events see the system hooks documentation.
Examples
System hook usage
gitlab::system_hook { 'my_system_hook':
type => 'post-receive',
source => 'puppet:///modules/my_module/post-receive',
}
Parameters
The following parameters are available in the gitlab::system_hook
defined type:
system_hooks_dir
Data type: Stdlib::Absolutepath
The GitLab shell repos path. This defaults to '/opt/gitlab/embedded/service/gitlab-rails/file_hooks' if not present.
Default value: $gitlab::system_hooks_dir
content
Data type: Optional[String[1]]
Specify the system hook contents either as a string or using the template function. If this paramter is specified source parameter must not be present.
Default value: undef
source
Data type: Optional[Pattern[/^puppet:/]]
Specify a file source path to populate the system hook contents. If this paramter is specified content parameter must not be present.
Default value: undef
Tasks
post_upgrade
Cleans up old postgres database after upgrade
Supports noop? false
postgres_upgrade
Upgrades the postgres database if needed
Supports noop? false
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v10.1.0 (2024-11-04)
Implemented enhancements:
- Debian: Add support for holding a package #440 (NeatNerdPrime)
v10.0.0 (2024-09-20)
Breaking changes:
- Drop EoL CentOS 8 #448 (bastelfreak)
- Drop EoL Debian 10 & 11 #447 (bastelfreak)
- Drop EoL Ubuntu 18.04 #444 (bastelfreak)
- Drop EoL EL7 support #442 (bastelfreak)
Implemented enhancements:
- Add AlmaLinux 8 & 9 support #446 (bastelfreak)
- Add CentOS 9 support #445 (bastelfreak)
- Add Ubuntu 24.04 support #443 (bastelfreak)
- Add EL9, Debian 12, Ubuntu 22.04 support #430 (yakatz)
- Improve support for hooks in
@hashed
storage #429 (yakatz)
Merged pull requests:
- Update to support Praefect #433 (talseth)
- fix apt-key deprecation #432 (b17k0)
- Updated CI badges #431 (yakatz)
v9.0.0 (2024-01-25)
Breaking changes:
- Remove Debian 9 (EOL) #408 (smortex)
- Drop Puppet 6 support #407 (bastelfreak)
Implemented enhancements:
- Adding support for the gitlab_sshd configuration hash #421 (lodzo)
- Add Puppet 8 support #416 (bastelfreak)
- puppetlabs/stdlib: Allow 9.x #415 (bastelfreak)
- Add Debian 11 (stable) #412 (smortex)
Closed issues:
- gitlab_sshd support in the omnibus config #417
Merged pull requests:
v8.1.0 (2022-12-13)
Implemented enhancements:
Fixed bugs:
v8.0.0 (2021-08-27)
Breaking changes:
Implemented enhancements:
Merged pull requests:
v7.1.0 (2021-06-05)
Implemented enhancements:
- Add support for the gitlab_kas configuration hash. #385 (Rabie-Zamane)
v7.0.0 (2021-05-09)
Breaking changes:
- Drop CentOS 6 from metadata.json / Enable Puppet 7 support / Drop Puppet 5 support #376 (bastelfreak)
Implemented enhancements:
- Add system hooks management #380 (cduelo)
- Add support for geo_logcursor options in gitlab.rb #379 (liger1978)
Closed issues:
- inspect escaping node variable #373
- nginx still not documented #371
- gitlab_rails['ldap_servers'] question #367
Merged pull requests:
- Allow latest puppetlabs/apt and puppetlabs/stdlib #382 (bastelfreak)
- puppetlabs/stdlib: Allow 7.x #381 (bastelfreak)
- Update README.md #378 (arjenz)
- README: link to gitlab omnibus nginx documentation #377 (antondollmaier)
- Add support for the 'package' omnibus configuration hash. #375 (rayward)
- Add missing (required) name value for yum repo #370 (jorhett)
- Fix cut and paste error in documentation #369 (sgnl05)
v6.0.1 (2020-11-06)
Fixed bugs:
- Fix gitlab-ctl reconfigure LD_LIBRARY_PATH warning #364 (lnemsick-simp)
v6.0.0 (2020-10-29)
Breaking changes:
Implemented enhancements:
Closed issues:
Merged pull requests:
- OS data: YAML linting cleanups #359 (kenyon)
- tasks/postgres_upgrade.sh: shellcheck and related fixes #357 (kenyon)
- Fix CI: Fix puppet-lint error (lint_fix) #352 (baurmatt)
- Redirect stderr for backup cron to stdout #351 (baurmatt)
v5.1.0 (2020-07-20)
Implemented enhancements:
- Add pgbouncer_exporter parameter #345 (liger1978)
- Add support for running Gitlab with puma #338 (baurmatt)
Closed issues:
- Convert dokumentation to puppet-strings #339
- Support puma #337
- New GitLab GPG Keys #333
- module has no parameter named
external_url
puppet error #330
Merged pull requests:
- Fix several markdown lint issues #341 (dhoppe)
- Move documentation to puppet-strings #340 (baurmatt)
- Use voxpupuli-acceptance #335 (ekohl)
v5.0.0 (2020-04-07)
Breaking changes:
- Support puppetlabs/stdlib 6.x #320 (pillarsdotnet)
Implemented enhancements:
- Support Debian 10 #332 (antondollmaier)
- Use new gitlab gpg keys for package management #331 (jkroepke)
Fixed bugs:
- Fix typo in configuration file comments #314 (cpeetersburg)
Closed issues:
Merged pull requests:
v4.0.1 (2019-05-02)
Fixed bugs:
v4.0.0 (2019-04-30)
Breaking changes:
- modulesync 2.7.0 and drop puppet 4 #305 (bastelfreak)
- Remove service dependency cycle by dropping management of the gitlab-runsvdir service #293 (LongLiveCHIEF)
Implemented enhancements:
- Add support for Debian 9 and Ubuntu 18.04 #308 (dhoppe)
- Allow puppetlabs/apt 7.x #307 (dhoppe)
- Add support for Grafana dashboard #303 (minorOffense)
Fixed bugs:
- Dependency error when gitlab::service::service_manage is set to false #284
Closed issues:
- Add support for Grafana dashboard #302
- Need to know how to set the root password via this module #301
- typo in .github/issue template #296
- Mattermost SMTP port cannot be configured by the module #289
Merged pull requests:
- Update README.md #295 (jjasghar)
- updating module descr and support info #294 (LongLiveCHIEF)
- Fix Continuous Integration #292 (smortex)
- enable beaker acceptance tests #287 (Dan33l)
- Replace deprecated validate_* functions #286 (baurmatt)
v3.0.2 (2018-10-17)
Fixed bugs:
v3.0.1 (2018-10-13)
Fixed bugs:
Closed issues:
- DEB repo on ubuntu should not point to debian #277
v3.0.0 (2018-10-13)
Breaking changes:
- Remove support for setting content of
gitlab-secrets.json
#213 - remove gitlab-ci-runner from module #262 (LongLiveCHIEF)
- 244 refactor repository package management #246 (LongLiveCHIEF)
- Do not manage apt-transport-https. #243 (jkroepke)
- Refactor resource ordering #241 (LongLiveCHIEF)
Implemented enhancements:
- Alertmanager support in the omnibus config #266
- Refactor repository/package management to allow pulling upstream packages through a mirror (not a proxy) #244
- Support creation of .pgpass file #229
- Reformat registration options in --option=value output #189
- WIP: Add
consul
,pgbouncer
andrepmgr
keys to configuration file template #187 - Allow external_url to be optional to support HA configurations #165
- Add a feature to make gitlab-runner member of docker group #150
- runner unregister #123
- extra_hosts settings in config.toml ? #121
- CI Runner update #120
- Allow configuration of the alertmanager via puppet. #267 (gfokkema)
- allow puppetlabs/apt 5.x #259 (bastelfreak)
- Add gitlab-consul auth for pgbouncer database #255 (LongLiveCHIEF)
Fixed bugs:
- Invalid yum/apt repositories generated #273
- preinstall manifest causes puppet run failure on fresh install #237
- Gitlab-runner installation fails. #188
- Omniauth configuration misformated with extra quotes #140
Closed issues:
- Remove GitLab Runner Features from module #268
- Multiple environment variables cannot be passed to gitlab-runner #261
- Boolean flags to gitlab-runner cannot be passed #260
- implicit cast '1' to integer 1 in ruby template #258
- manage_package_repo is gone and replacement is broken #250
- Change docker dependency #247
- gitlab.rb should be before package #240
- Add support for zero-downtime updates #239
- Security vulnerability ( CVE-2018-11235) #238
- 2.1.1 should be 3.0.0 #236
- gitlab_reconfigure should only be refreshed once per puppet run #227
- Ubuntu 12.04 no longer supported by gitlab #136
- is_hash, is_array, and is_any are depricated #106
Merged pull requests:
- modulesync 2.1.0 and allow puppet 6.x #275 (bastelfreak)
- allow puppetlabs/apt 6.x; require at least stdlib 4.13.1 #274 (bastelfreak)
- Update gpgkey for yum repos #272 (tequeter)
- fix repositories missing the edition name #271 (tequeter)
- Add consul repmgr pgbouncer params #270 (LongLiveCHIEF)
- allow puppetlabs/stdlib 5.x #265 (bastelfreak)
- removed params.pp in accordance with module best practices design #252 (LongLiveCHIEF)
- add support for Zero Downtime Upgrades #251 (LongLiveCHIEF)
- remove secrets file management #249 (LongLiveCHIEF)
- Update docker module usage information #248 (LongLiveCHIEF)
- remove ubunutu 12 acceptance nodes #242 (LongLiveCHIEF)
v2.1.0 (2018-05-27)
Implemented enhancements:
- skip-auto-migrations is deprecated in favor of skip-auto-reconfigure #228
- Update auto migrations file #234 (LongLiveCHIEF)
- Added postgres upgrade tasks #182 (Nekototori)
- Unregister runner #178 (SirUrban)
Fixed bugs:
- skip-auto-migrations should be placed before gitlab::install #232
- Wrong Type in Optional Param: user #220
- $web_server documentation differs from code #217
decorate
method intemplates/gitlab.rb.erb
file may break some thing #146- init.pp: fix #217 #219 (NiklausHofer)
Closed issues:
- Manage letsencrypt options #224
- Bad use of method 'inspect' causes bool values not to apply. #222
- Facter code still exists from Issue 131 #170
- Drop Puppet 3 support. #118
Merged pull requests:
- Remove docker nodesets #233 (bastelfreak)
- drop EOL OSs; fix puppet version range #231 (bastelfreak)
- fix typo in README #216 (catay)
- Add support for Ubuntu 16.04 LTS #214 (jkroepke)
v2.0.0 (2018-04-09)
Breaking changes:
- git_data_dirs not documented, deprecate git_data_dir #159
- remove auto-execution of gitlab:setup #210 (LongLiveCHIEF)
- remove git_data_dir #209 (LongLiveCHIEF)
Implemented enhancements:
- Migrate Puppet Module to Voxpupuli #171
- Feature: Allow database to index git authorized_keys #168
- data dir changes in gitlab 9 #137
- add letsencrypt section to gitlab.rb #200 (costela)
- Add ha roles #186 (LongLiveCHIEF)
- Db indexing for git authorized keys #177 (LongLiveCHIEF)
- drop legacy is_hash method, replace topscope fact with facts hash #107 (james-powis)
Fixed bugs:
- RHEL 7.2 Installation Failure (Possibly GPG Key URL) #196
- After upgrade to GitLab 10.4.3 each puppet run wants to remove #195
- Fixed redhat installation #198 (dsavell)
Closed issues:
- Backup cron configuration will trigger gitlab restart #204
- YUM GPG keys are invalid #203
- add support for letsencrypt options #199
- RPM gpg key verification failure on install #194
Merged pull requests:
- bump puppet to latest supported version 4.10.0 #208 (bastelfreak)
- Move backup to its own class #205 (baurmatt)
- Propose small spelling change #185 (jeis2497052)
- Allow managing backup cron w/o managing the config file #180 (mhyzon)
- Remove deprecated hiera and validation functions #119 (jkroepke)
v1.16.1 (2018-02-07)
Merged pull requests:
v1.16.0 (2018-02-07)
Implemented enhancements:
- Verify package signatures on RedHat #163
Fixed bugs:
- Regression: yum $releasever results in 404 error for RHEL yum repo #153
Closed issues:
- Deploy current version of GitLab Runner #166
- GitLab 10: Your git_dta_dirs settings is deprecated #162
- Support new package repo #157
- puppet-gitlab requires outdated module dependencies #152
- Broken LDAP #138
Merged pull requests:
- Release 1.16.0 #190 (tobru)
- Ensure spec test use hiera fixtures. #181 (andrekeller)
- Update for rubocop compliance #179 (mterzo)
- Fixes via rubocop -a #176 (kallies)
- fix typo #175 (bc-bjoern)
- initial modulesync #174 (tobru)
- Transfer module to Vox Pupuli #173 (tobru)
- Fix repo URL for RHEL 7. Enable gpgcheck and add in gitlab-ee key. #172 (mhyzon)
- apt dep version bump #169 (minorOffense)
- Add support for metrics_server in CI Runner #167 (djjudas21)
- Fix for new git_data_dirs syntax in Gitlab 10 #164 (flyinbutrs)
- Add backup job #155 (b4ldr)
- add support for chained global hooks #154 (hboomsma)
v1.15.2 (2017-09-28)
Closed issues:
- Different directory name inside the Forge package #151
Merged pull requests:
- Add 'package_name' param to cirunner class #160 (dandunckelman)
v1.15.1 (2017-07-28)
v1.15.0 (2017-07-28)
Closed issues:
Merged pull requests:
- Gitlab geo #149 (shaheed121)
- Drop warning about RPM support #142 (djjudas21)
v1.14.0 (2017-05-22)
Implemented enhancements:
- Review gitlab.rb Template #103
Closed issues:
- Unable to disable prometheus monitoring due to template #135
- Module Compatible on Enterprise Linux ? #134
- Add parameter to allow to skip auto migrations #132
- registry_external_url not recognised in hiera #113
- Feature: re-enable signup disable #112
- When specifying LDAP configuration, puppet creates a gitlab.rb file with the wrong syntax #92
Merged pull requests:
- Refactor unit tests to iterate over all supported OS's #131 (LongLiveCHIEF)
- Added Gitaly related params + fixed template for redis/sentinel related data. #130 (shaheed121)
- Adding support to confifure redis HA while using omnibus package #129 (shaheed121)
- Fix spec test #128 (op-ct)
- Adds ability to specify git_data_dirs #110 (logicminds)
v1.13.3 (2017-04-04)
v1.13.2 (2017-04-03)
v1.13.1 (2017-04-03)
v1.13.0 (2017-04-03)
v1.12.0 (2017-04-03)
Closed issues:
- Registry Configuration incorrectly formatted #127
- Omnibus overwrites
gitlab-secrets.json
#122 - CI Runner options #117
- xz-utils incorrect name for CentOS #114
Merged pull requests:
- add possibility to config prometheus exporters #126 (cristifalcas)
- fixed method for sorting hashes in gitlab.rb to sort ldap hashes too #116 (rwuest)
- In CentOS land - this is just xz #115 (mlosapio)
- Add settings for Prometheus #111 (mansong1)
- fixed the use of Integers in gitlab_rails Settings inside gitlab.rb #109 (rwuest)
- cirunner: merge hashes for runner configuration #108 (knackaron)
- cirunner: add missing hard dependency for xz-utils #105 (roock)
- cirunner: fix missing dependency to apt-transport-https #104 (roock)
v1.11.0 (2016-12-23)
Implemented enhancements:
Closed issues:
Merged pull requests:
- Fix #82 #102 (dhollinger)
- Fix incorrect syntax in "gitlab_rails['ldap_servers']" field #100 (jnicholas1)
- External url #97 (willtome)
- Refactor beaker tests for Travis #96 (petems)
- Fixes beaker tests #95 (petems)
- Add systemd_compatibility #94 (petems)
- Added external_port parameter #93 (blakejakopovic)
- Allow "Disable storage directories management" #91 (gdowmont)
- Add Beaker Travis acceptance tests #89 (petems)
v1.10.0 (2016-08-10)
Implemented enhancements:
Fixed bugs:
- Issues with Puppet 4.5.3 and Rspec-Puppet #85
Closed issues:
- gitlab-secrets.json is destroyed and recreated on every puppet run #87
- parametirize the repo path #86
- unrecognized option '--version' #65
- Failed to call refresh: Could not restart Service[gitlab-runsvdir] #64
- yum repo is incompatible for Amazon Linux #46
Merged pull requests:
- Added registry configuration hash option #84 (jkroepke)
- Typo fix: 'oder' -> 'or' #83 (Anovadea)
- Allow settings of custom gitlab.rb config file #69 (agray1017)
v1.9.2 (2016-06-14)
Closed issues:
- Bump version to > 1.8.0 #78
v1.9.1 (2016-06-14)
Merged pull requests:
- Make config file management configurable #80 (divansantana)
v1.9.0 (2016-06-14)
Implemented enhancements:
- Add support for Docker registry #74
Closed issues:
- Invalid parameter registry_external_url on Class[Gitlab] #81
- Make config file management configurable #79
- Error: Execution of '/usr/sbin/update-rc.d gitlab-runsvdir defaults' returned 1: update-rc.d: error: unable to read /etc/init.d/gitlab-runsvdir #72
- gitlab::gitlab_rails hash merge not working #66
Merged pull requests:
- Add support for Registry #76 (llauren)
- Add package_ensure parameter for gitlab-ci-multi-runner package. #70 (thlapin)
- Fix cirunner failure-message for unsupported OS families #68 (gerhardsam)
- add documentation #63 (b4ldr)
v1.8.0 (2016-03-11)
Implemented enhancements:
- Add support for pages #60
- Add support for gitlab-workhorse configuration. #59
- Cleanup CI parameters #37
Closed issues:
- ldap_servers hash order #51
- Service enabled check fails on CentOS 6 #50
- Make sure apt-transport-https is installed on Debian OS #47
Merged pull requests:
- 59 gitlab workhorse #62 (tunasalat)
- Do not enable service by default on RHEL6 #58 (petems)
- Fix rspec tests #57 (petems)
- Fixes Beaker hosts and test #55 (petems)
- add custom hooks #54 (b4ldr)
- Add RedHat support for cirunner #53 (petems)
v1.7.2 (2016-01-22)
Closed issues:
Merged pull requests:
- As this template is writing a config file based on some hashes and ha… #52 (msutter)
- Add information about how the module handles NGINX configuration. #49 (bgshacklett)
- Cleanup coding-style issues. #45 (andrekeller)
v1.7.1 (2015-12-23)
Implemented enhancements:
- Add CI multi runner installation and configuration #21
Closed issues:
- gitlab-runsvdir.service not enabled running on CentOS 7 #27
Merged pull requests:
- service enabled for all distro's #27 #43 (witjoh)
- Fix this module should work with out having to set the stringify_facts option #41 (jcsmith)
v1.7.0 (2015-11-25)
Closed issues:
- support for omniauth configuration #38
Merged pull requests:
- Add 'manage_package' parameter #40 (jameslikeslinux)
- Gitlab CI Runner #39 (maetthu-indermuehle)
v1.6.0 (2015-11-06)
Fixed bugs:
- Decorator Creates to many quotes #36
Closed issues:
Merged pull requests:
- allow disabling of omnibus user management #34 (alexsmithhp)
- Fix issues with deprecated values in apt::source #33 (b4ldr)
- Added the sym-link to the GitLab service executable in the /etc/init.d/. #31 (valdemon)
- Fix unrecognized datatypes inside array in decorate method #29 (deadratfink)
v1.5.0 (2015-08-27)
Closed issues:
- Question: can i configure ldap for gitlab with this puppet module? #23
- Question: Would this module work with puppet 3.6.2? #20
Merged pull requests:
v1.4.0 (2015-07-24)
Closed issues:
- Add 'db_key_base' for Gitlab CI 7.13 #22
Merged pull requests:
- Fix rails parameter in hiera example. #19 (thlapin)
- Simplify the decorator for hashes. This allows nested hashes to be output correctly. #18 (thlapin)
v1.3.0 (2015-07-17)
Closed issues:
- Not working on RHEL7? #17
- bump puppetlabs-apt supported version #16
- Wrong package url for Debian #11
- Will this puppet module be maintained? #8
Merged pull requests:
- Added check for external database #15 (sd-robbruce)
- RedHat releasever #14 (sd-robbruce)
- Updated erb template to accomodate for values being hashes #13 (sd-robbruce)
- Fixed bug with gitlab.rb.erb template for use with git_data_dir #10 (sd-robbruce)
- Adds vagrant file #9 (spuder)
v1.2.2 (2015-07-07)
Merged pull requests:
- Omnibus service fix and template improvement #7 (jrwesolo)
- Added Tags to the metadata #6 (maetthu-indermuehle)
v1.2.1 (2015-06-29)
v1.2.0 (2015-06-23)
Closed issues:
- rails vs gitlab_rails? #3
Merged pull requests:
- Remove rails; it's a duplicate of gitlab_rails. #5 (tdb)
- Add high_availability config section. #4 (tdb)
v1.1.0 (2015-06-17)
Merged pull requests:
v1.0.3 (2015-06-16)
v1.0.2 (2015-05-29)
v1.0.1 (2015-05-29)
v1.0.0 (2015-05-29)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.13.1 < 10.0.0)
- puppetlabs/apt (>= 4.4.0 < 10.0.0)
Copyright (c) 2015, VSHN AG, info@vshn.ch All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of VSHN nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.