This commit is contained in:
@ -156,6 +156,10 @@
|
|||||||
<label for="urlGrafanaEdit" class="form-label">Grafana URL</label>
|
<label for="urlGrafanaEdit" class="form-label">Grafana URL</label>
|
||||||
<input type="url" class="form-control" id="urlGrafanaEdit" name="url_grafana" value="{{ request.user.url_grafana }}">
|
<input type="url" class="form-control" id="urlGrafanaEdit" name="url_grafana" value="{{ request.user.url_grafana }}">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="urlGrafanaDashboard_01-Edit" class="form-label">Grafana Dashboard URL</label>
|
||||||
|
<input type="url" class="form-control" id="urlGrafanaDashboard01Edit" name="url_grafana_dashboard_01" value="{{ request.user.url_grafana_dashboard_01 }}">
|
||||||
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="urlPrometheusEdit" class="form-label">Prometheus URL</label>
|
<label for="urlPrometheusEdit" class="form-label">Prometheus URL</label>
|
||||||
<input type="url" class="form-control" id="urlPrometheusEdit" name="url_prometheus" value="{{ request.user.url_prometheus }}">
|
<input type="url" class="form-control" id="urlPrometheusEdit" name="url_prometheus" value="{{ request.user.url_prometheus }}">
|
||||||
|
@ -28,101 +28,13 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
</li>
|
||||||
<hr>
|
<hr>
|
||||||
{% include "components/_sidebar_tm_dashboard.html" %}
|
{% include "components/_sidebar_tm_dashboard.html" %}
|
||||||
</li>
|
|
||||||
<hr>
|
<hr>
|
||||||
<li class="my-2">
|
{% include "components/_sidebar_nhn.html" %}
|
||||||
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#nhnc-collapse" aria-controls="nhnc-collapse">NHN Cloud API ▽</button>
|
|
||||||
<ul class="list-unstyled ps-3 collapse" id="nhnc-collapse">
|
|
||||||
{% if request.user.is_authenticated and request.user.is_staff %}
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/test">출력결과 검토</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/preparations">주의 사항</a>
|
|
||||||
</li>
|
|
||||||
<hr>
|
<hr>
|
||||||
<span>관리대장</span>
|
{% include "components/_sidebar_devtools.html" %}
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhnc_mgmt/igw">인터넷 게이트웨이</a>
|
|
||||||
</li>
|
|
||||||
<hr>
|
|
||||||
<span>Network</span>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/infoVpcListRequest">VPC 조회 및 삭제</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/createVpcRequest">VPC 생성</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/infoClusterListRequest">NKS Cluseter 조회 및 삭제</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/createClusterOnlyRequest">NKS Cluseter 생성</a>
|
|
||||||
</li>
|
|
||||||
<hr>
|
|
||||||
<span>k8s Components deploy</span>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/nksApply">Ingress Deploy</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/nksApply">FluentBit Deploy</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="text-secondary d-inline-flex align-items-center rounded disabled" href="#">Logging Deploy(미구현)</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="text-secondary d-inline-flex align-items-center rounded disabled" href="#">Monitoring Deploy(미구현)</a>
|
|
||||||
</li>
|
|
||||||
{% else %}
|
|
||||||
<p>로그인이 필요합니다.</p>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/notice/2/" target="_blank">사용가이드</a>
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<hr>
|
|
||||||
<li class="my-2">
|
|
||||||
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#components-collapse" aria-controls="components-collapse">DevOpsTools ▽</button>
|
|
||||||
<ul class="list-unstyled ps-3 collapse" id="components-collapse">
|
|
||||||
{% if request.user.is_authenticated and request.user.is_staff %}
|
|
||||||
<span>Dev</span>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_gitea}}" target="_blank">Repository - Gitea</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_harbor}}" target="_blank">Registry - Harbor</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_argocd}}" target="_blank">Deploy - ArgoCD</a>
|
|
||||||
</li>
|
|
||||||
<hr>
|
|
||||||
<span>Ops</span>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_web_ide}}" target="_blank">Web VScode - CodeServer</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_rancher}}" target="_blank">Cluster Management - Rancher</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_grafana}}" target="_blank">Monitoring - Grafana</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_prometheus}}" target="_blank">Metrics - Prometheus</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_opensearch}}" target="_blank">Container Log - OpenSearch</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_kiali}}" target="_blank">Main Cluster Traffic - Kiali</a>
|
|
||||||
</li>
|
|
||||||
{% else %}
|
|
||||||
<p>로그인이 필요합니다.</p>
|
|
||||||
<a class="d-inline-flex align-items-center rounded" href="/notice/2/" target="_blank">사용가이드</a>
|
|
||||||
{% endif %}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<hr>
|
<hr>
|
||||||
<li class="my-2">
|
<li class="my-2">
|
||||||
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#other-collapse" aria-controls="other-collapse">Other Tools ▽</button>
|
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#other-collapse" aria-controls="other-collapse">Other Tools ▽</button>
|
||||||
|
40
components/templates/components/_sidebar_devtools.html
Normal file
40
components/templates/components/_sidebar_devtools.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<li class="my-2">
|
||||||
|
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#components-collapse" aria-controls="components-collapse">DevOpsTools ▽</button>
|
||||||
|
<ul class="list-unstyled ps-3 collapse" id="components-collapse">
|
||||||
|
{% if request.user.is_authenticated and request.user.is_staff %}
|
||||||
|
<span>Dev</span>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_gitea}}" target="_blank">Repository - Gitea</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_harbor}}" target="_blank">Registry - Harbor</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_argocd}}" target="_blank">Deploy - ArgoCD</a>
|
||||||
|
</li>
|
||||||
|
<hr>
|
||||||
|
<span>Ops</span>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_web_ide}}" target="_blank">Web VScode - CodeServer</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_rancher}}" target="_blank">Cluster Management - Rancher</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_grafana}}" target="_blank">Monitoring - Grafana</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_prometheus}}" target="_blank">Metrics - Prometheus</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_opensearch}}" target="_blank">Container Log - OpenSearch</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="{{request.user.url_kiali}}" target="_blank">Main Cluster Traffic - Kiali</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<p>로그인이 필요합니다.</p>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</li>
|
48
components/templates/components/_sidebar_nhn.html
Normal file
48
components/templates/components/_sidebar_nhn.html
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<li class="my-2">
|
||||||
|
<button class="btn d-inline-flex align-items-center collapsed" data-bs-toggle="collapse" aria-expanded="false" data-bs-target="#nhnc-collapse" aria-controls="nhnc-collapse">NHN Cloud API ▽</button>
|
||||||
|
<ul class="list-unstyled ps-3 collapse" id="nhnc-collapse">
|
||||||
|
{% if request.user.is_authenticated and request.user.is_staff %}
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/test">출력결과 검토</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/preparations">주의 사항</a>
|
||||||
|
</li>
|
||||||
|
<hr>
|
||||||
|
<span>관리대장</span>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhnc_mgmt/igw">인터넷 게이트웨이</a>
|
||||||
|
</li>
|
||||||
|
<hr>
|
||||||
|
<span>Network</span>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/infoVpcListRequest">VPC 조회 및 삭제</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/createVpcRequest">VPC 생성</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/infoClusterListRequest">NKS Cluseter 조회 및 삭제</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/createClusterOnlyRequest">NKS Cluseter 생성</a>
|
||||||
|
</li>
|
||||||
|
<hr>
|
||||||
|
<span>k8s Components deploy</span>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/nksApply">Ingress Deploy</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="d-inline-flex align-items-center rounded" href="/nhncloud/nksApply">FluentBit Deploy</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="text-secondary d-inline-flex align-items-center rounded disabled" href="#">Logging Deploy(미구현)</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="text-secondary d-inline-flex align-items-center rounded disabled" href="#">Monitoring Deploy(미구현)</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<p>로그인이 필요합니다.</p>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</li>
|
@ -33,6 +33,7 @@ class CustomUserChangeForm(UserChangeForm):
|
|||||||
'url_web_ide',
|
'url_web_ide',
|
||||||
'url_rancher',
|
'url_rancher',
|
||||||
'url_grafana',
|
'url_grafana',
|
||||||
|
'url_grafana_dashboard_01',
|
||||||
'url_prometheus',
|
'url_prometheus',
|
||||||
'url_opensearch',
|
'url_opensearch',
|
||||||
'url_kiali',
|
'url_kiali',
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.2.14 on 2025-04-11 11:05
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('custom_auth', '0007_customuser_url_mattermost_customuser_url_nexus'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='customuser',
|
||||||
|
name='url_grafana_dashboard_01',
|
||||||
|
field=models.URLField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
@ -22,13 +22,13 @@ class CustomUser(AbstractUser):
|
|||||||
url_web_ide = models.URLField(max_length=200, blank=True, null=True)
|
url_web_ide = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_rancher = models.URLField(max_length=200, blank=True, null=True)
|
url_rancher = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_grafana = models.URLField(max_length=200, blank=True, null=True)
|
url_grafana = models.URLField(max_length=200, blank=True, null=True)
|
||||||
|
url_grafana_dashboard_01 = models.URLField(max_length=200, blank=True, null=True) # 2025-04-11 추가
|
||||||
url_prometheus = models.URLField(max_length=200, blank=True, null=True)
|
url_prometheus = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_opensearch = models.URLField(max_length=200, blank=True, null=True)
|
url_opensearch = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_kiali = models.URLField(max_length=200, blank=True, null=True)
|
url_kiali = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_nexus = models.URLField(max_length=200, blank=True, null=True)
|
url_nexus = models.URLField(max_length=200, blank=True, null=True)
|
||||||
url_mattermost = models.URLField(max_length=200, blank=True, null=True)
|
url_mattermost = models.URLField(max_length=200, blank=True, null=True)
|
||||||
|
|
||||||
|
|
||||||
def encrypt_private_key(self, private_key: str) -> bytes:
|
def encrypt_private_key(self, private_key: str) -> bytes:
|
||||||
"""SSH Private Key 암호화"""
|
"""SSH Private Key 암호화"""
|
||||||
cipher = Fernet(self.get_encryption_key())
|
cipher = Fernet(self.get_encryption_key())
|
||||||
|
@ -7,13 +7,11 @@
|
|||||||
<h2 class="fw-bold pb-2">Grafana</h2>
|
<h2 class="fw-bold pb-2">Grafana</h2>
|
||||||
<!-- Grafana IFrame -->
|
<!-- Grafana IFrame -->
|
||||||
<div class="ratio ratio-16x9">
|
<div class="ratio ratio-16x9">
|
||||||
<iframe
|
{% if request.user.url_grafana_dashboard_01 %}
|
||||||
src="https://grafana.icurfer.com/public-dashboards/40d2a2615010433d81f5cf40caa03541"
|
<iframe src="{{request.user.url_grafana_dashboard_01}}" width="100%" height="800" frameborder="0" allowfullscreen></iframe>
|
||||||
width="100%"
|
{% else %}
|
||||||
height="800"
|
<h3 class="text-danger">접속 후 Profile에 Dashboard URL을 등록하세요.</h3>
|
||||||
frameborder="0"
|
{% endif %}
|
||||||
allowfullscreen
|
|
||||||
></iframe>
|
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
{% endblock %}
|
{% endblock %}
|
Reference in New Issue
Block a user