@@ -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#
@@ -285,6 +323,7 @@ echo " csdp token: ****"
285323echo " runtime repo: ${CSDP_RUNTIME_REPO} "
286324echo " runtime repo path: ${CSDP_RUNTIME_REPO_PATH} "
287325echo " runtime repo creds pattern: ${CSDP_RUNTIME_REPO_CREDS_PATTERN} "
326+ echo " default git-source repo: ${CSDP_CREATE_DEFAULT_GIT_SOURCE_APP_SPECIFIER} "
288327echo " runtime git-token: ****"
289328echo " runtime cluster: ${CSDP_RUNTIME_CLUSTER} "
290329echo " runtime name: ${CSDP_RUNTIME_NAME} "
@@ -355,8 +394,17 @@ else
355394fi
356395
357396# 6. Register to git integration
358- if [[ " $CSDP_MANAGED_RUNTIME " == " true" ]] ; then
397+ if [[ " $CSDP_MANAGED_RUNTIME " -ne " true" ]] ; then
359398 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
360408fi
361409echo " "
362410
0 commit comments