Skip to content

Commit

Permalink
feat: add argocd cmds (#16)
Browse files Browse the repository at this point in the history
  • Loading branch information
serdigital64 authored Nov 2, 2024
1 parent d277be8 commit 5dae5e5
Show file tree
Hide file tree
Showing 11 changed files with 484 additions and 23 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.13.0]

- ArgoCD
- Added app,repo,cli,cluster,project,window commands

## [0.12.0]

### Added
Expand Down
60 changes: 60 additions & 0 deletions src/argocd/argocd-app-list
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# template: 1.0.0
# template-import: 1.0.0
#######################################
# ArgoCD / App / List
#
# Version: 1.0.0
#
#######################################
# Copyright [2024] [serdigital64@gmail.com]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################

#
# Imports
#

declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}"
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/core/core-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/argocd/argocd-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64
source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" ||
{ echo "Error: unable to load bashlib64" && exit 1; }

#
# Functions
#

function initialize() {
bl64_dbg_app_show_function
s64_argocd_lib_setup
}

#
# Main
#

declare command='argocd-app-list'

bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" || exit $?
initialize || exit $?

bl64_msg_show_batch_start "$command"
s64_argocd_lib_run_argocd \
app \
list
bl64_msg_show_batch_finish $? "$command"
63 changes: 63 additions & 0 deletions src/argocd/argocd-app-sync
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/usr/bin/env bash
# template: 1.0.0
# template-import: 1.0.0
#######################################
# ArgoCD / App / Sync
#
# Version: 1.0.0
#
#######################################
# Copyright [2024] [serdigital64@gmail.com]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################

#
# Imports
#

declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}"
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/core/core-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/argocd/argocd-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64
source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" ||
{ echo "Error: unable to load bashlib64" && exit 1; }

#
# Functions
#

function initialize() {
bl64_dbg_app_show_function
bl64_check_parameter 'app_name' &&
s64_argocd_lib_setup
}

#
# Main
#

declare command='argocd-app-sync'
declare app_name="${1:-}"

bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" || exit $?
initialize || exit $?

bl64_msg_show_batch_start "$command"
s64_argocd_lib_run_argocd \
app \
sync \
"$app_name"
bl64_msg_show_batch_finish $? "$command"
74 changes: 74 additions & 0 deletions src/argocd/argocd-cli-context-set
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/usr/bin/env bash
# template: 1.0.0
# template-import: 1.0.0
#######################################
# ArgoCD / CLI / Context set
#
# Version: 1.0.0
#
#######################################
# Copyright [2024] [serdigital64@gmail.com]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################

#
# Imports
#

declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}"
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/core/core-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/argocd/argocd-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64
source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" ||
{ echo "Error: unable to load bashlib64" && exit 1; }

#
# Functions
#

function initialize() {
bl64_dbg_app_show_function
s64_argocd_lib_setup
}

#
# Main
#

declare command='argocd-cli-context-set'

bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" || exit $?
initialize || exit $?

bl64_msg_show_batch_start "$command"
bl64_msg_show_setup \
'Configuring KubeCTL context for ArgoCD CLI' \
'S64_ARGOCD_SET_CONTEXT_CLUSTER' \
'S64_ARGOCD_SET_CONTEXT_NAMESPACE' \
'S64_ARGOCD_SET_CONTEXT_NAME'

bl64_k8s_run_kubectl \
"$BL64_VAR_DEFAULT" \
config set-context \
--cluster="$S64_ARGOCD_SET_CONTEXT_CLUSTER" \
--namespace="$S64_ARGOCD_SET_CONTEXT_NAMESPACE" \
"$S64_ARGOCD_SET_CONTEXT_NAME" &&
bl64_k8s_run_kubectl \
"$BL64_VAR_DEFAULT" \
config use-context \
"$S64_ARGOCD_SET_CONTEXT_NAME"

bl64_msg_show_batch_finish $? "$command"
60 changes: 60 additions & 0 deletions src/argocd/argocd-cluster-list
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# template: 1.0.0
# template-import: 1.0.0
#######################################
# ArgoCD / Cluster / List
#
# Version: 1.0.0
#
#######################################
# Copyright [2024] [serdigital64@gmail.com]
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################

#
# Imports
#

