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, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.8.7
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'unibet-go', '0.6.0'
Learn more about managing modules with a PuppetfileDocumentation
go
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with go
- 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
The go module manages the life cycle of the continuous delivery platform Go provided by Thoughtworks. It aims for self containment and only focus on solving tasks surrounding the Go product with minimal external dependencies.
Module Description
Thoughtworks Go is a continuous delivery platform used for build, packaging and orchestrating application deployments. Go uses a server component for the administration, presentation and scheduling part, and an agent component responsible for carrying out the work. The Go module manages these concerns within separate named spaced classes.
Setup
Setup Requirements
Go depends on JDK to be installed in order to run. This dependency must be managed outside of the Go module. See: http://www.thoughtworks.com/products/docs/go/current/help/system_requirements.html
In addition, the Go module depends on functions and resource types provided by the puppetlabs-stdlib module and the puppetlabs-concat module.
Beginning with go
Server
class { '::go::server':
manage_package_repo => true
}
Agent
class { '::go::agent':
manage_package_repo => true
} ->
::go::agent::instance { 'agent1':
path => '/opt/go',
go_server_host => 'localhost',
go_server_port => 8153
}
Usage
The Go module exposes the following classes
- go::agent
- go::server
It also exposes these defined types:
- go::agent::instance
- go::server::local_account
The exposed classes are contained using the anchor pattern provided via puppetlabs-stdlib, thus you should be able to form reliable dependencies on these classes as expect all of its resources to be realized.
Reference
See the code
Limitations
Tested and used on Redhat and Ubuntu. See metadata.json for supported OS combinations.
Development
- Install development dependencies
$ bundle install
- Make changes
- Run tests
$ bundle exec rake validate
$ bundle exec rake spec
- Commit to feature branch and create pull request
Release 0.5.0
Summary
Allows uploading plugins from within the Go UI without restarting the server (class param go::server::enable_plugin_upload)
Release 0.4.1
Summary
Fix release for https://github.com/unibet/puppet-go/issues/8
Release 0.4.0
Summary
First version using the changelog
- Adds custom fact gocd_installed
- Prevents service restart during initial install as it can corrupt go server state files created on first startup, the RPM provided by Thoughtworks has a post install script that starts go-server and this is a hack to circumvent the issues with this.
- Adds healthcheck script and class go::server::wait_for_service to allow go server to be properly initialized before making cruise config changes
- Allows management of go server encryption cipher
- Uses augeas to configure autoregister key in go server cruise-config.xml rather than using sed
- Uses augeas to configure local password file auth and ldap auth in cruise-config.xml
Dependencies
- puppetlabs-stdlib (>= 3.0.0)
- puppetlabs-concat (>= 1.2.0 < 3.0.0)
Copyright 2014 North Development AB Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.