Cert manager migration, cluster_issuer etc.
This commit is contained in:
parent
0e8e75581b
commit
27ce614043
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,76 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Clusters
|
||||||
|
module Applications
|
||||||
|
class CertManager < ActiveRecord::Base
|
||||||
|
VERSION = 'v0.5.0'.freeze
|
||||||
|
|
||||||
|
self.table_name = 'clusters_applications_cert_managers'
|
||||||
|
|
||||||
|
include ::Clusters::Concerns::ApplicationCore
|
||||||
|
include ::Clusters::Concerns::ApplicationStatus
|
||||||
|
include ::Clusters::Concerns::ApplicationVersion
|
||||||
|
include ::Clusters::Concerns::ApplicationData
|
||||||
|
|
||||||
|
default_value_for :version, VERSION
|
||||||
|
|
||||||
|
def ready_status
|
||||||
|
[:installed]
|
||||||
|
end
|
||||||
|
|
||||||
|
def ready?
|
||||||
|
ready_status.include?(status_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
def chart
|
||||||
|
'stable/cert-manager'
|
||||||
|
end
|
||||||
|
|
||||||
|
def install_command
|
||||||
|
Gitlab::AppLogger.info '----- INSTALLING CLUSTER ISSUER-v2 ----'
|
||||||
|
begin
|
||||||
|
Gitlab::Kubernetes::Helm::InstallCommand.new(
|
||||||
|
name: 'certmanager',
|
||||||
|
version: VERSION,
|
||||||
|
rbac: cluster.platform_kubernetes_rbac?,
|
||||||
|
chart: chart,
|
||||||
|
files: files.merge!(cluster_issuer_file),
|
||||||
|
postinstall: post_install_script
|
||||||
|
)
|
||||||
|
#res = YAML.load_file(Rails.root.join('config', 'cert_manager', 'cluster_issuer.yaml'))
|
||||||
|
#Gitlab::AppLogger.info(res)
|
||||||
|
#Gitlab::Kubernetes::ClusterIssuer(res).generate()
|
||||||
|
rescue StandardError => e
|
||||||
|
Gitlab::AppLogger.info('install_command_eror------------------------------------------------')
|
||||||
|
Gitlab::AppLogger.error(e)
|
||||||
|
Gitlab::AppLogger.error(e.backtrace.join("\n"))
|
||||||
|
rescue Exception => e
|
||||||
|
Gitlab::AppLogger.info('install_command_exception--------------------------------------------------')
|
||||||
|
Gitlab::AppLogger.error(e)
|
||||||
|
Gitlab::AppLogger.error(e.backtrace.join("\n"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def cluster_issuer_resource_definition
|
||||||
|
YAML.load_file(Rails.root.join('config', 'cert_manager', 'cluster_issuer.yaml'))
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def post_install_script
|
||||||
|
["/usr/bin/kubectl create -f /data/helm/certmanager/config/cluster_issuer.yaml"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def cluster_issuer_file
|
||||||
|
{
|
||||||
|
'cluster_issuer.yaml': File.read(cluster_issuer_file_path)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
def cluster_issuer_file_path
|
||||||
|
"#{Rails.root}/vendor/cert_manager/cluster_issuer.yaml"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: certmanager.k8s.io/v1alpha1
|
||||||
|
kind: ClusterIssuer
|
||||||
|
metadata:
|
||||||
|
name: letsencrypt-prod
|
||||||
|
spec:
|
||||||
|
acme:
|
||||||
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
|
email: hello@amirathi.com
|
||||||
|
privateKeySecretRef:
|
||||||
|
name: letsencrypt-prod
|
||||||
|
http01: {}
|
|
@ -0,0 +1,22 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
|
||||||
|
# for more information on how to write migrations for GitLab.
|
||||||
|
|
||||||
|
class CreateClustersApplicationsCertManager < ActiveRecord::Migration
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
# Set this constant to true if this migration requires downtime.
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
def change
|
||||||
|
create_table :clusters_applications_cert_managers do |t|
|
||||||
|
t.references :cluster, null: false, unique: true, foreign_key: { on_delete: :cascade }
|
||||||
|
t.integer :status, null: false
|
||||||
|
t.string :version, null: false
|
||||||
|
t.string :email, null:false
|
||||||
|
t.timestamps_with_timezone null: false
|
||||||
|
t.text :status_reason
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: certmanager.k8s.io/v1alpha1
|
||||||
|
kind: ClusterIssuer
|
||||||
|
metadata:
|
||||||
|
name: letsencrypt-prod
|
||||||
|
spec:
|
||||||
|
acme:
|
||||||
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
|
email: my-email@example.com
|
||||||
|
privateKeySecretRef:
|
||||||
|
name: letsencrypt-prod
|
||||||
|
http01: {}
|
Loading…
Reference in New Issue