Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WaypointでCDパイプラインを抽象化(仮)

 WaypointでCDパイプラインを抽象化(仮)

techtekt

May 10, 2023
Tweet

More Decks by techtekt

Other Decks in Technology

Transcript

  1. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Waypoint
    ύʔιϧΩϟϦΞגࣜձࣾ ςΫϊϩδʔຊ෦
    Πϯϑϥج൫౷ׅ෦ γεςϜڞ௨#*5"
    ϓϥοτϑΥʔϜάϧʔϓ
    Kenny Song Apr. 14 - 23

    View full-size slide

  2. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Mililani
    from HI, USA
    Chuo-ku
    to Tokyo, Japan
    MY LIFE
    Kenny R Song
    Passenger name
    FEB 5, 1992
    Date of birth
    SET OF SKILLS
    Born at night and die in the morning
    My motto is
    Cellular Carrier company
    APRIL 2012 - AUGUST 2017
    SEPTEMBER 2017 – AUGUST 2019
    Fintech Venture-backed company
    PERSOL CAREER
    SEPTEMBER 2019 ~
    All Seafood, Sun light
    Allergy
    Resume in Japan
    Java
    6 years experience
    C++
    7 years experience
    C Sharp
    2 years experience
    Python
    5 years experience
    Rust
    2 years experience
    k8s, Terraform, Golang
    Introduce
    USA
    Nationality
    Piano, Violin
    Hobby
    Born in USA
    Been in Japan 21 years
    More…
    2

    View full-size slide

  3. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ಥવͰ͕͢ɺΠϯϑϥ԰͞Μ͕ଟ͍Ͱ͋Ζ͏͜ͷ৔Λ͓आΓ͠
    1ਓͷΞϓϦ։ൃऀͱ͓ͯ͠ؾ࣋ͪද໌͍͖ͤͯͨͩ͞·͢
    3

    View full-size slide

  4. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ๻͸ͬ͞͞ͱσϓϩΠ͍͚ͨͩ͠ͳͷ
    ผʹYAML΍TOMLॻ͖͍ͨΘ͚͡Όͳ͍ͷͶɺ
    σϓϩΠ͢Δͷʹඞཁ͍ͩͬͯ͏͔Βॻ͍ͯΔͷ
    ࣮૷͢Δ͔Βޙ͸΋͏͍͍ײ͡ʹ͓͍ͯͯ͠Αʂ
    4

    View full-size slide

  5. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    * Photo borrowed from Twitter
    Hey!!
    5

    View full-size slide

  6. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ͦΕɺ׎͑Δ͜ͱ͕ग़དྷΔΑ
    (we can make it happen)
    6

    View full-size slide

  7. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ͦ͏ɺWaypoint ͳΒͶɻ
    (Only on the Waypoint)
    7

    View full-size slide

  8. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    8

    View full-size slide

  9. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Q. What can it do?
    GitOps, IaCΛ࢝ΊΫϥ΢υΞʔΩςΫνϟʔʹ͓͍ͯߴ֬཰Ͱ৮ΕΔ͜ͱʹͳΔ
    Dockerfile, Serverless΍KubernetesͳͲStateΛఆٛ͢ΔϚχϑΣετͱCLI..
    AWS, Azure, GCP౳ɺΫϥ΢υຖʹ༻ҙ͞Εͨଟछଟ༷ͳπʔϧɾαʔϏε..
    ΞϓϦݴޠ͝ͱʹඞཁͳRuntime, CompilerʹLinker΍഑৴༻WSGI, ASGI Server..
    ͜ΕΒΛ͏·͘ఆٛɾ૊Έ߹ΘͤCICD PipelineΛYAML΍֦ுݴޠͰఆٛͯ͠..
    9

    View full-size slide

  10. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    A. ここら辺まとめてエイヤッしてくれるのが Waypoint
    10

    View full-size slide

  11. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Q. So what is it?
    • Package manager
    • PaaS
    • Platform
    ༷ʑͳPlatformʹରͯ͠Ұ؏ͨ͠WorkflowΛఏڙ͢Δ
    ेಙφΠϑͳπʔϧ
    ֤Ϋϥ΢υαʔϏε΍πʔϧͷҧ͍ΛҰखʹٵऩ͠ɺ
    ͓ೃછΈͷ*HCLΛ࢖ͬͯ؆ܿʹఆٛ͢Δ͜ͱ͕Մೳ
    * JSONܗࣜͰͷهड़΋Մ
    11

    View full-size slide

  12. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    A. アプリデプロイに特化した Terraform みたいなもの
    12

    View full-size slide

  13. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    A tool to build, deploy, and release any application on any platform
    ͋ΒΏΔϓϥοτϑΥʔϜͰ͋ΒΏΔΞϓϦέʔγϣϯΛ
    Ϗϧυ, σϓϩΠͦͯ͠ϦϦʔε͢ΔͨΊͷπʔϧ
    Purpose of Waypoint
    13

    View full-size slide

  14. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Try it out!
    14

    View full-size slide

  15. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Waypoint Architecture
    தԝूݖతͳػೳΛ࣋ͬͨ4FSWFSίϯϙʔωϯτ͕ඞཁ
    ͜Ε͸7.΍,VCFSOFUFT্ͳͲɺͲ͜Ͱ΋഑ஔͯ͠0,
    ݱࡏ͸#FUB൛͕ͩ 8BZQPJOU$MPVE ΋࢖༻Մೳ
    15

    View full-size slide

  16. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Waypoint Architecture
    Ϗϧυ σϓϩΠ΍ϦϦʔεͱ͍֤ͬͨ+PC͸3VOOFSͰ࣮ߦ
    +PC͸σϓϩΠઌͷ1MBUGPSN"1*ͱ௚઀௨৴͢Δ
    ΑͬͯΞϓϦ͕σϓϩΠ͞ΕΔ؀ڥຖʹ3VOOFS͕ඞཁͱͳΔ
    ͜ΕΒͷ+PC͸8BZQPJOU4FSWFS͔Βఏڙ͞ΕΔ8FC (6*΍
    8BZQPJOU$-*͔Β)PPL͢Δ͜ͱ͕Ͱ͖Δ
    ·ͨɺ$*༻ʹ5SJHHFS63-Λ4FSWFS͔Β෷͍ग़͠)551ܦ༝Ͱ
    )PPL͢Δ͜ͱ΋Մೳ
    16

    View full-size slide

  17. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    QA Architecture
    ࣮ӡ༻͢Δ৔߹ͷߏ੒Λҙࣝ͠ProxyഎޙͷEKS্ʹ
    Waypoint ServerΛ഑ஔ
    ʢฐࣾͷҰ෦੍໿ʹΑΓWaypoint Cloud͸ࢼ༻ෆՄʣ
    Istio഑ԼʹͤͣNginx IngressΛલ࠲ʹ഑ஔʢޙड़ʣ
    Route53ͱCert ManagerͰdns01Λ௨ͨ͠CertͰ
    NLB͸TLS passthroughɺGUIͷHTTPSͱCLIͷgRPC
    Λ୯ҰPortͰListen
    17

    View full-size slide

  18. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Preparation
    1. HelmΛ࢖༻͠Waypoint ServerΛInstall
    helm repo add hashicorp https://helm.releases.hashicorp.com
    helm install waypoint hashicorp/waypoint –f /path/to/values.yaml
    2. ࡞ۀ୺຤ʹWaypoint CLIΛInstall
    brew tap hashicorp/tap
    brew install hashicorp/tap/waypoint
    3. CLI͔ΒWaypoint ServerʹLogin
    waypoint login -from-kubernetes -server-addr=:
    18

    View full-size slide

  19. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Preparation
    4. Runner ProfileΛߋ৽͠ɺੜ੒͞ΕΔOn-Demand RunnerʹProxyઃఆΛຒΊࠐ·ͤΔ
    waypoint runner profile set \
    -name=odr-profile \
    -plugin-type=kubernetes \
    -oci-url=docker.io/hashicorp/waypoint-odr:0.11.0 \
    -default \
    -env-var=WAYPOINT_SERVER_ADDR=waypoint-server:9701 \
    -env-var=HTTP_PROXY= \
    -env-var=HTTPS_PROXY= \
    -env-var=NO_PROXY= \
    -plugin-config=path/to/runner-profile.json
    19

    View full-size slide

  20. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Little Pitfalls
    ͜͜Ͱૣ଎ɺͪΐͬͱͨ͠མͱ݀͠ʹϋϚΔ
    • HelmͷdefaultͰ͸Waypoint Serverͷservice type͸ LoadBalancer
    • values.yaml ʹIngress༻ͷ୅ସઃఆ΋ଘࡏ͢Δ͕GUIͷΈͰgRPC Endpoint͸ରԠ֎
    ޾͍Path rootingͰԿͱ͔Ͱ͖ΔͷͰIngress resourceΛ୯ҰͷFQDNʹ2छ࡞੒͢Δ
    • waypoint login ʹ -server-addr Ͱద੾ͳυϝΠϯͱIPΛࢦఆ͠ͳ͚Ε͹ClusterIP͕
    ฦͬͯ͠·͍Endpointʹ౸ୡͰ͖ͳ͘ͳΔ
    • *TUJPͱͷڞଘ͕೉͍͠ɺ8BZQPJOU4FSWFSͷ#PPUTUSBQ͸/FHPUJBUFޙʹ4FDSFUΛ
    ࡞੒͢Δ͕*TUJPʹΑΓωοτϫʔΫมߋ͞Ε+PC͕౸ୡͰ͖ͣίέΔ
    20

    View full-size slide

  21. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    waypoint.hcl
    جຊ͸Projectຖʹ୯Ұͷߏ੒ϑΝΠϧΛ࡞੒
    VCS಺ʹؚΊΔ͔Waypoint Serverʹอ࣋ͤ͞Δ
    app {} build {} ͱ͍֤ͬͨϒϩοΫΛStanzaͱݺশ
    project ͱ app stanza ͕Required
    dockerfile ͳͲ૊ΈࠐΈͷఆٛࡁΈม਺͕ଘࡏ
    Ϣʔβʔఆٛ͞Εͨม਺ʹ΋ରԠ͠ɺHCL͓ೃછΈͷ
    variables {} Ͱهड़Մೳ
    21

    View full-size slide

  22. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Hashicorp ੡඼ؒͷ࿈ܞ΋ͱͯ΋؆୯
    ؀ڥࠩ෼ͱͯ͠ϕλॻ͖཰͕ߴ͍ઃఆ஋Λ
    Terraform State͔ΒҾͬுͬͯ͜ΕΔ
    env.HTTP_PROXY_SERVER ͱ౉͠ํ΋؆ܿ
    “terraform-cloud” ͷ෦෼Λ “vault” ͱ
    ͢Ε͹ͦͷ··7BVMUͷ஋΋औΕΔ
    %#ؔ࿈ͷ$SFEFOUJBMTͳͲ΋҆͝શʹ
    waypoint.hcl
    22

    View full-size slide

  23. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    From the perspective of my position
    Pros and Cons
    • Waypoint URL Service
    • GitHub App not supported
    • Container image build & push
    • AWS Lambda΁σϓϩΠʢOnly OCI Basedʣ
    • EC2 AMIΛASGʹσϓϩΠ
    • Kubernetes΁σϓϩΠ
    23

    View full-size slide

  24. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case1: Container image build & push
    24

    View full-size slide

  25. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    “build” stanzaͰdockerΛuse͢Δ
    ”registry” Λলུ͢ΔͱLocal registryʹอ࣋
    ࢦఆͨ͠৔߹͸buildޙʹpush͞ΕΔ
    DefaultͰ͸Project root͔ΒDockerfileΛݕग़
    ఆٛࡁΈม਺Ͱ೚ҙͷϑΝΠϧࢦఆՄೳ
    Container image build & push
    25

    View full-size slide

  26. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    GitHub ActionsͰPermissionΛ༩͑WebIdTokenͳೝূΛͨ͠ͷͪ
    ECRʹLogin͠Πϝʔδϓογϡ
    ͋Γ͕ͪͳ޻ఔΛ waypoint up ͚ͩͰஔ͖׵͑Մೳ
    GitHub༻ͷRoleʹ෇༩͢Δݖݶ΋ߜΓࠐΊΔ
    ΋ͪΖΜɺAWSҎ֎ͷ؀ڥͰ΋ॊೈʹରԠͰ͖͜͜͸طଘͷGitOpsϑϩʔΛ
    अຐ͠ͳ͍έʔε͕ଟ͍ͷͰؾ͔ܰͭγϯϓϧʹಋೖՄ
    Impression
    26

    View full-size slide

  27. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case2: AWS Lambda΁σϓϩΠʢOnly OCI Basedʣ
    27

    View full-size slide

  28. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    “build” stanzaͰdockerͨ͠ΓECR্ͷimageΛ
    Pull͠ “deploy” stanzaͰaws-lambdaΛuse
    Required͸ region ͷΈͰଞ͸Optional
    Role໊ͳͲಈతʹ౉͍ͨ͠৔߹͸VariablesΛ
    հͯ͠Ҿ͍ͨ஋Λ var.role ͱ͔Ͱ౉ͤΔ
    AWS Lambda ΁σϓϩΠ
    28

    View full-size slide

  29. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    • TerraformΛ࢖͍ΨοπϦIaCΛ૊ΜͰ͍Δ
    • ֎෦ґଘؔ܎Λ࣋ͬͨίʔυ
    • ΠϯϑϥɾSREνʔϜ֎Ͱ࡞੒͞ΕΔLambda
    ͜Μͳ࣌TerraformͷRepositoryʹLambdaͷίʔυΛؚΊΔ͔
    ґଘؔ܎ΛLayerʹ༬͚Δ͔ɺZipʹ͢Δ͔Stateͷ؅ཧ্গ͠໎͏͕࣌͋Δ
    Waypoint Λซ༻͢Δ͜ͱͰνʔϜؒͷ੹೚෼཭Λ໌֬ʹͰ͖Δ
    OCIϕʔεʹͳΓϚωίϯ͔Β͸֬ೝɾฤूͰ͖ͳ͍఺Ͱҙݟ͕ผΕΔ
    Impression
    29

    View full-size slide

  30. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case3: EC2 AMIΛASGʹσϓϩΠ
    30

    View full-size slide

  31. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Hashicorp Packerͱ૊Έ߹Θͤͯ࢖༻͢Ε͹AMIͷ࡞੒͔Β
    ASGʹσϓϩΠ·ͰϫϯετοϓͳσϓϩΠମݧ͕ಘΒΕΔ
    Golden Imageͷऔಘ͔Βల։·ͰɺRunCommand౳Λۦ࢖͠
    Lambda΍SQSͷ߹ମٕͰ࣮૷͢Δ͜ͱ΋Ͱ͖Δ͕ͪΐ͍൥ࡶ
    WaypointʹΑΓͱͯ΋εϚʔτʹఆٛͰ͖Δ
    EC2 AMIΛASGʹσϓϩΠ
    31

    View full-size slide

  32. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    PackerͰద౰ͳAMIΛ࡞੒
    EC2 AMIΛASGʹσϓϩΠ
    32

    View full-size slide

  33. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    “build” stanzaͰPackerͨ͠AMIΛద౰ʹFilter͠
    “deploy” stanzaͰEC2ύϥϝʔλΛࢦఆ
    count ΦϓγϣϯΛࢦఆ͢Δ͜ͱͰASGͱͯ͠
    σϓϩΠ͞ΕΔ
    লུ͢Δͱ୯ҰͷEC2ΠϯελϯεʹͳΔ
    ෳ਺ͷPortΛListen͍ͤͨ͞৔߹͸ extra_port
    SSH Keyͷࢦఆʹ͸ key Φϓγϣϯ͕࢖͑Δ
    ࠓͷॴKeyPair͸طଘͷ΋ͷ͔͠ࢦఆͰ͖ͳ͍
    EC2 AMIΛASGʹσϓϩΠ
    33

    View full-size slide

  34. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ඞཁʹԠ͡ “release” stanzaͰALBΛΞλον
    ACM ARNͱυϝΠϯ໊Λࢦఆ͠ɺRoute53ͷ
    ZoneIDΛఏڙ͢Δ͜ͱͰϨίʔυ΋࡞੒Մೳ
    ΋͠΋طଘͷALBʹ߹ྲྀ͍ͤͨ͞৔߹͸্هͷ
    ୅ΘΓʹ listener_arn Λࢦఆ͢Ε͹OK
    ಉ༷ͷهड़ͰEC2͚ͩͰͳ͘Lambdaؔ਺Λ
    ALBʹΞλον͢Δ͜ͱ΋Մೳ
    EC2 AMIΛASGʹσϓϩΠ
    34

    View full-size slide

  35. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    શͯΛTerraform, CFn౳Ͱ૊΋͏ͱࢥ͏ͱͦΕͳΓͷྔϦιʔεఆ͕ٛඞཁ
    ·ͨɺGolden Imageͷ࡞੒͸ϓϩμΫτνʔϜଆͷ੹຿Ͱ͋Δ৔߹΋ଟ͍
    ΠϯϑϥɾSREνʔϜ͸ࣄલʹϦεφʔϧʔϧΛ࡞੒͓ͯ͘͜͠ͱͰ
    σϓϩΠΛWaypointʹ੾Γग़͠৽AMIͷల։Λ෼཭Ͱ͖Δ
    ॎ࣠૊৫ͱԣ࣠૊৫ͷ࿈ܞ͸Կ͔ͱϓϩηε͕ൃੜ͕ͪ͠ͳͷͰ
    WaypointΛ࢖͏͜ͱͰϓϩμΫτνʔϜ͕೚ҙͷλΠϛϯάͰσϓϩΠՄೳʹ
    Delivery cycleͷҡ࣋ʹܨ͕ΓDX޲্͸໪࿦ɺUXվળʹ΋ظ଴Ͱ͖Δ
    Impression
    35

    View full-size slide

  36. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case4: Kubernetes΁σϓϩΠ
    36

    View full-size slide

  37. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ࠷΋γϯϓϧͰϛχϚϜͳઃఆ͸͜Ε͚ͩ
    “deploy” stanzaͰ kubernetesΛࢦఆ͢Δ
    Deployment ResourceͰ ”build” stanzaͷ
    Docker Image͕σϓϩΠ͞ΕΔ
    “release” stanzaͰkubernetesΛࢦఆ͢Δͱ
    Service Resource͕࡞੒Ͱ͖Δ
    Kubernetes΁σϓϩΠ
    37

    View full-size slide

  38. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    YAMLΛ༻ҙ͢Δέʔεʹ΋ରԠՄೳ
    HCLͰ͓ೃછΈ templatedir() Λ࢖͏
    Requiredͳ prune_label ͕গ͠ۂऀ
    ࢦఆͨ͠LabelΛ࣋ͨͳ͍Ϧιʔε͸
    Prune͞Εͯ͠·͏
    Kustomizeͷ commonLabels ͕࿀͍͠
    ͕ɺKustomize͸ Not supported..
    Kubernetes΁σϓϩΠ via kubectl
    38

    View full-size slide

  39. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    HelmΛ࢖༻ͨ͠σϓϩΠ΋໪࿦Մೳ
    Local ChartΛར༻͢Δ৔߹ͷϛχϚϜ
    ࠨਤͰ͸ set Ͱ஋Λ౉͕ͨ͠ values
    Φϓγϣϯ΋͋ΓPathͰࢦఆՄೳ
    ֎෦Repository্ͷChartΛ࢖͏৔߹͸ɺ
    repository Ͱࢦఆ͠ chart ΛChart໊ʹ
    Kubernetes΁σϓϩΠ via Helm
    39

    View full-size slide

  40. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ݱঢ়BuildInͰ͸KustomizeʹରԠ͍ͯ͠ͳ͍
    ͔͠͠Terraformಉ༷ʹlocal execػೳ͕͋Δ
    ͜ΕΛ༻͍Ε͹Kustomize͚ͩͰͳ͘ຆͲͷ
    Ϗϧυπʔϧͱ౷߹͢Δ͜ͱ͕Մೳ
    execΛ࢖͏ͱWaypointͷStateʹه࿥͞Εͳ͍
    ૟আͷࡍ͸ݸผʹ࡟আ͍ͯ͘͠ඞཁ͕͋Δ
    Kubernetes΁σϓϩΠ via Kustomize
    40

    View full-size slide

  41. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    ΍͸Γπʔϧͷࢥ૝͕ݩʑGitOpsΛҙࣝͨ͠੡඼Ͱ͸ͳ͍ͷͰɺ
    ArgoCD΍Flux CDͳͲͱൺ΂Δͱػೳ໘Ͱऑ͍෦෼͕͋Δ
    WaypointΛϝΠϯʹਾ͑ͯGitOpsؔ࿈Λஔ͖׵͑Δͷ͸ࠓͷஈ֊Ͱ͸·ͩ೉͍͠
    ͨͩ͠։ൃνʔϜ͕Kubernetes্ͷطଘαʔϏεʹґଘ͢ΔίʔυΛಈ͍֬ͨ࣌͠ͳͲ
    αΫοͱσϓϩΠ͍ͨ͠ඇຊ൪؀ڥʹ͓͍ͯ͸े෼औΓೖΕΔ༨஍͕͋Δ
    Impression
    41

    View full-size slide

  42. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    42

    View full-size slide

  43. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case1: Waypoint URL Service
    43

    View full-size slide

  44. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    લฤͷSectionͰ͸׶͑ͯઆ໌Λආ͚͖ͯͨɺWaypointͷఏڙ͢ΔίΞαʔϏεͷ1ͭ
    ݴ͍ํΛม͑Ε͹ηʔϧεϙΠϯτͰ͋Γɺ·ͨۂऀͰ΋͋Δ
    WaypointΛ࢖༻͠URLΛ൐͏ΞϓϦΛϦϦʔε͢ΔͱLet’s EncryptͰTLSԽ͞Εͨɺ
    PublicͳαʔϏεΤϯυϙΠϯτ͕໰౴ແ༻Ͱެ։͞ΕΔ
    ݱঢ়͸։ൃ༻్͕ओͰຊ൪޲͚Ͱ͸ͳ͍ʢyetʣ
    Waypoint URL Service
    44

    View full-size slide

  45. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    WEB API౳Λ࣮૷͢Δཱ৔͔ΒݟΔͱQA؀ڥ͕উखʹ্ཱ͕ͪΓศརͱݴ͑Δ
    ʢSidecar΍ServiceMeshͷAuth/AuthzʹཔΔઃܭͩͱதʑ೉͍͕͠ʣ
    ͨͩ͠ɺGitOpsͱͯ͠࢖༻͠ArgoCDͳΜ͔ΛϦϦʔε͢Δͱ
    ΋Εͳ͘؅ཧը໘͕ύϒϦοΫʹެ։͞Εͯ͠·͏
    ͜ͷΑ͏ʹ޷·͘͠ͳ͍έʔε͕ଘࡏ͢Δͷ͸͔֬ͳͱ͜Ζ
    Waypoint URL Service
    45

    View full-size slide

  46. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Project, AppϨϕϧͰͦΕͧΕ͜ͷػೳΛແޮʹ͢Δ͜ͱ͕Ͱ͖Δ
    σϑΥϧτͰ͸༗ޮ
    WaypointશମͰແޮʹ͍ͨ͠৔߹͸ waypoint server run ίϚϯυͰىಈ͢Δࡍʹ
    -url-enabled ϑϥάΛfalseʹ͢Δ͜ͱͰServerશମͰແޮʹͰ͖Δ
    -url-api prefixͳίϚϯυΦϓγϣϯ͸͍͔ͭ֬͘ೝͰ͖ΔͷͰࠓޙGitHub Pages΍
    ΧελϜυϝΠϯͳͲରԠͰ͖Δ෯͕޿͕Ε͹Ұؾʹ࣮༻ੑ͕ग़ͯ͘Δ͔΋
    Waypoint URL Service
    46

    View full-size slide

  47. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Case2: GitHub App not supported
    47

    View full-size slide

  48. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Waypoint ServerʹVCSͱͯ͠GitHubΛ઀ଓ͢Δ৔߹ɺαϙʔτ͞Ε͍ͯΔͷ͸
    HTTPSϕʔεͷToken Auth͔SSH(22)઀ଓͷΈ
    ௨৴ཁ݅ͱͯ͠22൪ΛIn/Outڞʹ࠹͕Ε͍ͯͨΓ͢Δاۀ΋ଟ͍
    ͜Μͳ࣌ͷͨΊʹGitHubͰ͸SSH over HTTPSΛ༻ҙ͍ͯ͠Δ͕Waypoint͸ඇରԠ
    ·ͨGitHubଆͰCAॺ໊ͷKeyར༻Λඞਢʹ͍ͯ͠ΔͱHTTPS͸ڐ༰͞ΕͣSSH͕ڧ੍͞ΕΔ
    ͜ΕΛbypass͠HTTPSͰΞΫηε͢Δʹ͸GitHub AppΛར༻͢Δ͔͠ͳ͍͕ɾɾ
    GitHub App not supported
    48

    View full-size slide

  49. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    RepositoryͷURLઃఆʹInstallation IDϕʔεͷTokenΛ࢖༻͠Ͱͷ઀ଓ΋ࢼΈ͕ͨ
    Ұ൪ॳΊͷSFGΛऔΔஈ֊Ͱ HPHJU ʹ'PSCJEEFOΛฦ͞Εͯ͠·ͬͨ
    i.e., https://x-access-token:[email protected]//.git
    ճආࡦͱͯ͠ݕূͷؒGitHub͔ΒActionsܦ༝ͰAWS CodeCommitʹ
    1way sync͢ΔΑ͏ʹ͠Waypoint͔Βݟʹߦ͔ͤͨ
    GitHub App not supported
    49

    View full-size slide

  50. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Appendix
    50

    View full-size slide

  51. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    • Waypoint developers page
    https://developer.hashicorp.com/waypoint
    • Waypoint repository
    https://github.com/hashicorp/waypoint
    • Waypoint helm repository
    https://github.com/hashicorp/waypoint-helm
    • Waypoint official examples
    https://github.com/hashicorp/waypoint-examples
    • Waypoint plugin examples
    https://github.com/hashicorp/waypoint-plugin-examples
    Links
    51

    View full-size slide

  52. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    • Page 5: Mr. Armon Dadger's profile picture
    https://twitter.com/armon/photo
    • Page 8: Waypoint Logo
    https://www.hashicorp.com/brand/downloads
    • Page 15: Waypoint Server Architecture
    https://developer.hashicorp.com/waypoint/docs/resources/internals/architecture
    • Page 16: Waypoint Runner Architecture
    https://developer.hashicorp.com/waypoint/docs/runner
    • Page 42: Waypoint Logo
    https://www.waypointproject.io/
    Source of Hashicorp images
    52

    View full-size slide

  53. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    Carbon
    https://carbon.now.sh/
    Generate of snippet image
    53

    View full-size slide

  54. Copyright © since 2016 Temp Holdings Co., Ltd. All Rights Reserved.
    Copyright © PERSOL HOLDINGS CO., LTD. All Rights Reserved.
    EOF
    54

    View full-size slide