declare S64_CORE_PATH_ROOT="${S64_CORE_PATH_ROOT:-/opt/sysop64}"
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/core/core-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck source-path=SCRIPTDIR/..
source "${S64_CORE_PATH_ROOT}/argocd/argocd-lib" || { echo "Error: unable to load module library" && exit 1; }
# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64
source "${S64_CORE_PATH_BL64}/bashlib64-core.bash" ||
{ echo "Error: unable to load bashlib64" && exit 1; }

#
# Functions
#

function initialize() {
bl64_dbg_app_show_function
s64_argocd_lib_setup
}

#
# Main
#

declare command='argocd-cluster-list'

bl64_dbg_set_level "$S64_CORE_SET_DEBUG" && bl64_msg_set_level "$S64_CORE_SET_VERBOSE" || exit $?
initialize || exit $?

bl64_msg_show_batch_start "$command"
s64_argocd_lib_run_argocd \
cluster \
list
bl64_msg_show_batch_finish $? "$command"
46 changes: 30 additions & 16 deletions src/argocd/argocd-lib
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#######################################
# ArgoCD / Lib
#
# Version: 1.0.0
# Version: 1.1.0
#
#######################################
# Copyright [2024] [serdigital64@gmail.com]
Expand All @@ -21,44 +21,58 @@
# limitations under the License.
#######################################

#
# Imports
#

# shellcheck disable=SC2015 source-path=SCRIPTDIR/../../lib/bl64
source "${S64_CORE_PATH_BL64}/bashlib64-module-fmt.bash" &&
source "${S64_CORE_PATH_BL64}/bashlib64-module-txt.bash" &&
source "${S64_CORE_PATH_BL64}/bashlib64-module-xsv.bash" &&
source "${S64_CORE_PATH_BL64}/bashlib64-module-fs.bash" &&
source "${S64_CORE_PATH_BL64}/bashlib64-module-k8s.bash" &&
source "${S64_CORE_PATH_BL64}/bashlib64-module-bsh.bash" ||
{ echo "Error: unable to load bashlib64" && exit 1; }

#
# Globals
#

# shellcheck disable=SC2034
{
declare S64_ARGOCD_PATH_CLI="${S64_ARGOCD_PATH_CLI:-}"
# Global Settings
declare S64_ARGOCD_SET_CONNECTION='--core'
declare S64_ARGOCD_SET_CONTEXT_CLUSTER="${S64_ARGOCD_SET_CONTEXT_CLUSTER:-}"
declare S64_ARGOCD_SET_CONTEXT_NAMESPACE="${S64_ARGOCD_SET_CONTEXT_NAMESPACE:-argocd}"
declare S64_ARGOCD_SET_CONTEXT_NAME="${S64_ARGOCD_SET_CONTEXT_NAME:-argocdcli}"
}

#
# Functions
#

function s64_X_MODULE_X_lib_setup() {
function s64_argocd_lib_setup() {
bl64_dbg_app_show_function

bl64_k8s_setup &&
bl64_check_export 'S64_ARGOCD_SET_CONTEXT_CLUSTER' ||
return $?

if [[ -z "$S64_ARGOCD_PATH_CLI" ]]; then
if [[ -x '/home/linuxbrew/.linuxbrew/bin/argocd' ]]; then
S64_ARGOCD_PATH_CLI='/home/linuxbrew/.linuxbrew/bin/argocd'
elif [[ -x '/opt/homebrew/bin/argocd' ]]; then
S64_ARGOCD_PATH_CLI='/opt/homebrew/bin/argocd'
elif [[ -x '/usr/local/bin/argocd' ]]; then
S64_ARGOCD_PATH_CLI='/usr/local/bin/argocd'
elif [[ -x '/usr/bin/argocd' ]]; then
S64_ARGOCD_PATH_CLI='/usr/bin/argocd'
else
bl64_check_alert_resource_not_found 'argocd'
return $?
fi
S64_ARGOCD_PATH_CLI="$(bl64_bsh_command_locate 'argocd')"
else
bl64_check_command "$S64_ARGOCD_PATH_CLI" ||
return $?
bl64_check_command "$S64_ARGOCD_PATH_CLI"
fi
}

function s64_argocd_lib_run_argocd() {
bl64_dbg_app_show_function "$@"
bl64_dbg_app_trace_start
# shellcheck disable=SC2086
"$S64_ARGOCD_PATH_CLI" \
--kube-context="$S64_ARGOCD_SET_CONTEXT_NAME" \
$S64_ARGOCD_SET_CONNECTION \
"$@"
bl64_dbg_app_trace_stop
}
Loading

0 comments on commit 5dae5e5

Please sign in to comment.