diff --git a/charts/devtron/values.yaml b/charts/devtron/values.yaml index 185aac3..6f8971f 100644 --- a/charts/devtron/values.yaml +++ b/charts/devtron/values.yaml @@ -9,21 +9,6 @@ secrets: # value: "#########" configs: - BASE_URL_SCHEME: "http" - #url without scheme and without trailing '/' - BASE_URL: "www.example.com" - #DEX_CONFIG: |- - # connectors: - # - type: oidc - # id: google - # name: Google - # config: - # issuer: https://accounts.google.com - # clientID: xxxxxxxx-xxxxxxxxxxxxxxxxx.apps.googleusercontent.com - # clientSecret: xxxxxxxxxxxxxxxxx - # redirectURI: :///api/dex/callback - # hostedDomains: - # - example.com DEFAULT_CD_LOGS_BUCKET_REGION: "change-me" DEFAULT_CACHE_BUCKET: "change-me" DEFAULT_CACHE_BUCKET_REGION: "change-me" diff --git a/install/devtron-installer.yaml b/install/devtron-installer.yaml index b5aca2f..af6e6b0 100644 --- a/install/devtron-installer.yaml +++ b/install/devtron-installer.yaml @@ -4,4 +4,4 @@ metadata: name: installer-devtron namespace: default spec: - url: https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/installation-script + url: https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/hosturl-changes/installation-script diff --git a/install/devtron-operator-configs.yaml b/install/devtron-operator-configs.yaml index a04148b..936e134 100644 --- a/install/devtron-operator-configs.yaml +++ b/install/devtron-operator-configs.yaml @@ -15,10 +15,7 @@ metadata: name: devtron-operator-cm namespace: devtroncd data: - BASE_URL_SCHEME: "http" #url without scheme and without trailing '/' - BASE_URL: "change-me" - DEX_CONFIG: "change-me" DEFAULT_CD_LOGS_BUCKET_REGION: "change-me" DEFAULT_CACHE_BUCKET: "change-me" DEFAULT_CACHE_BUCKET_REGION: "change-me" diff --git a/installation-script b/installation-script index c679bf2..79dfae2 100644 --- a/installation-script +++ b/installation-script @@ -3,12 +3,9 @@ operatorConfigMap = kubectl get cm -n devtroncd devtron-operator-cm; postgresqlPassword = jsonSelect(operatorSecret, "data.POSTGRESQL_PASSWORD"); acdPassword = jsonSelect(operatorSecret, "data.ACD_PASSWORD"); webHookToken = jsonSelect(operatorSecret, "data.WEBHOOK_TOKEN"); -grafanaPassword = jsonSelect(operatorSecret, "data.GRAFANA_PASSWORD"); azureAccountKey = jsonSelect(operatorSecret, "data.AZURE_ACCOUNT_KEY"); -baseURLScheme = jsonSelect(operatorConfigMap, "data.BASE_URL_SCHEME"); -baseURL = jsonSelect(operatorConfigMap, "data.BASE_URL"); -dexConfig = jsonSelect(operatorConfigMap, "data.DEX_CONFIG"); + defaultCDLogsBucketRegion = jsonSelect(operatorConfigMap, "data.DEFAULT_CD_LOGS_BUCKET_REGION"); defaultCacheBucket = jsonSelect(operatorConfigMap, "data.DEFAULT_CACHE_BUCKET"); defaultCacheBucketRegion = jsonSelect(operatorConfigMap, "data.DEFAULT_CACHE_BUCKET_REGION"); @@ -42,32 +39,28 @@ base64DecoderSuffix = ` | base64 -d | tr -d ':\n'`; if !postgresqlPassword { log("postgresql password is mandatory"); } -if !baseURL { - log("baseURL is mandatory"); -} argocd = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/argocd.yaml"); clair = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/clair.yaml"); clairConfig = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/clair-config.yaml"); -dashboard = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/dashboard.yaml"); +dashboard = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/hosturl-changes/yamls/dashboard.yaml"); gitSensor = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/gitsensor.yaml"); guard = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/guard.yaml"); postgresql = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/postgresql.yaml"); imageScanner = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/image-scanner.yaml"); kubewatch = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/kubewatch.yaml"); lens = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/lens.yaml"); -migrator = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/migrator.yaml"); +migrator = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/hosturl-changes/yamls/migrator.yaml"); natsOperator = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/nats-operator.yaml"); natsServer = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/nats-server.yaml"); natsStreaming = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/nats-streaming.yaml"); -notifier = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/notifier.yaml"); -devtron = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/devtron.yaml"); +notifier = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/hosturl-changes/yamls/notifier.yaml"); +devtron = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/hosturl-changes/yamls/devtron.yaml"); devtronDexIngress = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/devtron-dex-ingress.yaml"); workflow = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/workflow.yaml"); serviceAccount = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/serviceaccount.yaml"); namespace = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/namespace.yaml"); externalSecret = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/external-secret.yaml"); -grafana = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/grafana.yaml"); rollout = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/rollout.yaml"); minio = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/yamls/minio.yaml"); @@ -89,124 +82,8 @@ natsStreamingOverride = download("https://raw.githubusercontent.com/devtron-labs devtronDexIngressOverride = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/updates/yamls/devtron-dex-ingress.yaml"); workflowOverride = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/updates/workflow.yaml"); externalSecretOverride = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/updates/external-secret.yaml"); -grafanaOverride = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/updates/grafana.yaml"); rolloutOverride = download("https://raw.githubusercontent.com/devtron-labs/devtron-installation-script/main/updates/rollout.yaml"); -#grafana -grafanaSecret = kubectl get -n devtroncd secret devtron-grafana-cred-secret; -hasgrafana = kubectl get -n devtroncd deployment devtron-grafana; -grafanaPassword = jsonSelect(grafanaSecret, "data.admin-password"); -if !grafanaPassword { - log ("not found"); - grafanaPassword = shellScript passwordGen; -} -grafanaPasswordPlain = base64DecoderPrefix + `echo "` + grafanaPassword + `" | tr -d ':\n' ` + base64DecoderSuffix; -grafanaPasswordPlain = shellScript grafanaPasswordPlain; -kubeYamlEdit(grafana, "data.admin-password", grafanaPassword, `/Secret//devtron-grafana-cred-secret`); -grafanaUrl = baseURLScheme + "://%s:%s@" + baseURL + "/grafana"; -grafanaUrlWithPwd = baseURLScheme + "://admin:"+ grafanaPasswordPlain + "@" + baseURL + "/grafana"; - -grafanaIni = `[analytics] -check_for_updates = true -[auth.anonymous] -enabled = true -org_name = devtron-metrics-view -org_role = Viewer -[grafana_net] -url = https://grafana.net -[log] -mode = console -[paths] -data = /var/lib/grafana/data -logs = /var/log/grafana -plugins = /var/lib/grafana/plugins -provisioning = /etc/grafana/provisioning -[security] -allow_embedding = true -[server] -root_url = ` + baseURLScheme + "://" + baseURL + `/grafana -serve_from_sub_path = true -[users] -allow_org_create = true - `; -kubeYamlEdit(grafana, `data.grafana\.ini`, grafanaIni, `/ConfigMap/devtroncd/devtron-grafana`); -grafana = kubectl apply -n devtroncd grafana -u grafanaOverride; -log("setup grafana"); - -if !hasgrafana { - createOrgScript = shebang + ` - sleep 50 - ORG_ID=$( curl -d '{"name":"devtron-metrics-view"}' -H "Content-Type: application/json" -X POST '` + grafanaUrlWithPwd + `/api/orgs' ) - echo $ORG_ID - `; - createOrg = shellScript createOrgScript; - log("created org " + createOrg); - - orgId = jsonSelect(createOrg, "orgId"); - if !orgId { - orgId = "2"; - } - - activeOrgScript = shebang + ` - curl -X POST '` + grafanaUrlWithPwd + `/api/user/using/` + orgId +`'`; - activeOrg = shellScript activeOrgScript; - log("activated org"); - - setPreferenceScript = shebang + ` - curl -X PUT -H "Content-Type: application/json" -d '{"homeDashboardId":0,"theme":"light","timezone":"browser"}' '`+ grafanaUrlWithPwd + `/api/org/preferences'`; - setPreference = shellScript setPreferenceScript; - log("set preference"); - - prometheusDatasourceScript = shebang + ` - curl '` + grafanaUrlWithPwd + `/api/datasources' \ - -H 'content-type: application/json' \ - -H 'x-grafana-org-id: ` + orgId + `' \ - --data-raw '{"name":"Prometheus-devtron","type":"prometheus","access":"proxy","isDefault":true}' - `; - prometheusDatasource = shellScript prometheusDatasourceScript; - log("data source setup step 1"); - - datasourceId = jsonSelect(prometheusDatasource, "datasource.id"); - log("datasource id " + datasourceId); - - prometheusDatasourceScriptUpdate = shebang + ` - curl '` + grafanaUrlWithPwd + `/api/datasources/` + datasourceId + `' -X PUT \ - -H 'content-type: application/json' \ - -H 'x-grafana-org-id: ` + orgId + `' \ - --data-raw '{"id":` + datasourceId +` , - "orgId":` + orgId + `, - "name":"Prometheus-devtron","type":"prometheus","access":"proxy", - "url":"` + prometheusUrl + `", - "basicAuth":true,"jsonData":{},"version":1}' - `; - prometheusDatasourceUpdate = shellScript prometheusDatasourceScriptUpdate; - log("data source setup step 2"); - - grafanaDashboardProvider = ` -apiVersion: 1 -providers: -- disableDeletion: true - editable: false - folder: "" - name: devtron-provider - options: - path: /var/lib/grafana/dashboards/devtron-provider - orgId: `+ orgId + ` - type: file - `; - - grafanaCm = kubectl get -n devtroncd cm devtron-grafana; - jsonEdit(grafanaCm, `data.dashboardproviders\.yaml`, grafanaDashboardProvider); - grafanaCm = kubectl apply -n devtroncd grafanaCm; - log("setup up grafana cm with provider yaml"); - - allDevtroncdPo = kubectl get po -n devtroncd; - grafanaPodnamePattern = `items.#(metadata.name%"devtron-grafana*").metadata.name`; - grafanaPodname = jsonSelect(allDevtroncdPo, grafanaPodnamePattern); - grafanaPoddelete = kubectl delete -n devtroncd po grafanaPodname; - log("deleted grafana pod to reload configmap"); -} - namespaces = kubectl apply namespace; log("created namespaces"); sa = kubectl apply serviceAccount; @@ -241,13 +118,9 @@ helmRepo = `- name: incubator url: https://charts.helm.sh/stable`; kubeYamlEdit(argocd, `data.repositories`, helmRepo, `/ConfigMap//argocd-cm` ); -kubeYamlEdit(argocd, "data.url", baseURLScheme + "://" + baseURL, `/ConfigMap//argocd-cm`); -if dexConfig { - kubeYamlEdit(argocd, `data.dex\.config`, dexConfig, `/ConfigMap//argocd-cm`); -} + kubeYamlEdit(argocd, `data.policy\.default`, `role:admin`, `/ConfigMap//argocd-rbac-cm`); -# patchLoad = '{"data":{"url":"' + baseURL + '", "dex.config:"' + dexConfig + '}}'; # pa = kubectl patch -n devtroncd cm/argocd-cm --type "application/merge-patch+json" -p patchLoad; kubeYamlEdit(argocd, `subjects.0.namespace`, "devtroncd", `rbac.authorization.k8s.io/ClusterRoleBinding//argocd-application-controller`); @@ -260,7 +133,6 @@ if hasArgocd { kubeYamlDelete(argocd, filter=`/ConfigMap//argocd-tls-certs-cm`); } argocd = kubectl apply -n devtroncd argocd -u argocdOverride; -#patchLoad = '{"data":{"url":"' + baseURL + '", "dex.config:"' + dexConfig + '}}'; #pa = kubectl patch -n devtroncd cm/argocd-cm --type "application/merge-patch+json" -p patchLoad; log("executed argocd setup command"); @@ -273,7 +145,6 @@ kubeYamlEdit(gitSensor, "data.PG_PASSWORD", postgresqlPassword, `/Secret//git-se #notifier kubeYamlEdit(notifier, "data.DB_PWD", postgresqlPassword, `/Secret//notifier-secret`); -kubeYamlEdit(notifier, "data.BASE_URL", baseURLScheme + "://" + baseURL, `/ConfigMap//notifier-cm`); #image-scanner kubeYamlEdit(imageScanner, "data.PG_PASSWORD", postgresqlPassword, `/Secret//image-scanner-secret`); @@ -381,15 +252,12 @@ kubeYamlEdit(devtron, "data.DEX_SECRET", dexSecret, `/Secret//devtron-secret`); kubeYamlEdit(devtron, "data.DEX_JWTKEY", dexJwtKey, `/Secret//devtron-secret`); kubeYamlEdit(devtron, "data.DEX_CSTOREKEY", dexCStoreKey, `/Secret//devtron-secret`); kubeYamlEdit(devtron, "data.ACD_PASSWORD", acdPassword, `/Secret//devtron-secret`); -kubeYamlEdit(devtron, "data.GRAFANA_PASSWORD", grafanaPassword, `/Secret//devtron-secret`); -kubeYamlEdit(devtron, "data.EXTERNAL_CI_WEB_HOOK_URL", baseURLScheme + "://" + baseURL+"/orchestrator/webhook/ext-ci", `/ConfigMap//devtron-cm`); kubeYamlEdit(devtron, "data.DEFAULT_CD_LOGS_BUCKET_REGION", defaultCDLogsBucketRegion, `/ConfigMap//devtron-cm`); kubeYamlEdit(devtron, "data.DEFAULT_CACHE_BUCKET", defaultCacheBucket, `/ConfigMap//devtron-cm`); kubeYamlEdit(devtron, "data.DEFAULT_CACHE_BUCKET_REGION", defaultCacheBucketRegion, `/ConfigMap//devtron-cm`); kubeYamlEdit(devtron, "data.DEFAULT_BUILD_LOGS_BUCKET", defaultBuildLogsBucket, `/ConfigMap//devtron-cm`); -kubeYamlEdit(devtron, "data.GRAFANA_URL", grafanaUrl, `/ConfigMap//devtron-cm`); if !cloudProvider { cloudProvider="AWS";