Thong Kuah
f234aef994
Use http_max_redirects opt to replace monkeypatch
...
http_max_redirects was introduced in 4.2.2, so upgrade kubeclient.
The monkey-patch was global so we will have to check that all instances
of Kubeclient::Client are handled.
Spec all methods of KubeClient
This should provide better confidence that we are indeed disallowing
redirection in all cases
2019-01-25 16:48:37 +13:00
Takuya Noguchi
db237d8431
Update Helm to 2.12.2 to address Helm client vulnerability
...
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
2019-01-18 09:21:47 +09:00
Thong Kuah
dc18272091
Modify service so that it can be re-run
...
If the service fails mid-point, then we should be able to re-run this
service. So, detect presence of any previously created Kubernetes
resource and update or create accordingly.
Fix specs accordingly. In the case of finalize_creation_service_spec.rb,
I decided to stub out the async worker rather than maintaining
individual stubs for various kubeclient calls for that worker.
Also add test cases for group clusters
2018-12-04 15:46:46 +13:00
Stan Hu
681d7139a9
Merge branch 'json-logging-for-k8s' into 'master'
...
Json logging for k8s Integration
See merge request gitlab-org/gitlab-ce!23328
2018-11-27 16:51:34 +00:00
Dylan Griffith
7e7fb6deba
Use JSON logging for helm install services
2018-11-27 15:23:02 +01:00
Dylan Griffith
6a66e4a1f1
Don't remove failed install pods
...
We want to keep failed install pods around so that it is easier to debug
why a failure occured. With this change we also need to ensure that we
remove a previous pod with the same name before installing so that
re-install does not fail.
Another change here is that we no longer need to catch errors from
delete_pod! in CheckInstallationProgressService as we now catch the
ResourceNotFoundError in Helm::Api. The catch statement in
CheckInstallationProgressService was also probably too broad before and
should have been narrowed down simply to ResourceNotFoundError.
2018-11-27 12:54:32 +01:00
Amit Rathi
c3bad68d1c
Merge branch 'master' into certmanager-temp
2018-11-20 17:58:10 +05:30
Amit Rathi
2bb7573380
Updated schema.rb and remove extra char from install_command
2018-11-20 00:02:07 +05:30
Amit Rathi
1c7372ad56
Merge branch 'master' into certmanager-temp
2018-11-19 23:12:52 +05:30
Amit Rathi
feee33e0dc
Remove application flags
2018-11-19 22:47:59 +05:30
gfyoung
7ec8af5017
Enable even more frozen string for lib/gitlab
...
Enables frozen string for the following:
* lib/gitlab/hook_data/**/*.rb
* lib/gitlab/i18n/**/*.rb
* lib/gitlab/import/**/*.rb
* lib/gitlab/import_export/**/*.rb
* lib/gitlab/kubernetes/**/*.rb
* lib/gitlab/legacy_github_import/**/*.rb
* lib/gitlab/manifest_import/**/*.rb
* lib/gitlab/metrics/**/*.rb
* lib/gitlab/middleware/**/*.rb
Partially addresses gitlab-org/gitlab-ce#47424 .
2018-11-16 17:41:14 -08:00
Kamil Trzciński
5b75fcf6f2
Merge branch '49726-upgrade-helm-to-2-11' into 'master'
...
Resolve "Upgrade Helm Tiller Version Used By GitLab Managed Apps"
Closes #49726
See merge request gitlab-org/gitlab-ce!22693
2018-11-16 12:09:26 +00:00
Dylan Griffith
1244533b77
Remove unnecessary --tiller-namespace
2018-11-16 10:57:48 +00:00
Dylan Griffith
9b1a99b03d
Use helm version loop instead of sleep in ClientCommand
2018-11-16 10:57:27 +00:00
Dylan Griffith
a71b3f6a7c
Extract Helm::ClientCommand for shared commands
2018-11-16 10:57:20 +00:00
Dylan Griffith
fe1469e12f
Upgrade helm to 2.11.0 and upgrade on every install
2018-11-16 10:22:40 +00:00
Kamil Trzciński
5059c15d06
Merge branch '53626-update-config-map-on-install-retry' into 'master'
...
Update config map if already present on install
Closes #53626
See merge request gitlab-org/gitlab-ce!22969
2018-11-15 12:33:40 +00:00
Amit Rathi
161e66890c
Set appropriate RBAC flag for cluster applications
2018-11-15 17:52:41 +05:30
Chris Baumbauer
327892b23e
Add knative client to kubeclient library
2018-11-15 11:39:43 +00:00
Thong Kuah
429d3e4952
Update config map if already present on install
...
When an application install fails, and the user retries install, the
configmap for the application will already exists. If so, we simply
update instead of create.
2018-11-15 22:39:42 +13:00
Amit Rathi
5c275490ec
Merge branch 'master' into certmanager-temp
2018-11-14 10:14:50 +05:30
Amit Rathi
631ab89885
Use email on the account
2018-11-13 20:36:06 +05:30
Thong Kuah
14b3033a0d
Show HTTP response code for Kubernetes errors
2018-11-13 12:46:01 +00:00
Amit Rathi
0e4ad53c92
Remove logging from pod.rb
2018-11-13 17:42:34 +05:30
Amit Rathi
7be10a7c21
Remove logging changes
2018-11-13 17:40:38 +05:30
Amit Rathi
6dda43d67e
Cleanup
2018-11-13 17:38:04 +05:30
Amit Rathi
206f6747ec
Updated logging
2018-11-13 16:57:49 +05:30
Amit Rathi
c2407dab3e
Merge branch 'master' into certmanager-temp
2018-11-12 12:06:59 +05:30
Dylan Griffith
da7836956e
Improve Debugging Capabilities For Helm Application Installs
2018-11-09 15:03:24 +00:00
Chris Baumbauer
26673cc827
Fix double-negation
2018-11-06 12:06:37 -08:00
Chris Baumbauer
008126a878
Refactor preinstall/postinstall methods in the helm installer
2018-11-06 12:00:16 -08:00
Chris Baumbauer
97441486ce
Fix issue with missing knative cluster role binding, and cleanup tests
2018-11-05 23:55:18 -08:00
Chris Baumbauer
c10452d285
Resolve issues raised by Kamil
2018-11-03 10:48:48 -07:00
Chris Baumbauer
aa44393e8f
Merge branch 'master' into triggermesh-phase1-knative
2018-11-03 10:13:35 -07:00
Amit Rathi
8837519445
Pushing WIP state for backup
2018-11-03 09:08:21 +05:30
Dylan Griffith
d86f76320c
Use our own docker image for helm install pods
...
This will reduce dependencies and failure points during installation. It
will also reduce security risks from untrusted dependencies being able
to effect all our users
2018-11-02 17:46:33 +00:00
Thong Kuah
5ede567d71
Incorporates Kubernetes Namespace into Cluster's flow
2018-11-02 15:46:15 +00:00
Chris Baumbauer
dc078c2417
Merge branch 'master' into triggermesh-phase1-knative
2018-11-02 08:39:25 -07:00
Chris Baumbauer
0ddff09385
Revert Helm version bump
2018-10-29 10:56:46 -07:00
Kamil Trzciński
9e6098a6db
Merge branch 'refactor_gitlab_kube_client' into 'master'
...
Refactor Gitlab::KubeClient
Closes #52131
See merge request gitlab-org/gitlab-ce!22073
2018-10-25 12:02:11 +00:00
Chris Baumbauer
b5155b90ee
Knative support
2018-10-24 22:38:44 -07:00
Chris Baumbauer
661fd213de
Update helm version 1.7.2 -> 2.11.0
2018-10-24 15:13:33 -07:00
Thong Kuah
a5419138fd
Store version within SUPPORTED_API_GROUPS hash
...
This removes the ability to pass in a different version. We can instead
create a new entry in the SUPPORTED_API_GROUPS hash for a different
version if need be.
2018-10-23 23:52:34 +13:00
Thong Kuah
170071e365
DRY up *_clients methods
...
Build using `define_method` directly from the constant, saves us writing
api_groups strings twice.
2018-10-23 23:38:44 +13:00
Thong Kuah
27979aac0a
Split hashed_clients into one per api_group
...
Essentially make #build_kubeclient do less.
Should be much clearer now
2018-10-23 23:36:44 +13:00
Thong Kuah
983c4a50d0
Remove api_groups from KubeClient constructor
...
We should have access to #core_client, #rbac_client,
and #extensions_client without having to pass in an awkward array.
Also change api_version to default_api_version, which allows us to use a
different version for an individual client. Special case for
apis/extensions which only go up to v1beta1
Makes #hashed_client private
Removes the #clients and #discover! methods which are un-used
2018-10-23 23:36:43 +13:00
Mayra Cabrera
1e4d615000
Add RoleBinding methods
...
Includes RoleBinding methods to Kubeclient and introduce a new lib class
to generate RoleBinding resources.
This MR is part of
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/22011
2018-10-22 17:16:14 -05:00
Thong Kuah
f6ff32d9bd
Port Helm::Api EE extensions to CE
...
We will need these utility level code in the future to help upgrade all
helm applications.
2018-10-01 11:16:07 +13:00
Thong Kuah
e6fd3f1986
Port UpgradeCommand to CE
...
This is a utility class that we will need in the future to update and
upgrade our managed helm applications, which we do plan to do in CE.
2018-09-27 18:15:04 +12:00
Thong Kuah
a02e35308b
Always create `gitlab` service account and service account token regardless of ABAC/RBAC
...
This also solves the async nature of the automatic creation of default
service tokens for service accounts. It also makes explicit which
service account token we always use.
create cluster role binding only if the provider has legacy_abac
disabled.
2018-09-14 16:26:51 +12:00
Thong Kuah
8c8ccd3167
Teach GitLab how to create Secret of type ServiceAccountToken
...
Add create_secret to KubeClient
2018-09-14 16:26:51 +12:00
Thong Kuah
6f2ad2b604
Enable Kubernetes RBAC for GitLab Managed Apps for existing clusters
2018-09-06 10:03:38 +00:00
Mayra Cabrera
fc13409637
Resolve "Mutual SSL Auth For Helm TIller"
2018-08-07 12:39:38 +00:00
Thong Kuah
05c7c7e0ef
Update Helm Tiller used by gitlab-managed-apps to 2.7.2
2018-08-02 13:19:20 +12:00
Mayra Cabrera
b21730116e
Revert "Merge branch '48098-mutual-auth-cluster-applications' into 'master'"
...
This reverts merge request !20801
2018-07-31 13:15:18 +00:00
Dylan Griffith
8f41c85760
Minor style improvements for Helm code
2018-07-30 13:08:33 +00:00
Dylan Griffith
c6e459d2b5
Use guard clause in Helm::InstallCommand
2018-07-30 13:08:33 +00:00
Dylan Griffith
b169ec7fd3
Expand ca -> certificate_authority in Helm::Certificate
2018-07-30 13:08:32 +00:00
Dylan Griffith
c7360d13be
Combine attr_reader in InstallCommand to one line
2018-07-30 13:08:32 +00:00
Dylan Griffith
ca35eb47b7
Minor refactoring of InitCommand and InstallCommand
2018-07-30 13:08:32 +00:00
Dylan Griffith
f6ae53bbfc
Reduce duplication in code in Gitlab::Kubernetes::Helm::Certificate
2018-07-30 13:08:31 +00:00
Dylan Griffith
cb21560b91
Ensure CA + Tiller cert never expire and Helm client cert expires quickly
2018-07-30 13:08:31 +00:00
Dylan Griffith
11edbcccef
Get mutual SSL working with helm tiller
2018-07-30 13:08:30 +00:00
Dylan Griffith
ce897f11a0
Refactor Cluster Application classes to pass through a has of config files
...
This is refactoring in the lead up to passing mutual TLS certs for helm applications. As such we expect all applications to need config files so we can remove the logic about which applications need and do not need this (ie `#config_map?`).
2018-07-28 09:50:31 +00:00
Tiago Botelho
f7abde937d
Move kubeclient and namespace variables to the private interface
2018-07-25 09:39:39 +01:00
Tiago Botelho
eb7c08c7a6
Backports relevant changes made in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/5163 to CE
2018-07-25 09:39:39 +01:00
Mayra Cabrera
8cc2c08aa7
Include wget in apk add command
...
Closes #48978
2018-07-08 10:27:49 -05:00
Mayra Cabrera
5841e92390
Resolve "Unable to install Prometheus on Clusters: 'Error: Chart incompatible with Tiller v2.7.0'"
2018-06-20 12:10:14 +00:00
Alessio Caiazza
ce5723c849
Add alpine mirrors while operating on k8s cluster
2018-04-30 15:12:26 +02:00
Pirate Praveen
53e2987ba6
Replace KubeException with Kubeclient::HttpError (kubeclient 3.0)
2018-03-15 08:14:13 +01:00
Mayra Cabrera
c607008ee5
Extend Cluster Applications to install GitLab Runner to Kubernetes cluster
2018-03-01 23:46:02 +00:00
Joshua Lambert
1f912880db
Enable Prometheus metrics for deployed Ingresses
2018-02-05 12:46:31 +00:00
Mayra Cabrera
1827f398ad
Resolve "Managed Prometheus deployment installs a lot of extra stuff"
2018-01-15 16:27:58 +00:00
🙈 jacopo beschi 🙉
729f05f0e3
Adds Rubocop rule for line break around conditionals
2018-01-11 16:34:01 +00:00
Stan Hu
b762430795
Fix namespace ambiguity with Kubernetes Pod definitions
...
This was causing a spec failure between Gitlab::Kubernetes::Helm::Pod and
Gitlab::Kubernetes::Helm::Api::Pod if one spec loaded the former
definition first.
Closes #41458
2017-12-24 13:43:46 -08:00
Mayra Cabrera
0d4548026f
Extend Cluster Applications to allow installation of Prometheus
2017-12-22 17:23:43 +00:00
Rémy Coutable
97552d46fe
Ensure `Namespace`'s is namespaced in `Gitlab::Kubernetes::Helm#initialize` and fix a transient failing spec due to that
...
Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-12-01 15:55:06 +01:00
Jacopo
181cd299f9
Adds Rubocop rule for line break after guard clause
...
Adds a rubocop rule (with autocorrect) to ensure line break after guard clauses.
2017-11-16 17:58:29 +01:00
Alessio Caiazza
1471495e15
Review Gitlab::Kubernetes::Namespace
2017-11-07 17:51:30 +01:00
Alessio Caiazza
8ec618a6ed
Add Helm InstallCommand
2017-11-07 17:12:41 +01:00
Alessio Caiazza
3f261a499e
Add k8s namespace implementation and tests
2017-11-07 14:05:58 +01:00
Alessio Caiazza
44f885eff6
Fix typo
2017-11-03 12:23:08 +01:00
Alessio Caiazza
08752e5d74
Remove `Clusters::Applications::FetchInstallationStatusService`
2017-11-03 10:57:09 +01:00
Alessio Caiazza
31c256c154
General cleanup
2017-11-02 17:01:21 +01:00