Age | Commit message (Collapse) | Author |
|
Only expire branch cache once per push
See merge request gitlab-org/gitlab-ce!31653
|
|
We migrated all logic to `PipelineProcessWorker`
and this worker become redundant.
|
|
|
|
Whenever `PostReceive` is enqueued, `UpdateMergeRequestsWorker`
is enqueued and `MergeRequests::RefreshService` is called, it'll
check if the source branch of each MR asssociated to the push exists
or not via `MergeRequest#source_branch_exists?`. The said method will
call `Repository#branch_exists?` which is cached in `Rails.cache`.
When the cache contains outdated data and the source branch actually
exists, the `MergeRequests#RefreshService` job will close associated
MRs which is not correct.
The fix is to expire the branches cache of the project so we have
updated data during the post receive hook which will help in the
accuracy of the check if we need to close associated MRs or not.
|
|
Extend PipelineProcessWorker to accept a list of builds
See merge request gitlab-org/gitlab-ce!31425
|
|
This changes used worker from `BuildProcessWorker`
to `PipelineProcessWorker` to make pipeline
processing much simpler. We process `pipeline_id`,
based on some triggers.
|
|
After measuring the impact of the namespace storage on
https://gitlab.com/gitlab-org/gitlab-ce/issues/64092. It was decided
that it's performant enough. So we can freely remove the feature flag
Related to https://gitlab.com/gitlab-org/gitlab-ce/issues/64092
|
|
This implements the support for `needs:` keyword
as part of GitLab CI. That makes some of the jobs
to be run out of order.
|
|
Also removes all logic from ClusterConfigureWorker
and ClusterProjectConfigureWorker, which are also
no longer used.
|
|
None of this code can be reached any more, so it can all be removed
|
|
Often live traces are removed even though the archived trace
doesn't exist. This commit checkes the existence strictly.
|
|
Schedules a Namespace::AggregationSchedule worker if some of the project
statistics are refreshed.
The worker is only executed if the feature flag is enabled.
|
|
Sets lease_release? to false to prevent the job to be re-executed more
often than lease timeout
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/64079
|
|
- Add two new ActiveRecord models:
- RootNamespaceStoragestatistics will persist root namespace statistics
- NamespaceAggregationSchedule will save information when a new update
to the namespace statistics needs to be scheduled
- Inject into UpdateProjectStatistics concern a new callback that will
call an async job to insert a new row onto NamespaceAggregationSchedule
table
- When a new row is inserted a new job is scheduled. This job will
update call an specific service to update the statistics and after that
it will delete thee aggregated scheduled row
- The RefresherServices makes heavy use of arel to build composable
queries to update Namespace::RootStorageStatistics attributes.
- Add an extra worker to traverse pending rows on
NAmespace::AggregationSchedule table and schedule a worker for each one
of this rows.
- Add an extra worker to traverse pending rows on
NAmespace::AggregationSchedule table and schedule a worker for each one
of this rows
|
|
Instance-level cluster pod terminal access
Closes #55489, #55488, #55487, and #61156
See merge request gitlab-org/gitlab-ce!28613
|
|
Also add ::Gitlab::LetsEncrypt.enabled? shortcut
and simplify it a lot
|
|
This enables terminals for group and project level clusters.
Previously there was no way to determine which project (and
therefore kubernetes namespace) to connect to, moving this
logic onto Environment means the assoicated project can be
used to look up the correct namespace.
|
|
Add index for pages domain ssl auto renewal
Add PagesDomain.needs_ssl_renewal scope
Add cron worker for ssl renewal
Add worker for ssl renewal
Add pages ssl renewal worker queues settings
|
|
Remove deprecated call in BuildSuccessWorker
Closes #63622
See merge request gitlab-org/gitlab-ce!29958
|
|
Enable JIT Kubernetes resource creation for project level clusters
See merge request gitlab-org/gitlab-ce!29515
|
|
We now create_deployment on Ci::Build create.
No need to call create_deployment again
|
|
The bulk delete api endpoint for container registries can
only be called once per hour. If a user calls the endpoint more
than once per hour, they will now receive a 400 error with a
descriptive message.
|
|
Previously this behaviour was only available to group
and instance-level clusters, as some project clusters
relied on Kubernetes credentials being passed through
to the runner instead of having their resources managed
by GitLab (which is not available when using JIT). These
clusters have been migrated to unmanaged, so resources
can be created on demand for the remaining managed clusters.
|
|
We are deprecating this service in favor of instance wide clusters.
Therefore we removed some code that is not anymore needed for a
readonly cluster and also we added some flags to allow for this
deprecation. These flags are to be removed in the next release when
we finally completelly remove KubernetesService.
|
|
Preventing blocked users and their PipelineSchdules from creating new Pipelines
Closes #47756
See merge request gitlab-org/gitlab-ce!27318
|
|
Delete Todos for guest users when project visibility
level is updated to private.
|
|
updated several specs and factories to accomodate new permissions
|
|
In the context of a Geo setup, some jobs can be
running on a Geo secondary where the database
is read-only and therefore we should guard
against various jobs attempting to write.
|
|
Introduce sidekiq worker for auto merge process
See merge request gitlab-org/gitlab-ce!28780
|
|
'set-real-next-run-at-for-preventing-duplciate-pipeline-creations' into 'master'
Make pipeline schedule worker resilient
Closes gitlab-com/gl-infra/production#805 and #61955
See merge request gitlab-org/gitlab-ce!28407
|
|
As we have a central domain for auto merge process today,
we should use a single worker for any auto merge process.
|
|
We have one auto merge strategy today - Merge When Pipeline
Succeeds.
In order to add more strategies for Merge Train feature,
we abstract the architecture to be more extensible.
Removed arguments
Fix spec
|
|
Currently, pipeline schedule worker is unstable because it's
sometimes killed by excessive memory consumption.
In order to improve the performance, we add the following fixes:
1. next_run_at is always real_next_run, which means the value
always takes into account of worker's cron schedule
1. Remove exlusive lock. This is already covered by real_next_run
change.
1. Use RunPipelineScheduleWorker for avoiding memory killer.
Memory consumption is spread to the multiple sidekiq worker.
|
|
We've already migrated all the legacy artifacts to the new realm,
which is ci_job_artifacts table.
It's time to remove the old code base that is no longer used.
|
|
|
|
|
|
|
|
Immediate configuration is not ideal for group and instance
level clusters as projects that may never be deployed would
still have Kubernetes namespaces and service accounts created
for them.
As of https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/25586
we now create only the resources that are required for the
project being deployed, at the time of deployment.
|
|
Fixes #60425
|
|
When this option is enabled, GitLab will create namespaces and service
accounts as usual. When disabled, GitLab wont create any project
specific kubernetes resources
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56557
|
|
PackRefs is not an expensive gitaly call - we want to
call it more often (than as part of full `gc`) because
it helps to keep number of refs files small - too many
refs file may be a problem for deployments with
slow storage.
|
|
Domain will be removed by verification worker after 1 week
of being disabled
|
|
+ to monitor progress of uninstallation pod
|
|
Prevent concurrent execution of PipelineScheduleWorker
Closes gitlab-com/gl-infra/production#805
See merge request gitlab-org/gitlab-ce!27781
|
|
Currently, PipelineScheduleWorker is fired in a short period on
our production server. We can stop this behavior by locking the
execution thread with in_lock method.
|
|
This enables sending a chat message to Slack or Mattermost
upon a successful, failed, or canceled deployment
|
|
'60500-disable-jit-kubernetes-resource-creation-for-project-level-clusters' into 'master'
Disable JIT Kubernetes resource creation for project level clusters
Closes #60500
See merge request gitlab-org/gitlab-ce!27352
|
|
JIT resource creation blocks deployments if a user is
self-managing their cluster, as it will fail the build
if unable to create a namespace and service account.
Using a custom namespace and service account was previously
supported for project level clusters, so we should preserve
this functionality.
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27352
|
|
When deleting a pipeline, only some of the cache structures were being
expired, but not the full pipeline list. We have to synchronously
schedule a pipeline cache expiration because the pipeline will be
deleted if the Sidekiq expiration job picks it up. To do this, properly
extract all the logic buried in the Sidekiq worker into a service, and
then call the service.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60469
|
|
This adds a limitation that we will try to create pipeline
for at most 4 first changes (branches and tags).
This does not affect processing of Pipelines for Merge Requests,
as each updated MR will have associated pipeline created.
|