@@ -26,6 +26,7 @@ ARGOCD_INITIAL_TOKEN_SECRET_NAME="argocd-initial-admin-secret"
26
26
BOOTSTRAP_APP_NAME=" csdp-bootstrap"
27
27
COMPONENTS_MANAGED=" argo-events,app-proxy,argo-cd,events-reporter"
28
28
COMPONENTS=" argo-events,app-proxy,argo-cd,events-reporter,rollout-reporter,workflow-reporter"
29
+ DEFAULT_GIT_SOURCE_NAME=" default-git-source"
29
30
30
31
# Params:
31
32
check_required_param " namespace" " ${NAMESPACE} "
@@ -45,6 +46,11 @@ CSDP_GIT_INTEGRATION_TOKEN="${CSDP_GIT_INTEGRATION_TOKEN:-${CSDP_RUNTIME_GIT_TOK
45
46
CSDP_RUNTIME_REPO_PATH=" ${CSDP_RUNTIME_REPO_PATH:- runtimes/ ${CSDP_RUNTIME_NAME} / bootstrap} "
46
47
CSDP_RUNTIME_REPO_CREDS_PATTERN=` echo ${CSDP_RUNTIME_REPO} | grep --color=never -E -o ' ^http[s]?:\/\/([a-zA-Z0-9\.]*)' `
47
48
CSDP_MANAGED_RUNTIME=" ${CSDP_MANAGED_RUNTIME:- false} "
49
+ DEFAULT_DEST_SERVER=" https://kubernetes.default.svc"
50
+ CSDP_CREATE_DEFAULT_GIT_SOURCE=" ${CSDP_CREATE_DEFAULT_GIT_SOURCE:- true} "
51
+ CSDP_CREATE_DEFAULT_GIT_SOURCE_APP_SPECIFIER=" ` echo ${CSDP_RUNTIME_REPO} | sed s/\. git$//` _git-source.git/resources_${CSDP_RUNTIME_NAME} "
52
+
53
+
48
54
49
55
create_codefresh_secret () {
50
56
if [[ " $CSDP_MANAGED_RUNTIME " == " true" ]] ; then
@@ -132,7 +138,7 @@ create_bootstrap_application() {
132
138
project: default
133
139
destination:
134
140
namespace: ${NAMESPACE}
135
- server: https://kubernetes.default.svc
141
+ server: ${DEFAULT_DEST_SERVER}
136
142
ignoreDifferences:
137
143
- group: argoproj.io
138
144
kind: Application
@@ -271,6 +277,38 @@ register_to_git_integration() {
271
277
echo " "
272
278
}
273
279
280
+ create_default_git_source () {
281
+ echo " --> Creating default git source"
282
+
283
+ GIT_SOURCE_CREATE_ARGS=" {
284
+ \" appName\" : \" ${DEFAULT_GIT_SOURCE_NAME} \" ,
285
+ \" appSpecifier\" : \" ${CSDP_CREATE_DEFAULT_GIT_SOURCE_APP_SPECIFIER} \" ,
286
+ \" destServer\" : \" ${DEFAULT_DEST_SERVER} \" ,
287
+ \" destNamespace\" : \" ${CSDP_RUNTIME_NAME} \"
288
+ }"
289
+
290
+ GIT_SOURCE_CREATE_DATA=" {\" operationName\" :\" CreateGitSource\" ,\" variables\" :{\" args\" :$GIT_SOURCE_CREATE_ARGS }"
291
+ GIT_SOURCE_CREATE_DATA+=$' ,"query":"mutation CreateGitSource($args: CreateGitSourceInput\u0021) {\\ n createGitSource(args: $args)\\ n}\\ n"}'
292
+
293
+ GIT_SOURCE_CREATE_RESPONSE=` curl " ${CSDP_RUNTIME_INGRESS_URL} /app-proxy/api/graphql" \
294
+ -SsfL \
295
+ -H " Authorization: ${CSDP_TOKEN} " \
296
+ -H ' content-type: application/json' \
297
+ --compressed \
298
+ --insecure \
299
+ --data-raw " $GIT_SOURCE_CREATE_DATA " `
300
+
301
+ if ` echo " $GIT_SOURCE_CREATE_RESPONSE " | jq -e ' has("errors")' ` ; then
302
+ echo " Failed to create default git source"
303
+ echo ${GIT_SOURCE_CREATE_RESPONSE}
304
+ exit 1
305
+ fi
306
+
307
+ echo " --> Created default git source:"
308
+ echo " ${GIT_SOURCE_CREATE_RESPONSE} "
309
+ echo " "
310
+ }
311
+
274
312
#
275
313
# Start here:
276
314
#
@@ -285,6 +323,7 @@ echo " csdp token: ****"
285
323
echo " runtime repo: ${CSDP_RUNTIME_REPO} "
286
324
echo " runtime repo path: ${CSDP_RUNTIME_REPO_PATH} "
287
325
echo " runtime repo creds pattern: ${CSDP_RUNTIME_REPO_CREDS_PATTERN} "
326
+ echo " default git-source repo: ${CSDP_CREATE_DEFAULT_GIT_SOURCE_APP_SPECIFIER} "
288
327
echo " runtime git-token: ****"
289
328
echo " runtime cluster: ${CSDP_RUNTIME_CLUSTER} "
290
329
echo " runtime name: ${CSDP_RUNTIME_NAME} "
@@ -355,8 +394,17 @@ else
355
394
fi
356
395
357
396
# 6. Register to git integration
358
- if [[ " $CSDP_MANAGED_RUNTIME " == " true" ]] ; then
397
+ if [[ " $CSDP_MANAGED_RUNTIME " -ne " true" ]] ; then
359
398
register_to_git_integration
399
+
400
+ if [[ " $CSDP_CREATE_DEFAULT_GIT_SOURCE " == " true" ]]; then
401
+ echo " Checking application $DEFAULT_GIT_SOURCE_NAME ..."
402
+ if kubectl -n " $NAMESPACE " get application -l app.kubernetes.io/name=" $DEFAULT_GIT_SOURCE_NAME " 2>&1 | grep " No resources found" ; then
403
+ create_default_git_source
404
+ else
405
+ echo " --> Application $DEFAULT_GIT_SOURCE_NAME exists"
406
+ fi
407
+ fi
360
408
fi
361
409
echo " "
362
410
0 commit comments