Commit deae99bb authored by Edmund Ochieng's avatar Edmund Ochieng

Merge branch 'bundle' into 'master'

Update Operator Metadata

See merge request !29
parents 6e7679e8 84623253
Pipeline #194629516 passed with stages
in 15 minutes and 14 seconds
......@@ -27,21 +27,32 @@ type GitLabSpec struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Release",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Release string `json:"release,omitempty"`
// The URL through which to access GitLab instance
// The fully qualified domain name used to access the GitLab instance.
// For example: gitlab.example.com
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="GitLab URL",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
URL string `json:"url,omitempty"`
// Name of tls secret used to secure the GitLab instance
// Name of tls secret used to secure the GitLab instance URL
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="TLS Certificate",xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret"
TLS string `json:"tls,omitempty"`
SMTP SMTPConfiguration `json:"smtp,omitempty"`
Registry RegistrySpec `json:"registry,omitempty"`
ObjectStore ObjectStoreSpec `json:"objectStore,omitempty"`
Redis *RedisSpec `json:"redis,omitempty"`
Database *DatabaseSpec `json:"postgres,omitempty"`
CertIssuer *ACMEOptions `json:"acme,omitempty"`
TLS string `json:"tls,omitempty"`
// If specified, SMTP provides the details of the email server
// used by GitLab to send outgoing email
SMTP SMTPConfiguration `json:"smtp,omitempty"`
// Options used to setup the GitLab Registry
Registry RegistrySpec `json:"registry,omitempty"`
// The parameters for the object storage used to store GitLab artifacts
ObjectStore ObjectStoreSpec `json:"objectStore,omitempty"`
// If specified, the Redis options override the default behavior of the
// Redis key-value store deployed by the operator
Redis *RedisSpec `json:"redis,omitempty"`
// If specified, overrides the default behavior of the Postgresql
// database deployed by the operator
Database *DatabaseSpec `json:"postgres,omitempty"`
// If specified, the options used by Cert-Manager to generate certificates.
// More info: https://cert-manager.io/docs/configuration/acme/
CertIssuer *ACMEOptions `json:"acme,omitempty"`
// Volume for Gitaly statefulset
Volume VolumeSpec `json:"volume,omitempty"`
Volume VolumeSpec `json:"volume,omitempty"`
// If specified, defines the parameters used when autoscaling GitLab resources
AutoScaling *AutoScalingSpec `json:"autoscaling,omitempty"`
}
......@@ -64,7 +75,7 @@ type RegistrySpec struct {
TLS string `json:"tls,omitempty"`
}
// ObjectStoreSpec defines options for Gitlab registry
// ObjectStoreSpec defines options for GitLab registry
type ObjectStoreSpec struct {
// Development will result in a minio deployment being
// created for testing /development purposes
......@@ -125,7 +136,7 @@ type AutoScalingSpec struct {
// Maximum number of replicas to scale to
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Maxiumum Replicas",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
MaxReplicas int32 `json:"maxReplicas,omitempty"`
// Percentage CPU mark at which autoscaling triggers
// Percentage CPU of the requested CPU resources at which autoscaling triggers
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CPU Percentage Threshold",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
TargetCPU *int32 `json:"targetCPU,omitempty"`
}
......@@ -193,12 +204,15 @@ type GitLabStatus struct {
// +operator-sdk:csv:customresourcedefinitions:displayName="GitLab"
// +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,""},{Secret,v1,""},{Service,v1,""},{Pod,v1,""},{Deployment,v1,""},{StatefulSet,v1,""},{PersistentVolumeClaim,v1,""},{Runner,v1beta1,""},{GLBackup,v1beta1,""}}
// GitLab is the Schema for the gitlabs API
// GitLab is a complete DevOps platform, delivered in a single application
type GitLab struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec GitLabSpec `json:"spec,omitempty"`
// Specification of the desired behavior of a GitLab instance
Spec GitLabSpec `json:"spec,omitempty"`
// Most recently observed status of the GitLab instance.
// It is read-only to the user
Status GitLabStatus `json:"status,omitempty"`
}
......
......@@ -31,12 +31,13 @@ type GLBackupSpec struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup Schedule",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Schedule string `json:"schedule,omitempty"`
// Comma separated list of components to omit from backup
// Comma-separated list of components to omit from backup.
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup Exclusions",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Exclusions string `json:"skip,omitempty"`
// Prefix for the backup job
// Can be used when restoring backup
// If specified, overrides the timestamp of a backup.
// Forms the prefix of the backup e.g. '<timestamp-override-value>_gitlab_backup.tar'.
// Can also be specified to target a specific backup to be restored
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup Timestamp",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Timestamp string `json:"timestamp,omitempty"`
......@@ -44,7 +45,8 @@ type GLBackupSpec struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup URL",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
URL string `json:"url,omitempty"`
// Restore when set to true the backup defined by
// If set to true, informs GitLab operator to perform a backup restore.
// Defaults to false or performing a backup.
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Backup Restore",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Restore bool `json:"restore,omitempty"`
}
......@@ -68,7 +70,7 @@ const (
// GLBackupStatus defines the observed state of GLBackup
type GLBackupStatus struct {
// Reports status of backup task
// Reports status of backup job
// +kubebuilder:validation:Enum=Running;Completed;Scheduled;Failed
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Backup Status",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Phase BackupState `json:"phase,omitempty"`
......@@ -88,12 +90,15 @@ type GLBackupStatus struct {
// +operator-sdk:csv:customresourcedefinitions:displayName="GitLab Backup"
// +operator-sdk:csv:customresourcedefinitions:resources={{Job,v1,""},{CronJob,v1beta1,""},{ConfigMap,v1,""}}
// GLBackup is the Schema for the glbackups API
// GLBackup resource backups and restores a GitLab instance
type GLBackup struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec GLBackupSpec `json:"spec,omitempty"`
// Specification of the desired behavior of a GitLab Backup
Spec GLBackupSpec `json:"spec,omitempty"`
// Most recently observed status of the GitLab Backup.
// It is read-only to the user
Status GLBackupStatus `json:"status,omitempty"`
}
......
......@@ -22,23 +22,26 @@ import (
// RunnerSpec defines the desired state of Runner
type RunnerSpec struct {
// GitlabResource represents a Gitlab custom resource. Should
// only be used to reference Gitlab instance created by the operator
Gitlab GitlabInstanceSpec `json:"gitlab,omitempty"`
// gitlab specifies the GitLab instance the GitLab Runner
// will register against
Gitlab GitlabInstanceSpec `json:"gitlab"`
//Name of secret containing the runner-registration-token key used to register the runner
//Name of secret containing the 'runner-registration-token' key used to register the runner
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Registration Token",xDescriptors="urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret"
RegistrationToken string `json:"token,omitempty"`
// List of comma separated tags to be applied to the runner
// More info: https://docs.gitlab.com/ee/ci/runners/#use-tags-to-limit-the-number-of-jobs-using-the-runner
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tags",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Tags string `json:"tags,omitempty"`
// Concurrent limits the number of jobs globally that can run concurrently
// Option to limit the number of jobs globally that can run concurrently.
// The operator sets this to 10, if not specified
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Concurrent",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Concurrent *int32 `json:"concurrent,omitempty"`
// CheckInterval defines the number of seconds between checks for new jobs
// Option to define the number of seconds between checks for new jobs.
// This is set to a default of 30s by operator if not set
// +operator-sdk:csv:customresourcedefinitions:type=status,displayName="Check Interval",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
CheckInterval *int32 `json:"interval,omitempty"`
......@@ -52,7 +55,8 @@ type GitlabInstanceSpec struct {
// Name of GitLab instance created by the operator
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Instance Name",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
// URL of GitLab instance
// The fully qualified domain name of the address used to access the GitLab instance.
// For example, gitlab.example.com
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Instance URL",xDescriptors="urn:alm:descriptor:com.tectonic.ui:text"
URL string `json:"url,omitempty"`
}
......@@ -67,6 +71,7 @@ type RunnerCacheSpec struct {
Region string `json:"region,omitempty"`
// Credentials is the name of the secret containing the
// 'accesskey' and 'secretkey' used to access the object storage
Credentials string `json:"credentials,omitempty"`
// Insecure enables use of HTTP protocol
......@@ -95,12 +100,15 @@ type RunnerStatus struct {
// +operator-sdk:csv:customresourcedefinitions:displayName="GitLab Runner"
// +operator-sdk:csv:customresourcedefinitions:resources={{ConfigMap,v1,""},{Secret,v1,""},{Service,v1,""},{Replicasets,v1,""},{Pod,v1,""},{Deployment,v1,""},{PersistentVolumeClaim,v1,""}}
// Runner is the Schema for the runners API
// Runner is the open source project used to run your jobs and send the results back to GitLab
type Runner struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RunnerSpec `json:"spec,omitempty"`
// Specification of the desired behavior of a GitLab Runner instance
Spec RunnerSpec `json:"spec,omitempty"`
// Most recently observed status of the GitLab Runner.
// It is read-only to the user
Status RunnerStatus `json:"status,omitempty"`
}
......
......@@ -27,12 +27,13 @@ spec:
shortNames:
- gl
singular: gitlab
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: GitLab is the Schema for the gitlabs API
description: GitLab is a complete DevOps platform, delivered in a single application
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
......@@ -43,10 +44,10 @@ spec:
metadata:
type: object
spec:
description: GitLabSpec defines the desired state of GitLab
description: Specification of the desired behavior of a GitLab instance
properties:
acme:
description: ACMEOptions defines the values for the ACME service that will provide certificates
description: 'If specified, the options used by Cert-Manager to generate certificates. More info: https://cert-manager.io/docs/configuration/acme/'
properties:
email:
description: Email is the email for this account
......@@ -802,7 +803,7 @@ spec:
type: array
type: object
autoscaling:
description: AutoScalingSpec are the parameters to configure autoscaling
description: If specified, defines the parameters used when autoscaling GitLab resources
properties:
maxReplicas:
description: Maximum number of replicas to scale to
......@@ -813,12 +814,12 @@ spec:
format: int32
type: integer
targetCPU:
description: Percentage CPU mark at which autoscaling triggers
description: Percentage CPU of the requested CPU resources at which autoscaling triggers
format: int32
type: integer
type: object
objectStore:
description: ObjectStoreSpec defines options for Gitlab registry
description: The parameters for the object storage used to store GitLab artifacts
properties:
credentials:
description: Credentials contains the name of the secret that contains the `accesskey` and `secretkey` values required to access an existing minio instance. Should be an even number equal to or larger than four
......@@ -834,7 +835,7 @@ spec:
type: string
type: object
postgres:
description: DatabaseSpec defines database options
description: If specified, overrides the default behavior of the Postgresql database deployed by the operator
properties:
replicas:
format: int32
......@@ -851,7 +852,7 @@ spec:
type: object
type: object
redis:
description: RedisSpec defines Redis options
description: If specified, the Redis options override the default behavior of the Redis key-value store deployed by the operator
properties:
replicas:
format: int32
......@@ -868,7 +869,7 @@ spec:
type: object
type: object
registry:
description: RegistrySpec defines options for GitLab registry
description: Options used to setup the GitLab Registry
properties:
disable:
type: boolean
......@@ -881,7 +882,7 @@ spec:
description: The GitLab version to deploy
type: string
smtp:
description: 'SMTPConfiguration defines options for Gitlab registry More on configuration options available below: https://docs.gitlab.com/omnibus/settings/smtp.html'
description: If specified, SMTP provides the details of the email server used by GitLab to send outgoing email
properties:
authentication:
description: 'Authentication represents authentication mechanism Options include: login, plain, cram_md5'
......@@ -922,10 +923,10 @@ spec:
type: string
type: object
tls:
description: Name of tls secret used to secure the GitLab instance
description: Name of tls secret used to secure the GitLab instance URL
type: string
url:
description: The URL through which to access GitLab instance
description: 'The fully qualified domain name used to access the GitLab instance. For example: gitlab.example.com'
type: string
volume:
description: Volume for Gitaly statefulset
......@@ -939,7 +940,7 @@ spec:
type: object
type: object
status:
description: GitLabStatus defines the observed state of GitLab
description: Most recently observed status of the GitLab instance. It is read-only to the user
properties:
health:
description: HealthCheck represents the status of services that make up Gitlab
......
......@@ -14,12 +14,13 @@ spec:
shortNames:
- gbk
singular: glbackup
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: GLBackup is the Schema for the glbackups API
description: GLBackup resource backups and restores a GitLab instance
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
......@@ -30,22 +31,22 @@ spec:
metadata:
type: object
spec:
description: GLBackupSpec defines the desired state of GLBackup
description: Specification of the desired behavior of a GitLab Backup
properties:
instance:
description: Name of GitLab instance to backup
type: string
restore:
description: Restore when set to true the backup defined by
description: If set to true, informs GitLab operator to perform a backup restore. Defaults to false or performing a backup.
type: boolean
schedule:
description: Backup schedule in cron format. Leave blank for one time on-demand backup
type: string
skip:
description: Comma separated list of components to omit from backup
description: Comma-separated list of components to omit from backup.
type: string
timestamp:
description: Prefix for the backup job Can be used when restoring backup
description: If specified, overrides the timestamp of a backup. Forms the prefix of the backup e.g. '<timestamp-override-value>_gitlab_backup.tar'. Can also be specified to target a specific backup to be restored
type: string
url:
description: The URL of the backup resource to be restored
......@@ -54,13 +55,13 @@ spec:
- instance
type: object
status:
description: GLBackupStatus defines the observed state of GLBackup
description: Most recently observed status of the GitLab Backup. It is read-only to the user
properties:
completedAt:
description: Displays time the backup completed
type: string
phase:
description: Reports status of backup task
description: Reports status of backup job
enum:
- Running
- Completed
......
......@@ -12,12 +12,13 @@ spec:
listKind: RunnerList
plural: runners
singular: runner
preserveUnknownFields: false
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: Runner is the Schema for the runners API
description: Runner is the open source project used to run your jobs and send the results back to GitLab
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
......@@ -28,7 +29,7 @@ spec:
metadata:
type: object
spec:
description: RunnerSpec defines the desired state of Runner
description: Specification of the desired behavior of a GitLab Runner instance
properties:
cache:
description: Cache defines an S3 compatible object store
......@@ -37,7 +38,7 @@ spec:
description: Bucket defines the s3 bucket name
type: string
credentials:
description: Credentials is the name of the secret containing the
description: Credentials is the name of the secret containing the 'accesskey' and 'secretkey' used to access the object storage
type: string
insecure:
description: Insecure enables use of HTTP protocol
......@@ -53,32 +54,34 @@ spec:
type: string
type: object
concurrent:
description: Concurrent limits the number of jobs globally that can run concurrently
description: Option to limit the number of jobs globally that can run concurrently. The operator sets this to 10, if not specified
format: int32
type: integer
gitlab:
description: GitlabResource represents a Gitlab custom resource. Should only be used to reference Gitlab instance created by the operator
description: gitlab specifies the GitLab instance the GitLab Runner will register against
properties:
name:
description: Name of GitLab instance created by the operator
type: string
url:
description: URL of GitLab instance
description: The fully qualified domain name of the address used to access the GitLab instance. For example, gitlab.example.com
type: string
type: object
interval:
description: CheckInterval defines the number of seconds between checks for new jobs
description: Option to define the number of seconds between checks for new jobs. This is set to a default of 30s by operator if not set
format: int32
type: integer
tags:
description: List of comma separated tags to be applied to the runner
description: 'List of comma separated tags to be applied to the runner More info: https://docs.gitlab.com/ee/ci/runners/#use-tags-to-limit-the-number-of-jobs-using-the-runner'
type: string
token:
description: Name of secret containing the runner-registration-token key used to register the runner
description: Name of secret containing the 'runner-registration-token' key used to register the runner
type: string
required:
- gitlab
type: object
status:
description: RunnerStatus defines the observed state of Runner
description: Most recently observed status of the GitLab Runner. It is read-only to the user
properties:
phase:
description: Reports status of the GitLab Runner instance
......
......@@ -65,7 +65,7 @@ metadata:
}
}
]
capabilities: Basic Install
capabilities: Full Lifecycle
categories: Integration & Delivery
certified: "true"
containerImage: registry.connect.redhat.com/gitlab/gitlab-operator:v0.0.1
......@@ -78,7 +78,7 @@ spec:
apiservicedefinitions: {}
customresourcedefinitions:
owned:
- description: GitLab is the Schema for the gitlabs API
- description: GitLab is a complete DevOps platform, delivered in a single application
displayName: GitLab
kind: GitLab
name: gitlabs.apps.gitlab.com
......@@ -121,7 +121,7 @@ spec:
path: autoscaling.minReplicas
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Percentage CPU mark at which autoscaling triggers
- description: Percentage CPU of the requested CPU resources at which autoscaling triggers
displayName: CPU Percentage Threshold
path: autoscaling.targetCPU
x-descriptors:
......@@ -151,12 +151,12 @@ spec:
path: release
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Name of tls secret used to secure the GitLab instance
- description: Name of tls secret used to secure the GitLab instance URL
displayName: TLS Certificate
path: tls
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:selector:core:v1:Secret
- description: The URL through which to access GitLab instance
- description: 'The fully qualified domain name used to access the GitLab instance. For example: gitlab.example.com'
displayName: GitLab URL
path: url
x-descriptors:
......@@ -172,7 +172,7 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
version: v1beta1
- description: GLBackup is the Schema for the glbackups API
- description: GLBackup resource backups and restores a GitLab instance
displayName: GitLab Backup
kind: GLBackup
name: glbackups.apps.gitlab.com
......@@ -192,7 +192,7 @@ spec:
path: instance
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Restore when set to true the backup defined by
- description: If set to true, informs GitLab operator to perform a backup restore. Defaults to false or performing a backup.
displayName: Backup Restore
path: restore
x-descriptors:
......@@ -202,12 +202,12 @@ spec:
path: schedule
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Comma separated list of components to omit from backup
- description: Comma-separated list of components to omit from backup.
displayName: Backup Exclusions
path: skip
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Prefix for the backup job Can be used when restoring backup
- description: If specified, overrides the timestamp of a backup. Forms the prefix of the backup e.g. '<timestamp-override-value>_gitlab_backup.tar'. Can also be specified to target a specific backup to be restored
displayName: Backup Timestamp
path: timestamp
x-descriptors:
......@@ -223,7 +223,7 @@ spec:
path: completedAt
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Reports status of backup task
- description: Reports status of backup job
displayName: Backup Status
path: phase
x-descriptors:
......@@ -234,7 +234,7 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
version: v1beta1
- description: Runner is the Schema for the runners API
- description: Runner is the open source project used to run your jobs and send the results back to GitLab
displayName: GitLab Runner
kind: Runner
name: runners.apps.gitlab.com
......@@ -266,17 +266,17 @@ spec:
path: gitlab.name
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: URL of GitLab instance
- description: The fully qualified domain name of the address used to access the GitLab instance. For example, gitlab.example.com
displayName: Instance URL
path: gitlab.url
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: List of comma separated tags to be applied to the runner
- description: 'List of comma separated tags to be applied to the runner More info: https://docs.gitlab.com/ee/ci/runners/#use-tags-to-limit-the-number-of-jobs-using-the-runner'
displayName: Tags
path: tags
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
- description: Name of secret containing the runner-registration-token key used to register the runner
- description: Name of secret containing the 'runner-registration-token' key used to register the runner
displayName: Registration Token
path: token
x-descriptors:
......@@ -293,7 +293,47 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:text
version: v1beta1
description: The GitLab operator allows the user to deploy and manage the lifecycle of both GitLab and GitLab Runner in both Openshift and Kubernetes environments
description: |
# Overview
The GitLab operator is responsible for managing the full lifecycle of GitLab and GitLab Runner instances in your Kubernetes or Openshift container platforms.
The operator, while new and still actively being developed, aims to:
- ease installation and configuration of GitLab and GitLab Runner instances
- offer seamless upgrades from version to version
- ease backup and restore of GitLab and its components
- aggregate and visualize metrics using Prometheus and Grafana
- setup auto-scaling
## GitLab
GitLab is a complete open-source DevOps platform, delivered as a single application, fundamentally changing the way Development, Security, and Ops teams collaborate and build software. From idea to production, GitLab helps teams improve cycle time from weeks to minutes, reduce development process costs and decrease time to market while increasing developer productivity.
Built on Open Source, GitLab delivers new innovations and features on the same day of every month by leveraging contributions from a passionate, global community of thousands of developers and millions of users. Over 100,000 of the world’s most demanding organizations trust GitLab to deliver great software at new speeds.
If you would like to enable advanced DevOps capabilities and activate enterprise features such as security, risk, and compliance capabilities, please contact our sales team to purchase an enterprise license.
## Runner
GitLab Runner is the open source project used to run your jobs and send the results back to GitLab. It is used in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab that coordinates jobs.
To link a Runner to a self-hosted GitLab instance or the hosted [GitLab](https://gitlab.com), you first need to create a secret containing the `runner-registration-token` key.
`$ kubectl create secret generic runner-token-secret --from-literal runner-registration-token="TOKEN_FROM_GITLAB_INSTANCE"`
Notice how the secret is referenced in the example below:
```
apiVersion: apps.gitlab.com/v1beta1
kind: Runner
metadata:
name: example
spec:
gitlab:
url: https://gitlab.com
token: runner-token-secret # Name of the secret containing the Runner token
tags: openshift, test
```
displayName: GitLab
icon:
- base64data: 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