Skip to content

Commit

Permalink
chore: Update contents
Browse files Browse the repository at this point in the history
  • Loading branch information
younsl committed Dec 2, 2024
1 parent e48e055 commit d611997
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 63 deletions.
3 changes: 3 additions & 0 deletions content/blog/devops-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ Vercel의 VP, leerob.
[roadmap.sh/devops](https://roadmap.sh/devops)
DevOps 학습 로드맵

[DevOps is bullshit](https://www.massdriver.cloud/blogs/devops-is-bullshit)
DevOps 컨셉에 대한 비판글: 항상 모든 기술 선택에는 트레이드오프가 존재하므로, 모든 기술 선택에 대한 비판적인 사고를 가지는 것이 DevOps Engineer의 필수 소프트 스킬이라고 생각합니다.

[DevOps Exercises](https://github.com/bregman-arie/devops-exercises)

[DevOps 엔지니어란 누구입니까?](https://www.atlassian.com/ko/devops/what-is-devops/devops-engineer)
Expand Down
Binary file modified content/blog/k8s/chart-repo/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
90 changes: 46 additions & 44 deletions content/blog/k8s/chart-repo/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ tags: ["webtob"]

## 개요

Github Pages를 사용해서 호스팅되고 있는 깃헙 블로그에 헬름 차트 저장소 기능을 구현하는 가이드입니다.
Github Pages로 호스팅되고 있는 깃헙 블로그를 오픈소스 헬름 차트 저장소로 활용하는 방법을 설명합니다.

이 가이드를 따라 차트 저장소인 `charts`와 블로그 레포지토리인 `<username>.github.io`를 통합하여, 블로그 레포지토리 내에 차트 저장소를 포함시키는 구조로 변경했습니다.
이 가이드를 따라 차트 저장소인 `charts`와 블로그 레포지토리인 `<username>.github.io`를 통합하여, 블로그 레포지터리 내에 차트 저장소를 포함시키는 구조로 변경했습니다.

&nbsp;

Expand All @@ -30,6 +30,8 @@ Github Pages를 사용해서 호스팅되고 있는 깃헙 블로그에 헬름

## 차트 저장소 구성 및 사용 가이드

> **주의사항**: 이 가이드에서 차트 저장소로 사용할 블로그는 호스팅 플랫폼으로 Github Pages와 Go 언어 기반의 정적 사이트 생성기인 [Hugo](https://github.com/gohugoio/hugo)를 사용하고 있습니다. 따라서 다른 호스팅 플랫폼을 사용하는 경우 차트 저장소 구성 방법이 다를 수 있습니다.
### 구성방법

#### 헬름 차트 준비
Expand All @@ -42,9 +44,9 @@ mkdir content/charts

&nbsp;

`charts` 밑에 호스팅할 차트 디렉토리들을 추가합니다.
`charts/` 디렉토리 밑에 호스팅할 차트 디렉토리들을 추가합니다.

```bash
```bash {hl_lines=["12-17"]}
$ tree -L 3 -I 'public|resources'
younsl.github.io
├── LICENSE
Expand All @@ -59,7 +61,7 @@ younsl.github.io
│   ├── actions-runner # chart directory
│   ├── argocd-apps # chart directory
│   ├── backup-utils # chart directory
│   ├── index.md # chart directory
│   ├── index.md # index page
│   ├── karpenter-nodepool # chart directory
│   └── rbac # chart directory
├── static
Expand All @@ -68,7 +70,7 @@ younsl.github.io

&nbsp;

`index.md`추가해서 차트 저장소에 대한 소개 페이지도 같이 만듭니다.
`charts/index.md` 페이지를 추가해서 차트 저장소에 대한 [소개 페이지](https://younsl.github.io/charts/) 만듭니다.

![헬름차트 소개 페이지](./2.png)

Expand All @@ -90,25 +92,25 @@ Successfully packaged chart and saved it to: /Users/younsung.lee/github/younsl/y

결과적으로 다음과 같이 `.tgz` 파일들이 `charts` 디렉토리에 위치합니다.

```bash
$ tree -L 3 -I 'public|resources'
younsl.github.io
```bash {hl_lines=["13","15"]}
$ tree -F -L 3 -I 'public|resources'
younsl.github.io/
├── LICENSE
├── README.md
├── assets
├── assets/
├── config.toml
├── content
│   ├── about
│   ├── blog
├── content/
│   ├── about.md
│   ├── blog/
│   │   └── ... blog contents ...
│   └── charts
│   ├── actions-runner
│   └── charts/
│   ├── actions-runner/
│   ├── actions-runner-0.1.2.tgz # Generated
│   ├── argocd-apps
│   ├── argocd-apps/
│   ├── argocd-apps-1.6.1.tgz # Generated
│   └── ...
├── static
└── themes
├── static/
└── themes/
```

&nbsp;
Expand Down Expand Up @@ -182,32 +184,32 @@ Gatsby, Hugo와 같은 정적 사이트 생성기에서는 `static` 디렉토리
결과적으로 다음과 같은 디렉토리 구조로 헬름 저장소가 구성됩니다.

```bash
younsl.github.io
younsl.github.io/
├── LICENSE
├── README.md
├── assets
├── assets/
├── config.toml
├── content
│   ├── about
│   ├── blog
├── content/
│   ├── about.md
│   ├── blog/
│   │   └── ... blog contents ...
│   └── charts
│   ├── actions-runner # chart package
│   ├── argocd-apps # chart package
│   ├── backup-utils # chart package
│   ├── index.md # chart package
│   ├── karpenter-nodepool # chart package
│   └── rbac # chart package
├── static
│   └── index.yaml # chart index file
└── themes
│   └── charts/
│   ├── actions-runner/ # chart package
│   ├── argocd-apps/ # chart package
│   ├── backup-utils/ # chart package
│   ├── index.md # index page
│   ├── karpenter-nodepool/ # chart package
│   └── rbac/ # chart package
├── static/
│   └── index.yaml # chart index file
└── themes/
```

지금까지 블로그 레포지터리의 변경사항을 모두 `git push` 해서 반영합니다.

&nbsp;

Github Pages로 배포가 완료되었는지 확인하기 위해, index.yaml 파일이 정상적으로 다운로드되는지 체크합니다.
Github Pages로 배포가 완료되었는지 확인하기 위해, `index.yaml` 파일이 정상적으로 다운로드되는지 체크합니다.

```bash
curl \
Expand All @@ -217,13 +219,13 @@ curl \
https://younsl.github.io/index.yaml
```

명령어를 실행한 결과가 아래와 같을 경우:
`index.yaml` 파일이 정상적으로 호스팅되고 있으면 HTTP 상태 코드가 `200`이며, 다음과 같은 출력을 볼 수 있습니다.

```bash
HTTP Status: 200, Total Time: 0.446528 seconds, Download Size: 3173 bytes
```

이 결과는 `index.yaml` 파일이 정상적으로 반환되고 있음을 의미하므로, 차트 저장소가 온라인 상태로 정상 작동하고 있다고 판단할 수 있습니다.
이제 차트 저장소가 사용자들에게 정상적으로 호스팅되고 있음을 확인했습니다.

&nbsp;

Expand All @@ -239,7 +241,7 @@ helm repo add younsl https://younsl.github.io

&nbsp;

helm 레포지터리를 업데이트합니다. 이 과정은 로컬에 저장된 레포지터리 정보를 최신 상태로 동기화합니다.
helm 레포지터리를 업데이트합니다. 이 과정은 로컬에 저장된 차트 저장소 정보를 최신 상태로 동기화합니다.

```bash
helm repo update
Expand All @@ -249,7 +251,7 @@ helm repo update

#### 사용 가능한 차트 목록 조회

이제 `younsl` 레포지터리에서 사용할 수 있는 차트 목록을 조회할 수 있습니다. 이 명령어는 레포지터리에 저장된 모든 차트와 해당 차트의 버전, 앱 버전, 설명을 출력합니다.
이제 `younsl` 차트 저장소(Repository)에서 사용할 수 있는 차트 목록을 조회할 수 있습니다. 이 명령어는 차트 저장소에 저장된 모든 차트와 해당 차트의 버전, 앱 버전, 설명을 출력합니다.

```bash
helm search repo younsl
Expand Down Expand Up @@ -280,9 +282,11 @@ younsl/rbac 0.1.0 0.1.0 Helm chart to define RBA
helm template younsl/actions-runner
```

`helm template <REPO_NAME>/<CHART_NAME>` 형태로 명령어를 실행해 차트에서 생성될 리소스들의 YAML 파일을 미리 확인할 수 있습니다.

&nbsp;

이 명령어는 `actions-runner` helm 차트에서 생성될 리소스들의 YAML 파일을 출력합니다.
예상 출력은 다음과 같습니다:

```yaml
---
Expand Down Expand Up @@ -312,8 +316,6 @@ Helm 차트가 생성할 ServiceAccount와 기타 리소스들의 구성 파일

## 관련자료

**Helm**
[차트 저장소 가이드](https://helm.sh/ko/docs/topics/chart_repository/)

**Github**
[샘플 레포지터리](https://github.com/younsl/younsl.github.io)
- [차트 저장소 가이드](https://helm.sh/ko/docs/topics/chart_repository/)
- [샘플 레포지터리](https://github.com/younsl/younsl.github.io)
- [Github Pages로 제공한 차트 페이지](https://younsl.github.io/charts/)
Original file line number Diff line number Diff line change
@@ -1,42 +1,46 @@
---
title: "macOS xcrun: error 해결법"
title: "xcrun error"
date: 2021-10-27T01:13:09+09:00
lastmod: 2023-04-18T22:57:05+09:00
lastmod: 2024-12-02T21:11:05+09:00
slug: ""
description: "macOS 업데이트 이후 git 명령어 실행시 발생하는 xcrun: error의 해결법을 소개합니다."
description: "macOS 업데이트 이후 git 명령어 실행시 발생하는 xcrun: error: invalid active developer path 에러 해결하기"
keywords: []
tags: ["dev"]
tags: ["dev", "terminal", "macos"]
---

## 개요

`xcrun: error: invalid active developer path` 에러를 해결하는 가이드입니다.
해당 에러는 macOS 업데이트 완료 후 발생할 수 있습니다.
`git` 명령어 실행시 `xcrun: error: invalid active developer path` 에러가 발생하면 해당 가이드를 참고해서 문제를 해결할 수 있습니다.

해당 에러는 macOS 업데이트 완료 이후 발생할 수 있습니다.

&nbsp;

## 환경

### 로컬 환경

에러가 발생한 시스템 환경은 다음과 같습니다.

- **Model** : MacBook Pro (13inch, M1, 2020)
- **OS** : macOS Monterey 12.0.1

```bash
$ sw_vers
ProductName: macOS
ProductVersion: 12.0.1
BuildVersion: 21A559
```

- **Shell** : zsh
- **터미널** : macOS 기본 터미널

```bash
$ sw_vers
ProductName: macOS
ProductVersion: 12.0.1
BuildVersion: 21A559
```

&nbsp;

## 증상

macOS Catalina 11.6에서 macOS Monterey 12.0.1로 소프트웨어 업데이트를 한 이후부터 `git` 명령어를 실행하면 에러 메세지가 반환되며 실행할 수 없습니다.
macOS Catalina 11.6에서 macOS Monterey 12.0.1로 소프트웨어 업데이트를 한 이후부터 `git` 명령어를 실행하면 `xcrun: error: invalid active developer path` 에러 메세지가 반환되며 명령어를 실행할 수 없습니다.

`git` 명령어를 실행할 때 발생하는 에러 메세지는 다음과 같습니다.

```bash
$ git commit -m 'rebuilding site 2021년 10월 27일 수요일 00시 34분 04초 KST'
Expand Down Expand Up @@ -71,7 +75,14 @@ macOS에서 OS 업데이트가 진행될때마다 자주 발생되는 Xcode CLI
Xcode CLI를 수동으로 설치해서 문제를 해결할 수 있습니다.

```bash
$ xcode-select --install
xcode-select --install
```

&nbsp;

명령어 실행 결과는 다음과 같습니다.

```bash
xcode-select: note: install requested for command line developer tools
```

Expand Down Expand Up @@ -99,7 +110,7 @@ Password: [패스워드 입력]

```bash
$ git commit -m 'rebuilding site 2021년 10월 27일 수요일 00시 45분 23초 KST'
[...]
... omitted for brevity ...
2 files changed, 28 insertions(+), 3 deletions(-)
```

Expand All @@ -110,8 +121,15 @@ Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.33 KiB | 1.33 MiB/s, done.
[...]
... omitted for brevity ...
5936bbc..902284d master -> master
```

Xcode CLI를 설치완료 후 에러 메세지 없이 `git` 명령어가 실행됩니다.
Xcode CLI를 설치완료 이후에는 `xcrun: error: invalid active developer path` 에러 메세지 없이 `git` 명령어가 정상적으로 실행됩니다.

&nbsp;

## 관련자료

- [Mac 업그레이드 후 xcrun: error: invalid active developer path 에러 해결하기](https://www.hahwul.com/2019/11/18/how-to-fix-xcrun-error-after-macos-update/)
- [Apple forum의 문의글 - xcrun: error: invalid active developer path](https://forums.developer.apple.com/forums/thread/673827)

0 comments on commit d611997

Please sign in to comment.