본문 바로가기

YAML14

[ArgoCD] multiple sources 사용하기 ArgoCD를 통해 open source helm chart들을 배포할 때, values file을 text로 넣어줘야 해서 가독성이 엄청 떨어졌었다. 근데 언제부터 지원된건지 모르겠지만, 이제 multi source를 지원함으로써 external git repository로부터의 Helm value file을 사용할 수 있게 되었다....!!! 즉, airflow helm chart를 ArgoCD로 배포하려고 할 때, airflow helm value를 아래 레포지토리 경로에 저장되었다고 한다면 repository : suminhong/helm-values path : airflow/test.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metada.. 2023. 11. 3.
[Terraform/k8s] k8s YAML 리소스로 Terraform Code를 쉽게 작성하는 3가지 방법 Terraform으로 kubernetes를 관리하는 경우, yaml 리소스를 한땀한땀 HCL Code로 변경하는건 매우 귀찮다 (너무 당연하게도) 노가다를 자동으로 돌려주는 오픈소스가 이미 있었다 1. k2tf (Open Source) 공식 k8s provider에서 제공하는 API를 사용하는 경우, k2tf를 사용해 간편하게 변환할 수 있다 https://github.com/sl1pm4t/k2tf GitHub - sl1pm4t/k2tf: Kubernetes YAML to Terraform HCL converter Kubernetes YAML to Terraform HCL converter. Contribute to sl1pm4t/k2tf development by creating an account o.. 2022. 8. 21.
[AWS] Transit Gateway Multi Region 구축하기 for 행주 Transit Gateway 사용해보는 글의 마지막에서 2개 이상의 리전을 연결할 땐 각 리전별로 TGW를 만든 후 TGW끼리 연결하면 된다고 했다 그 과정을 간단한 실습을 통해 연습해보도록 하겠다 최종 아키텍처는 아래와 같다 시작! 1. 실습환경(VPC, EC2) 생성 - CloudFormation 이전 글의 실습에서 사용한 CloudFormation 파일을 좀 변형하여 실습에 필요한 VPC와 EC2를 생성하도록 하겠다 먼저 아래의 파일을 다운받자 그리고 원하는 리전 두 군데(본 포스팅에선 서울, 도쿄 사용)의 CloudFormation 스택을 생성해주자 ※ 버지니아, 오하이오, 캘리포니아, 오레곤, 도쿄, 서울만 가능 ※ 해당 리전에 Key Pair가 존재해야한다 (없으면 만들어두자) A.. 2021. 6. 15.
[AWS CloudFormation] Security Group Ingress 예제 (YAML) 참고로 Egress(OutBound)는 설정 안하면 0.0.0.0/0에 ALL로 열려있는게 Default다 1. ICMP 허용 Resources: [SG 리소스 이름]: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow ICMP GroupName: [SG 이름] SecurityGroupIngress: - IpProtocol: icmp FromPort: -1 ToPort: -1 CidrIp: [허용할 IP/bit] VpcId: !Ref [VPC 리소스 이름] 2. 모든 TCP 트래픽 허용 Resources: [SG 리소스 이름]: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: A.. 2021. 6. 14.
[AWS CloudFormation] #7 Auto Scaling Group 만들기 ( + Launch Configuration, ALB ) >>진행한 실습 GitHub 이 실습은 아래 파일로 이미 생성된 vpc와 ec2를 가지고 진행된다 이 파일의 Fn::Select 함수와 Fn::GetAZs 함수는 공식문서로 확인해보자 만들어진 EC2는 웹으로 접속하면 이런 화면이 뜬다 (위 버튼들로 부하를 주고 꺼서 오토스케일링을 확인할 예정 - 해당 php 파일도 깃헙에 있음) 이 EC2의 AMI를 따서 만들어놓은 후 ASG를 진행하도록 하겠다 (AMI를 뜨는것도 CloudFormation으로 해보려 했는데 찾지 못했다ㅜ) 1. Parameter Parameters: Key: Description: KeyPair Type: AWS::EC2::KeyPair::KeyName VPC: Description: VPC Type: AWS::EC2::VPC::Id.. 2021. 1. 8.
[AWS CloudFormation] #6 IAM User, Policy 생성 >>진행한 실습 GitHub 1. IAM User 바로 만들기 AWS::IAM::User Resources: AdminUser: Type: AWS::IAM::User Properties: LoginProfile: Password: P@ssw0rd Policies: - PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: '*' Resource: '*' PolicyName: Admin UserName: Admin1 AdministratorAccess의 정책을 가져와봤다 2. IAM Policy를 만들어서 User에 붙이기 AWS::IAM::Policy Resources: AdminUser: Type: AWS::IAM::User Pro.. 2021. 1. 6.
[AWS CloudFormation] #5 RDS 생성하기 (for MySQL) >>진행한 실습 GitHub 기존 ec2 만든 실습에서 연장해서 진행했는데, VPC의 구성을 좀 바꿔야 했다 RDS는 서브넷 그룹을 만들어서 지정해야 하는데, 서브넷 그룹은 2개 이상의 가용영역의 서브넷들이 존재해야 한다 그래서 private subnet을 하나 더 만들어주고, 그에 맞게 parameter도 바꿔주었다 Parameters: AZprivate1: Description: AvailabilityZone for private Type: AWS::EC2::AvailabilityZone::Name AZprivate2: Description: AvailabilityZone for private Type: AWS::EC2::AvailabilityZone::Name PrivateSubnet1Cidr: D.. 2021. 1. 6.
[AWS CloudFormation] #4 mapping 사용하기 (EC2 AMI) >>진행한 실습 GitHub ec2 만든 실습에서 ami를 설정하는 부분을 좀 고쳐보겠다 지난번엔 파라미터만 사용해서, 디폴트 값이 있지만 다른 ami를 원하면 직접 복사해서 넣어야했다 이번엔 매핑을 사용해 Linux2 또는 Windows 2019 Base 둘 중 하나를 선택하면 해당 리전에 맞는 ami가 자동으로 설정되도록 해보겠다 Mappings: RegionMap: us-east-1: Linux2: ami-0be2609ba883822ec Window2019: ami-0229f7666f517b31e us-east-2: Linux2: ami-0a0ad6b70e61be944 Window2019: ami-0d5b55fd8cd8738f5 us-west-1: Linux2: ami-03130878b60947df.. 2021. 1. 6.
[AWS CloudFormation] #3 웹서버용 EC2 만들기 (SG, EC2, UserData) >>진행한 실습 GitHub 위 그림과 같이 만들어볼건데, RDS는 추후에 하도록 하겠다 오늘은 APM 설치되어있는 EC2 생성까지만 기본적인 VPC 설정에 대한 설명은 생략하겠다 전체 코드는 밑에 있으니 설명이 필요한 사람은 이전 글을 보고 오자 1. Security Group AWS::EC2::SecurityGroup SGforWeb: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: allow 22, 80 GroupName: webaccess SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 - IpProtocol: tcp FromPort: 22 .. 2021. 1. 5.
[AWS CloudFormation] #2 파라미터 사용하기 (VPC 구성) >>진행한 실습 GitHub VPC 만들었던 실습을 좀 고쳐서 사용해보겠다 전에 만든 yaml 파일은 cidr과 리전, 가용영역이 고정되어 있기 때문에 재사용성이 떨어진다 -> Parameter를 사용해보자 Resources 섹션 위에 Parameter 섹션을 만들어서 CIDR블럭과 가용영역을 설정해주겠다 Parameters: AZpublic: Description: AvailabilityZone for public Type: AWS::EC2::AvailabilityZone::Name AZprivate: Description: AvailabilityZone for private Type: AWS::EC2::AvailabilityZone::Name VPCCidr: Description: Cidr Block.. 2021. 1. 5.