| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
These are not required because MySQL is not
supported anymore
|
|
|
|
|
|
| |
- Set as uninstallable app
- Update docs
- Adjust specs
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This enables us to use a scope to query all clusters in group
hierarchy order in one query, and also enables us to union to instance
clusters later.
- Handle case where clusters not present at level. In which case the
query should go ahead and return the next level's clusters.
- Swap with new CTE query behind Feature flag. This FF is default
disabled.
|
|
|
|
| |
- JupyterHub must not be available (installed or updated)
|
|
|
|
|
|
| |
- enabled uninstallation
- give it a specific uninstall message
- ajust specs
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
Enable JIT Kubernetes resource creation for project level clusters
See merge request gitlab-org/gitlab-ce!29515
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Project-level clusters that made use of this legacy
behaviour have been migrated to unmanaged clusters,
so we are now free to remove this fallback.
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
'60617-allow-switching-from-gitlab-managed-to-unmanaged-clusters' into 'master'
Allow switching clusters between managed/unmanaged
Closes #60617
See merge request gitlab-org/gitlab-ce!29322
|
| |
| |
| |
| |
| |
| | |
Any resources created while the cluster was managed
will be untouched, allowing users to set/unset this
flag as they please.
|
|\ \
| |/
|/|
| |
| | |
Migrate Kubernetes service integration templates to clusters
See merge request gitlab-org/gitlab-ce!28534
|
| |
| |
| |
| |
| | |
Since they are not GitLab managed we wont make assumptions about the
namespaces used
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Whenever we are selecting a namespace to use for a
deployment or to query a cluster we want to exclude
Kubernetes namespace records that don't have a token
set as they will not have the required permissions.
However when configuring clusters, we want to
use the original namespace record even if it has no
token, as a namespace has to be unique on a cluster.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Clusters::Cluster::KnativeServicesFinder becomes
Clusters::KnativeServicesFinder
This is to avoid loading race condition between:
```
module Clusters
class Cluster < ApplicationRecord
```
and
```
module Clusters
class Cluster
```
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove Kn services cache from Clusters::Application::Knative
Knative function can exist even if user did not installed Knative via
GitLab managed apps.
-> Move responsibility of finding services into the Cluster
-> Responsability is inside Clusters::Cluster::KnativeServiceFinder
-> Projects::Serverless::FunctionsFinder now calls depends solely on a
cluster to find the Kn services.
-> Detect Knative by resource presence instead of service presence
-> Mock knative_installed response temporarily for frontend to develop
Display loader while `installed === 'checking'`
Added frontend work to determine if Knative is installed
Memoize with_reactive_cache(*args, &block) to avoid race conditions
When calling with_reactive_cache more than once, it's possible that the
second call will already have the value populated. Therefore, in cases
where we need the sequential calls to have consistent results, we'd fall
under a race condition.
Check knative installation via Knative resource presence
Only load pods if Knative is discovered
Always return a response in FunctionsController#index
- Always indicate if Knative is installed, not installed or checking
- Always indicate the partial response for functions. Final response is
guaranteed when knative_installed is either true | false.
Adds specs for Clusters::Cluster#knative_services_finder
Fix method name when calling on specs
Add an explicit check for functions
Added an explicit check to see if there are any functions available
Fix Serverless feature spec
- we don't find knative installation via database anymore,
rather via Knative resource
Display error message for request timeouts
Display an error message if the request times out
Adds feature specs for when functions exist
Remove a test purposed hardcoded flag
Add ability to partially load functions
Added the ability to partially load functions on the frontend
Add frontend unit tests
Added tests for the new frontend additions
Generate new translations
Generated new frontend translations
Address review comments
Cleaned up the frontend unit test.
Added computed prop for `isInstalled`.
Move string to constant
Simplify nil to array conversion
Put knative_installed states in a frozen hash for better read
Pluralize list of Knative states
Quey services and pods filtering name
This way we don't need to filter the namespace in memory.
Also, the data we get from the network is much smaller.
Simplify cache_key and fix bug
- Simplifies the cache_key by removing namespace duplicate
- Fixes a bug with reactive_cache memoization
|
|
|
|
| |
Added a changelog entry for the feature
|
|
|
|
| |
Update documentation to reflect removal
|
|\
| |
| |
| |
| | |
Bump shoulda-matchers to 4.0.1
See merge request gitlab-org/gitlab-ce!28443
|
| |
| |
| |
| |
| | |
Rails 5 requires that belongs_to associations have the associated record
present. These tests were failing because they had nil values.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Kubernetes clusters were originally built they could only
exist at the project level, and so there was logic included
that assumed there would only ever be a single Kubernetes
namespace per cluster. We now support clusters at the group
and instance level, which allows multiple namespaces.
This change consolidates various project-specific fallbacks to
generate namespaces, and hands all responsibility to the
Clusters::KubernetesNamespace model. There is now no concept of
a single namespace for a Clusters::Platforms::Kubernetes; to
retrieve a namespace a project must now be supplied in all cases.
This simplifies upcoming work to use a separate Kubernetes
namespace per project environment (instead of a namespace
per project).
|
|
|
|
|
|
| |
There are two cluster hierarchies one for the deployment platform and
one for controllers. The main difference is that deployment platforms do
not check user permissions and only return the first match.
|
|
|
|
|
| |
Instance level clusters were already mostly supported, this change adds
admin area controllers for cluster CRUD
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
In order to not miss any errors since we are not checking the return
value of update
|
|
|
|
| |
Basically does the reverse of after_transition to :installed.
|
|
|
|
| |
Add specs
|
|
|
|
|
|
|
|
| |
Only prometheus can be uninstalled atm, the rest will be dealt with
later.
Presumption is that new application types will have uninstallation
implmemented at the same time.
|
|
|
|
|
|
|
| |
We are duplicating the value from the constant
`Clusters::Applications::Runner::VERSION` inside of the tests which
results into developers having to update the tests as well when they
want to upgrade the Helm chart used for GitLab Runner
|
| |
|
| |
|
|
|
|
|
|
|
| |
- rewords examples starting with 'should'
- rewords examples starting with 'it'
Note: I had to manually fixup "onlies" to "only"
|
|
|
|
| |
Also break up long string to be readable
|
|
|
|
| |
Adds `# frozen_string_literal: true` to spec/models ruby files
|
|
|
|
|
|
| |
This will allow to user the term managed? on
https://gitlab.com/gitlab-org/gitlab-ce/issues/56557. Managed? will be
used to distinct clusters that are automatically managed by GitLab
|
| |
|
|
|
|
|
| |
A runner installed on a cluster will now use the
cluster's `cluster_type` as its `runner_type`.
|
| |
|
|
|
|
|
| |
Deploy boards now will check for app.gitlab.com/env and
app.gitlab.com/app
|
| |
|
| |
|
|
|
|
| |
https://gitlab.com/amit1rrr/gitlab-ce into restrict-jupyter-login
|
|\
| |
| |
| |
| |
| |
| | |
Edit Knative domain after it has been deployed
Closes #56937
See merge request gitlab-org/gitlab-ce!25386
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Creates new route
- Creates new controller action
- Creates call stack:
Clusterss::ApplciationsController calls -->
Clusters::Applications::UpdateService calls -->
Clusters::Applications::ScheduleUpdateService calls -->
ClusterUpdateAppWorker calls -->
Clusters::Applications::PatchService -->
ClusterWaitForAppInstallationWorker
DRY req params
Adds gcp_cluster:cluster_update_app queue
Schedule_update_service is uneeded
Extract common logic to a parent class (UpdateService will need it)
Introduce new UpdateService
Fix rescue class namespace
Fix RuboCop offenses
Adds BaseService for create and update services
Remove request_handler code duplication
Fixes update command
Move update_command to ApplicationCore so all apps can use it
Adds tests for Knative update_command
Adds specs for PatchService
Raise error if update receives an unistalled app
Adds update_service spec
Fix RuboCop offense
Use subject in favor of go
Adds update endpoint specs for project namespace
Adds update endpoint specs for group namespace
|
|\ \
| |/
|/|
| |
| | |
Block local URLs for Kubernetes integration
See merge request gitlab/gitlabhq!2901
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use existing `public_url` validation to block various local urls. Note
that this validation will allow local urls if the "Allow requests to the
local network from hooks and services" admin setting is enabled.
Block KubeClient from using local addresses
It will also respect `allow_local_requests_from_hooks_and_services` so
if that is enabled KubeClinet will allow local addresses
|
| | |
|