디렉토리 구조 및 각 서비스 추가
This commit is contained in:
190
helm/argo-workflows/Lab/script.sh
Normal file
190
helm/argo-workflows/Lab/script.sh
Normal file
@@ -0,0 +1,190 @@
|
||||
#!/bin/bash
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
__init (){
|
||||
datetime=`date "+%Y.%m.%d %H:%M:%S"`
|
||||
echo -e "*current time : ${datetime}\n" > ${file}
|
||||
cat ${origin} >> ${file}
|
||||
}
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
__append (){
|
||||
line_count=`cat ${exec_log} | grep -v -- -- | egrep -v '(name|ri_count)' | wc -l`
|
||||
echo -e "\n${title} [${line_count}]\n" >> ${file}
|
||||
cat ${exec_log} >> ${file}
|
||||
}
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
__query_exec (){
|
||||
steampipe query "${1}" > ${exec_log}
|
||||
__log_sed
|
||||
}
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
__log_sed (){
|
||||
sed -i 's/+/|/g' ${exec_log}
|
||||
sed -i "s/node-role.kubernetes.io\///g" ${exec_log}
|
||||
sed -i '1d;$d' ${exec_log}
|
||||
}
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
node_query="""
|
||||
SELECT
|
||||
name,
|
||||
annotations ->> 'projectcalico.org/IPv4Address' AS IP,
|
||||
COALESCE(taints -> 0 ->> 'key', '-') AS Taints_key,
|
||||
COALESCE(tags ->> 'kops.k8s.io/instancegroup', '-') AS Instance_group,
|
||||
capacity ->> 'cpu' AS CPU,
|
||||
CEIL((CAST(regexp_replace(capacity ->> 'memory', 'Ki', '') AS FLOAT) / 1024 / 1024)) AS Memory,
|
||||
tags ->> 'topology.kubernetes.io/zone' AS Zone,
|
||||
tags ->> 'beta.kubernetes.io/instance-type' AS Instance_type,
|
||||
node_info ->> 'osImage' AS OS,
|
||||
node_info ->> 'kubeletVersion' AS K8S_ver,
|
||||
node_info ->> 'containerRuntimeVersion' AS Runtime_ver
|
||||
FROM
|
||||
kubernetes_node
|
||||
ORDER BY
|
||||
Taints_key
|
||||
"""
|
||||
|
||||
resources_query="""
|
||||
(SELECT
|
||||
'sts' as kind,
|
||||
name,
|
||||
available_replicas as count,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'cpu' AS request_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'memory' AS request_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'cpu' AS limit_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'memory' AS limit_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') ->> 'name' AS c_name,
|
||||
namespace
|
||||
|
||||
FROM
|
||||
kubernetes_stateful_set
|
||||
WHERE
|
||||
name not like 'rel-%')
|
||||
union
|
||||
(SELECT
|
||||
'deploy' as kind,
|
||||
name,
|
||||
available_replicas as count,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'cpu' AS request_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'memory' AS request_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'cpu' AS limit_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'memory' AS limit_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') ->> 'name' AS c_name,
|
||||
namespace
|
||||
FROM
|
||||
kubernetes_deployment
|
||||
WHERE
|
||||
name not like 'rel-%')
|
||||
union
|
||||
(SELECT
|
||||
'ds' as kind,
|
||||
name,
|
||||
number_available as count,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'cpu' AS request_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'requests' ->> 'memory' AS request_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'cpu' AS limit_cpu,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') -> 'resources' -> 'limits' ->> 'memory' AS limit_mem,
|
||||
jsonb_array_elements(template -> 'spec' -> 'containers') ->> 'name' AS c_name,
|
||||
namespace
|
||||
FROM
|
||||
kubernetes_daemonset
|
||||
WHERE
|
||||
name not like 'rel-%')
|
||||
order by kind
|
||||
"""
|
||||
|
||||
service_query="""
|
||||
SELECT
|
||||
name,
|
||||
namespace,
|
||||
type,
|
||||
lower(p ->> 'nodePort') as Node_Port,
|
||||
age(current_timestamp, creation_timestamp)
|
||||
FROM
|
||||
kubernetes_service,
|
||||
jsonb_array_elements(ports) as p
|
||||
WHERE
|
||||
type='NodePort'
|
||||
ORDER BY
|
||||
Node_Port
|
||||
"""
|
||||
#name not like '%rel-%'
|
||||
|
||||
aws_ri_query="""
|
||||
SELECT
|
||||
COALESCE(a.availability_zone, b.availability_zone, '-') AS availability_zone,
|
||||
COALESCE(a.instance_type, b.instance_type, c.instance_type, '-') AS instance_type,
|
||||
COALESCE(c.cpu, 0) AS cpu,
|
||||
COALESCE(c.memory, 0) AS memory,
|
||||
COALESCE(a.ri_count, 0) AS ri_count,
|
||||
COALESCE(b.ec2_count, 0) AS ec2_count,
|
||||
COALESCE(b.ec2_count, 0) - COALESCE(a.ri_count, 0) AS result
|
||||
FROM
|
||||
(SELECT
|
||||
availability_zone,
|
||||
instance_type,
|
||||
SUM(instance_count) AS ri_count
|
||||
FROM
|
||||
aws_ec2_reserved_instance
|
||||
WHERE
|
||||
instance_state='active'
|
||||
GROUP BY
|
||||
availability_zone,
|
||||
instance_type
|
||||
) a
|
||||
FULL OUTER JOIN
|
||||
(SELECT
|
||||
placement_availability_zone AS availability_zone,
|
||||
instance_type,
|
||||
COUNT(*) AS ec2_count
|
||||
FROM
|
||||
aws_ec2_instance
|
||||
WHERE
|
||||
instance_state='running' AND
|
||||
instance_lifecycle!='spot'
|
||||
GROUP BY
|
||||
availability_zone,
|
||||
instance_type
|
||||
) b
|
||||
ON
|
||||
a.availability_zone = b.availability_zone AND
|
||||
a.instance_type = b.instance_type
|
||||
INNER JOIN
|
||||
(SELECT
|
||||
instance_type,
|
||||
(CAST(memory_info ->> 'SizeInMiB' AS FLOAT) / 1024) AS memory,
|
||||
(CAST(v_cpu_info ->> 'DefaultCores' AS FLOAT) * 2) AS cpu
|
||||
FROM
|
||||
aws_ec2_instance_type
|
||||
WHERE
|
||||
instance_type in (SELECT instance_type FROM aws_ec2_instance WHERE instance_state='running')
|
||||
GROUP BY
|
||||
instance_type, memory, cpu
|
||||
) c
|
||||
ON
|
||||
COALESCE(a.instance_type, b.instance_type, '-') = c.instance_type
|
||||
ORDER BY availability_zone
|
||||
"""
|
||||
#instance_type in (SELECT instance_type FROM aws_ec2_instance WHERE instance_state='running' AND instance_lifecycle!='spot')
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
origin="org_README.md"
|
||||
exec_log="/shared-data/query.log"
|
||||
file="/shared-data/README2.md"
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
__init
|
||||
|
||||
title="## 노드 목록"
|
||||
__query_exec "${node_query}"
|
||||
__append
|
||||
|
||||
title="## 리소스 목록"
|
||||
__query_exec "${resources_query}"
|
||||
__append
|
||||
|
||||
title="## 서비스 목록 (NodePort)"
|
||||
__query_exec "${service_query}"
|
||||
__append
|
||||
|
||||
title="## 예약 인스턴스 사용 내역"
|
||||
__query_exec "${aws_ri_query}"
|
||||
__append
|
||||
#------------------------------------------------------------------------------------------------------
|
||||
rm ${exec_log}
|
||||
Reference in New Issue
Block a user