@@ -26,6 +26,7 @@ ARGOCD_INITIAL_TOKEN_SECRET_NAME="argocd-initial-admin-secret"
2626BOOTSTRAP_APP_NAME=" csdp-bootstrap"
2727COMPONENTS_MANAGED=" argo-events,app-proxy,argo-cd,events-reporter"
2828COMPONENTS=" argo-events,app-proxy,argo-cd,events-reporter,rollout-reporter,workflow-reporter"
29+ DEFAULT_GIT_SOURCE_NAME=" default-git-source"
2930
3031# Params:
3132check_required_param " namespace" " ${NAMESPACE} "
@@ -45,6 +46,11 @@ CSDP_GIT_INTEGRATION_TOKEN="${CSDP_GIT_INTEGRATION_TOKEN:-${CSDP_RUNTIME_GIT_TOK
4546CSDP_RUNTIME_REPO_PATH=" ${CSDP_RUNTIME_REPO_PATH:- runtimes/ ${CSDP_RUNTIME_NAME} / bootstrap} "
4647CSDP_RUNTIME_REPO_CREDS_PATTERN=` echo ${CSDP_RUNTIME_REPO} | grep --color=never -E -o ' ^http[s]?:\/\/([a-zA-Z0-9\.]*)' `
4748CSDP_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+
4854
4955create_codefresh_secret () {
5056 if [[ " $CSDP_MANAGED_RUNTIME " == " true" ]] ; then
@@ -132,7 +138,7 @@ create_bootstrap_application() {
132138 project: default
133139 destination:
134140 namespace: ${NAMESPACE}
135- server: https://kubernetes.default.svc
141+ server: ${DEFAULT_DEST_SERVER}
136142 ignoreDifferences:
137143 - group: argoproj.io
138144 kind: Application
@@ -271,6 +277,38 @@ register_to_git_integration() {
271277 echo " "
272278}
273279
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+
274312#
275313# Start here:
276314#
@@ -296,6 +334,9 @@ echo " ingress controller: ${CSDP_INGRESS_CONTROLLER}"
296334echo " #######################################"
297335echo " "
298336
337+ create_default_git_source
338+ exit 0
339+
299340echo " Cleaning previous job pods"
300341clean_failed_pods
301342
@@ -355,8 +396,17 @@ else
355396fi
356397
357398# 6. Register to git integration
358- if [[ " $CSDP_MANAGED_RUNTIME " == " true" ]] ; then
399+ if [[ " $CSDP_MANAGED_RUNTIME " -ne " true" ]] ; then
359400 register_to_git_integration
401+
402+ if [[ " $CSDP_CREATE_DEFAULT_GIT_SOURCE " == " true" ]]; then
403+ echo " Checking application $DEFAULT_GIT_SOURCE_NAME ..."
404+ if kubectl -n " $NAMESPACE " get application -l app.kubernetes.io/name=" $DEFAULT_GIT_SOURCE_NAME " 2>&1 | grep " No resources found" ; then
405+ create_default_git_source
406+ else
407+ echo " --> Application $DEFAULT_GIT_SOURCE_NAME exists"
408+ fi
409+ fi
360410fi
361411echo " "
362412
0 commit comments