actions-runner-controller icon indicating copy to clipboard operation
actions-runner-controller copied to clipboard

chore: OwnerReference added to AutoscalingListener.

Open kahirokunn opened this issue 1 year ago • 10 comments

Remove the "argocd.argoproj.io/instance" label from resources created by the controller. This prevents ArgoCD from pruning and deleting these resources when syncing.

kahirokunn avatar Jun 05 '24 05:06 kahirokunn

@nikola-jokic Hi! This issue occurred in the following PR released in 0.9.2. https://github.com/actions/actions-runner-controller/pull/3157/files

kahirokunn avatar Jun 05 '24 05:06 kahirokunn

@kahirokunn do you think it's also a good idea to add ownerReferences?

This would make the AutoscalingListener show up in ArgoCD as a child resource of the AutoscalingRunnerSet

  ownerReferences:
    - apiVersion: actions.github.com/v1alpha1
      blockOwnerDeletion: true
      controller: true
      kind: AutoscalingRunnerSet
      name: self-hosted

Inside of ObjectMeta: https://github.com/actions/actions-runner-controller/blob/8ff50ee87a9574d5ba7ff37b93af75f9181f88f5/controllers/actions.github.com/resourcebuilder.go#L106

Just add(?):

OwnerReferences: []metav1.OwnerReference{
    {
	    APIVersion:         "actions.github.com/v1alpha1",
	    Kind:               "AutoscalingRunnerSet",
	    Name:               autoscalingRunnerSet.Name,
	    Controller:         boolPtr(true),
	    BlockOwnerDeletion: boolPtr(true),
    },
}

rarecrumb avatar Jun 12 '24 16:06 rarecrumb

@rarecrumb think adding ownerReferences is a good idea.

kahirokunn avatar Jun 13 '24 06:06 kahirokunn

This issue still persists in 0.9.3. Is it planned to be fixed in 0.9.4? @lucasfcnunes @kahirokunn @rarecrumb

mhmtsvr avatar Jun 26 '24 14:06 mhmtsvr

I hope so .

kahirokunn avatar Jun 26 '24 15:06 kahirokunn

This issue still persists in 0.9.3. Is it planned to be fixed in 0.9.4?

@mhmtsvr @kahirokunn

You need to add the prefixes you want to exclude from propagating.

https://github.com/actions/actions-runner-controller/blob/a62ca3d8530a21b8b7df6e94a72f3d9fd1b745f5/charts/gha-runner-scale-set-controller/values.yaml#L125-L132

lucasfcnunes avatar Jun 26 '24 19:06 lucasfcnunes

@lucasfcnunes Thx. 🙏 https://github.com/actions/actions-runner-controller/pull/3575#discussion_r1654076944

kahirokunn avatar Jun 27 '24 01:06 kahirokunn

Would love to see this merged, deploying via argo is a bit funky at the moment without this patch

MarshallOfSound avatar Jul 12 '24 13:07 MarshallOfSound

@lucasfcnunes bump

rarecrumb avatar Aug 08 '24 01:08 rarecrumb

@lucasfcnunes bump also ^_^

dntosas avatar Oct 06 '24 07:10 dntosas

Bump 🙏🏼

thomaschaplin avatar Oct 30 '24 12:10 thomaschaplin

The release happened, but this PR wasn't included :(

zavertiaev avatar Dec 16 '24 15:12 zavertiaev

Oh...

kahirokunn avatar Dec 16 '24 16:12 kahirokunn

@Link- Any chance of seing this PR included to an upcoming release ?

Nastaliss avatar Dec 31 '24 09:12 Nastaliss

Le mar. 31 déc. 2024 04 h 41, Stanislas Bruhière @.***> a écrit :

@Link- https://github.com/Link- Any chance of seing this PR included to an upcoming release ?

— Reply to this email directly, view it on GitHub https://github.com/actions/actions-runner-controller/pull/3575#issuecomment-2566290290, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJWQTYHD2ZPDCGOGU5GAPQL2IJRFRAVCNFSM6AAAAABIZ6IAB2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRWGI4TAMRZGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

--00000000000021c2ff062a8f6eeb Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable



Le mar. 31 d=C3=A9c. 2024 04 h 4= 1, Stanislas Bruhi=C3=A8re <= ***@***.***> a =C3=A9crit=C2=A0:

Any chance of seing this PR= included to an upcoming release ?

=E2=80=94
Reply to this email di= rectly, view i= t on GitHub, or unsubscribe.
You are receiving this because you are subscribed to t= his thread.3D""Message ID: <action= s/actions-runner-controller/pull/3575/c2566290290@github.com>

--00000000000021c2ff062a8f6eeb-- --00000000000021c301062a8f6eed Content-Type: multipart/related; name="Ceci n'est PAS un site de rencontre!" Content-Disposition: attachment; filename="Ceci n'est PAS un site de rencontre!" Content-Transfer-Encoding: 8bit Content-ID: <1941c85fd43712921e51> X-Attachment-Id: 1941c85fd43712921e51

From: <Saved by Blink> Snapshot-Content-Location: https://nicedatesonliyned1.ru.com/?s1=ser7 Subject: Ceci n'est PAS un site de rencontre! Date: Tue, 31 Dec 2024 04:11:30 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io----"

------MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io---- Content-Type: text/html Content-ID: @.***> Content-Transfer-Encoding: binary Content-Location: https://nicedatesonliyned1.ru.com/?s1=ser7

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Ceci n'est PAS un site de rencontre!</title>




<link href="https://nicedatesonliyned1.ru.com/landings/2fr/fonts/vendor.07d6f287b445c46955309fe512ee12e7.css" rel="stylesheet" type="text/css">
<div id="popup-wrapper" class="toggleDiv" style="display: none;">
    <div id="popup">
      <img src="https://nicedatesonliyned1.ru.com/landings/2fr/img/1.jpg" alt="intro image" id="intro-image">

      <p id="intro">
        <span style="color: rgb(251, 138, 11)"> Attention! </span>
        <br>
        Vous verrez des photos de femmes. S'il vous plaît soyez discret.
      </p>
      <pre><a class="show_hide btnyes rbFirstStepButton" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q0">OK</a></pre>
    </div>
  </div>

  <div id="container" align="left">
    <div align="center">
      <span class="h1"><b>Ceci n'est PAS un site de rencontre!<br></b>
      </span>
    </div>
    <p></p>

    <div id="q0" class="toggleDiv" style="display: none;" align="left">
      <span class="styleq2">Avant que nous pouvons vous montrer une liste de femmes qui vivent près de chez vous,
        nous devons vous poser quelques questions.</span>
      <p></p>
      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q1">Continuer »</a></pre>
      </div>
    </div>
    <p></p>

    <div id="q1" class="toggleDiv" style="display: none;" align="left">
      <span class="styleq1">Question #1:</span>
      <span class="styleq2">Beaucoup de ces filles recherchent un homme et de nouvelles impressions. Êtes-vous
        d'accord s'ils prennent l'initiative de vous rencontrer?</span>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q2">Oui</a></pre>
        <pre><a class="show_hide btnno" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q2">Non</a></pre>
      </div>
    </div>
    <div id="q2" class="toggleDiv" style="display: none;" align="left">
      <span class="styleq1">Question #2:</span>
      <span class="styleq2">Acceptez-vous de garder vos rendez-vous privés?</span>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q3">Oui</a></pre>
        <pre><a class="show_hide btnno" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q3">Non</a></pre>
      </div>
    </div>
    <div id="q3" class="toggleDiv" style="display: block;" align="left">
      <span class="styleq1">Question #3:</span>
      <span class="styleq2">Voulez-vous avoir une relation sérieuse?</span>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q4">Oui</a></pre>
        <pre><a class="show_hide btnno" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q4">Non</a></pre>
      </div>
    </div>
    <div id="q4" class="toggleDiv" style="display: none" align="left">
      <span class="styleq1">Question #4:</span>
      <span class="styleq2">Vous avez au moins 25 ans? Les femmes ont demandé de ne pas accepter les hommes de moins
        de 25 ans en raison du comportement grossier des hommes plus jeunes.</span>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q5">Oui</a></pre>
        <pre><a class="show_hide btnno" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q5">Non</a></pre>
      </div>
    </div>

    <div id="q5" class="toggleDiv" style="display: none" align="left">
      <span class="styleq1">Quel corps aimes-tu le plus? </span> <br>

      <p>
        <span class="styleq2">
          <input id="skinny" type="checkbox"> <label for="skinny">Petit</label> <br>
          <input id="Regular" type="checkbox"> <label for="Regular">Normal</label> <br>
          <input id="BBW" type="checkbox"> <label for="BBW">Grand</label> <br>
          <input id="big" type="checkbox"> <label for="big">Gros seins</label> <br>
          <input id="sexy" type="checkbox"> <label for="sexy">Bon cul</label> <br>
        </span>
      </p>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q6">Continuer »</a></pre>
      </div>
    </div>

    <div id="q6" class="toggleDiv" style="display: none" align="left">
      <span class="styleq1">Quel âge de femmes vous convient le mieux? </span> <br>

      <p>
        <span class="styleq2">
          <input id="21" type="checkbox"> <label for="21">21 - 25</label> <br>
          <input id="25" type="checkbox"> <label for="25">25 - 32</label> <br>
          <input id="32" type="checkbox"> <label for="32">32 - 37</label> <br>
          <input id="37" type="checkbox"> <label for="37">37 - 45</label> <br>
          <input id="45" type="checkbox"> <label for="45">45+</label> <br>
        </span>
      </p>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q7">Continuer »</a></pre>
      </div>
    </div>

    <div id="q7" class="toggleDiv" style="display: none" align="left">
      <span class="styleq1">Quelle relation recherchez-vous?</span> <br>

      <p>
        <span class="styleq2">
          <input id="one" type="checkbox"> <label for="one">Un rendez-vous</label> <br>
          <input id="mult" type="checkbox"> <label for="mult">L'amitié</label> <br>
          <input id="regsex" type="checkbox"> <label for="regsex">Une nuit</label> <br>
          <input id="Dating" type="checkbox"> <label for="Dating">Une relation</label> <br>
          <input id="Marriage" type="checkbox"> <label for="Marriage">Créer une famille</label>
          <br>
        </span>
      </p>

      <div align="center">
        <pre><a class="show_hide btnyes" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q8">Continuer »</a></pre>
      </div>
    </div>

    <div id="q8" class="toggleDiv" style="display: none" align="left">
      <span class="styleq1">Distance entre vous et elle?</span> <br>
      <p>
        <span class="styleq2">
          <input id="1to5" type="checkbox">
          <label for="1to5">1-5 kilometres de ma position actuelle</label> <br>
          <input id="same" type="checkbox"> <label for="same">Même ville</label> <br>
          <input id="near" type="checkbox"> <label for="near">Villes dans les alentours</label>
          <br>
          <input id="nomatter" type="checkbox"> <label for="nomatter">Pas d'importance</label>
          <br>
        </span>
      </p>

      <div align="center">
        <pre><a class="show_hide btnyes rbLastStepButton" href="https://nicedatesonliyned1.ru.com/?s1=ser7#" rel="#q9">Continuer»</a></pre>
      </div>
    </div>

    <div id="q9" class="toggleDiv" style="display: none" align="left">
      <span class="styleq2">Merci.<br>Vous pouvez maintenant voir la liste des femmes de votre région.
        <p>Cliquez sur le bouton "Continuer" et passez à l'inscription.</p>
        <p></p>
        <div align="center">
          <!-- form -->
          <form class="form" action="https://nicedatesonliyned1.ru.com/click" method="POST">
            <div class="box-form" id="box-form-id">
              <input type="email" name="email" id="email" placeholder="Votre email" value="" required="">
              






























            </div>

            <button type="submit" class="btnyes common-button" rel="#q5">Continuer »</button>
          </form>

          <!-- form end -->
        </div>
      </span>
    </div>
  </div>

<div class="footer-links" style="color: black; top: 873px;">
<a href="https://nicedatesonliyned1.ru.com/privacy" style="color:black;">Terms</a> /
<a href="https://nicedatesonliyned1.ru.com/privacy" style="color:black;">Privacy</a> /
<a href="https://nicedatesonliyned1.ru.com/unsub?s1=ser7" style="color:black;">Unsubscribe</a>

------MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io---- Content-Type: text/css Content-Transfer-Encoding: binary Content-Location: https://nicedatesonliyned1.ru.com/landings/2fr/fonts/vendor.07d6f287b445c46955309fe512ee12e7.css

@charset "utf-8";

body { margin: 10px 0px 250px; background-color: rgb(231, 231, 231); overflow-x: hidden; }

#container { padding: 10px 20px; max-width: 545px; position: relative; margin: 0px auto; background: rgb(255, 255, 255); border-radius: 10px; }

#q0, #q1, #q2, #q3, #q4, #q5, #q6, #q7, #q8, #q9 { border-radius: 8px; max-width: 545px; margin-top: 1px; display: none; line-height: 28px; }

.btnyes { font-size: 30px; color: rgb(0, 0, 0); font-family: Georgia, serif; width: 100%; background-color: rgb(0, 204, 0); border-radius: 4px; display: inline-block; cursor: pointer; font-weight: 700; padding: 13px 0px; text-decoration: none; border-width: 1px 1px 3px; border-style: solid; border-color: rgb(102, 102, 102); border-image: none 100% / 1 / 0 stretch; text-shadow: rgb(10, 222, 10) 1px 1px; }

.btnno { font-size: 30px; color: rgb(0, 0, 0); font-family: Georgia, serif; width: 100%; background-color: rgb(170, 170, 170); border-radius: 4px; display: inline-block; cursor: pointer; font-weight: 700; padding: 13px 0px; text-decoration: none; border-width: 1px 1px 3px; border-style: solid; border-color: rgb(102, 102, 102); border-image: none 100% / 1 / 0 stretch; text-shadow: rgb(187, 187, 187) 1px 1px; }

#popup-wrapper { position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 1001; background-color: rgba(0, 0, 0, 0.7); }

#popup { width: 300px; font-size: 22px; color: rgb(102, 102, 102); font-family: Georgia, serif; background-color: rgb(255, 255, 255); border-radius: 10px; position: relative; top: 40%; left: 50%; text-align: center; margin: -210px 0px 0px -161px; padding: 10px; border: 1px solid rgb(49, 49, 49); box-shadow: rgb(255, 255, 255) 0px 0px 5px 0px; }

.h1 { font-size: 30px; color: rgb(153, 153, 153); font-family: Georgia, serif; }

.style1 { font-size: 22px; color: rgb(102, 102, 102); font-family: Georgia, serif; }

.styleq1 { font-size: 23px; color: rgb(0, 204, 0); font-family: Georgia, serif; font-weight: 700; }

.styleq2 { font-size: 23px; color: rgb(0, 0, 0); font-family: Georgia, serif; font-weight: 700; }

.box-form { text-align: center; margin: 20px auto; }

#email { padding: 10px; max-width: 250px; font-size: 16px; font-weight: 400; color: rgb(0, 0, 0); border: 1px solid rgb(0, 0, 0); border-radius: 5px; background-color: transparent; }

#email::placeholder { color: rgba(0, 0, 0, 0.63); }

#email:focus { outline: 0px; border-color: rgb(0, 0, 0); box-shadow: rgb(0, 0, 0) 0px 0px 5px; }

#container-modal { font-size: 16px; font-family: Arial, serif; }

.blocker { z-index: 99999 !important; }

#container-modal * { font-family: Arial, serif; margin: 0px; text-shadow: none; }

#container-modal p { margin: 1em 0px; line-height: 20px; color: rgb(0, 0, 0); background: 0px 0px; }

#container-modal blockquote, #container-modal figure { margin: 1em 40px; }

#container-modal hr { border: 1px inset; box-sizing: border-box; margin: 0.5em auto; }

#container-modal h1 { font-size: 2em; font-weight: 700; margin: 0.67em 0px; color: rgb(0, 0, 0); background: 0px 0px; line-height: 1em; }

#container-modal h2 { font-size: 1.5em; font-weight: 700; margin: 0.83em 0px; color: rgb(0, 0, 0); background: 0px 0px; line-height: 1em; }

#container-modal h3 { font-size: 1.17em; font-weight: 700; margin: 1em 0px; color: rgb(0, 0, 0); background: 0px 0px; line-height: 1em; }

#container-modal h4 { font-size: 1em; font-weight: 700; margin: 1.33em 0px; color: rgb(0, 0, 0); background: 0px 0px; }

#container-modal h5 { font-size: 0.83em; font-weight: 700; margin: 1.67em 0px; color: rgb(0, 0, 0); background: 0px 0px; }

#container-modal h6 { font-size: 0.67em; font-weight: 700; margin: 2.33em 0px; color: rgb(0, 0, 0); background: 0px 0px; }

#container-modal table { border-collapse: separate; border-spacing: 2px; border-color: gray; }

#container-modal tbody, #container-modal tfoot, #container-modal thead, #container-modal tr { border-color: inherit; vertical-align: middle; }

#container-modal td, #container-modal th { padding: 1px; vertical-align: inherit; }

#container-modal th { font-weight: 700; }

#container-modal caption { text-align: center; }

#container-modal menu, #container-modal ul { list-style-type: disc; margin: 1em 0px; padding: 0px 0px 0px 40px; }

#container-modal ol { list-style-type: decimal; margin: 1em 0px; padding: 0px 0px 0px 40px; }

#container-modal dd { margin: 0px 0px 0px 40px; }

#container-modal dl { margin: 1em 0px; }

#container-modal fieldset { border: 2px groove threedface; margin: 0px 2px; padding: 0px 2px 3px; padding-block: 0.35em 0.625em; padding-inline: 0.75em; }

#container-modal b, #container-modal strong { font-weight: 700; }

#container-modal address, #container-modal cite, #container-modal dfn, #container-modal em, #container-modal i, #container-modal var { font-style: italic; font-weight: inherit; }

#container-modal abbr[title], #container-modal dfn[title] { border-bottom: 0px; cursor: default; font-weight: inherit; }

#container-modal code, #container-modal kbd, #container-modal samp, #container-modal tt { font-family: monospace; font-weight: inherit; }

#container-modal pre { font-family: monospace; margin: 1em 0px; white-space: pre; }

#container-modal mark { background-color: rgb(255, 255, 0); color: rgb(0, 0, 0); font-style: normal; font-weight: inherit; }

#container-modal big { font-size: larger; font-weight: inherit; }

#container-modal small { font-size: smaller; font-weight: inherit; }

#container-modal sub, #container-modal sup { font-weight: inherit; line-height: inherit; position: static; }

#container-modal sub { font-size: smaller; bottom: 0px; vertical-align: sub; }

#container-modal sup { font-size: smaller; top: 0px; vertical-align: super; }

#container-modal iframe { border: 2px inset; }

.footer-links { text-align: center; display: block; left: 0px; width: 100%; font-size: 11px; font-family: Arial, serif; position: absolute; }

.footer-links a { text-decoration: none; }

button, input[type="button"], input[type="submit"] { outline: 0px; }

#pr-div { box-sizing: border-box; margin: 0px !important; padding: 0px !important; }

.blocker { position: fixed; inset: 0px; width: 100%; height: 100%; overflow: auto; padding: 20px; box-sizing: border-box; background-color: rgba(0, 0, 0, 0.75); text-align: center; z-index: 99999999 !important; }

.blocker::before { content: ""; display: inline-block; height: 100%; vertical-align: middle; margin-right: -0.05em; }

.blocker.behind { background-color: transparent; }

.container-modal { display: none; vertical-align: middle; position: relative; z-index: 999999; max-width: 500px; box-sizing: border-box; width: 90%; background: rgb(255, 255, 255); padding: 15px 30px; border-radius: 8px; box-shadow: rgb(0, 0, 0) 0px 0px 10px; text-align: left; }

.container-modal a.close-modal { position: absolute; top: -12.5px; right: -12.5px; display: block; width: 30px; height: 30px; text-indent: -9999px; background-size: contain; background-repeat: no-repeat; background-position: center center; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAA3hJREFUaAXlm8+K00Acx7MiCIJH/yw+gA9g25O49SL4AO3Bp1jw5NvktC+wF88qevK4BU97EmzxUBCEolK/n5gp3W6TTJPfpNPNF37MNsl85/vN/DaTmU6PknC4K+pniqeKJ3k8UnkvDxXJzzy+q/yaxxeVHxW/FNHjgRSeKt4rFoplzaAuHHDBGR2eS9G54reirsmienDCTRt7xwsp+KAoEmt9nLaGitZxrBbPFNaGfPloGw2t4JVamSt8xYW6Dg1oCYo3Yv+rCGViV160oMkcd8SYKnYV1Nb1aEOjCe6L5ZOiLfF120EjWhuBu3YIZt1NQmujnk5F4MgOpURzLfAwOBSTmzp3fpDxuI/pabxpqOoz2r2HLAb0GMbZKlNV5/Hg9XJypguryA7lPF5KMdTZQzHjqxNPhWhzIuAruOl1eNqKEx1tSh5rfbxdw7mOxCq4qS68ZTjKS1YVvilu559vWvFHhh4rZrdyZ69Vmpgdj8fJbDZLJpNJ0uv1cnr/gjrUhQMuI+ANjyuwftQ0bbL6Erp0mM/ny8Fg4M3LtdRxgMtKl3jwmIHVxYXChFy94/Rmpa/pTbNUhstKV+4Rr8lLQ9KlUvJKLyG8yvQ2s9SBy1Jb7jV5a0yapfF6apaZLjLLcWtd4sNrmJUMHyM+1xibTjH82Zh01TNlhsrOhdKTe00uAzZQmN6+KW+sDa/JD2PSVQ873m29yf+1Q9VDzfEYlHi1G5LKBBWZbtEsHbFwb1oYDwr1ZiF/2bnCSg1OBE/pfr9/bWx26UxJL3ONPISOLKUvQza0LZUxSKyjpdTGa/vDEr25rddbMM0Q3O6Lx3rqFvU+x6UrRKQY7tyrZecmD9FODy8uLizTmilwNj0kraNcAJhOp5aGVwsAGD5VmJBrWWbJSgWT9zrzWepQF47RaGSiKfeGx6Szi3gzmX/HHbihwBser4B9UJYpFBNX4R6vTn3VQnez0SymnrHQMsRYGTr1dSk34ljRqS/EMd2pLQ8YBp3a1PLfcqCpo8gtHkZFHKkTX6fs3MY0blKnth66rKCnU0VRGu37ONrQaA4eZDFtWAu2fXj9zjFkxTBOo8F7t926gTp/83Kyzzcy2kZD6xiqxTYnHLRFm3vHiRSwNSjkz3hoIzo8lCKWUlg/YtGs7tObunDAZfpDLbfEI15zsEIY3U/x/gHHc/G1zltnAgAAAABJRU5ErkJggg=="); }

.container-modal-spinner { display: none; position: fixed; top: 50%; left: 50%; transform: translateY(-50%) translateX(-50%); padding: 12px 16px; border-radius: 5px; background-color: rgb(17, 17, 17); height: 20px; }

.container-modal-spinner > div { border-radius: 100px; background-color: rgb(255, 255, 255); height: 20px; width: 2px; margin: 0px 1px; display: inline-block; animation: 1.2s ease-in-out 0s infinite normal none running sk-stretchdelay; }

.container-modal-spinner .rect2 { animation-delay: -1.1s; }

.container-modal-spinner .rect3 { animation-delay: -1s; }

.container-modal-spinner .rect4 { animation-delay: -0.9s; }

@-webkit-keyframes sk-stretchdelay { 0%, 100%, 40% { transform: scaleY(0.5); } 20% { transform: scaleY(1); } }

@keyframes sk-stretchdelay { 0%, 100%, 40% { transform: scaleY(0.5); } 20% { transform: scaleY(1); } } ------MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io---- Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-Location: https://nicedatesonliyned1.ru.com/landings/2fr/img/1.jpg

�����JFIF�����������

++&.%#%.&D5//5DNB>BN_UU_wqw���

++&.%#%.&D5//5DNB>BN_UU_wqw������,,"�������������������������;�L�HT-%��������=-IC��ΠE10����85���=,tqNl (������ ���i-�� b'�Ꮻ��9k��z� ����/����� ׷�󺚆��J� 0Yk���u�^��KcQ�M�MO�� }f�m0l��.�4�|��@�K�yQ߽c�i�Qq�8~����>O.>�{b� ����� w�Ԭx9q��5t J U-��so�]���mO���4M��/..�t[tz7����ˇ����a���Ӭ�KJ��Ȟ.#��t�P�����[�M��y�s��ղH�wbk���� �K>.K�:�I�G�EÃ��%r���K�J�J���5$�O��/����0�_U�v�I��yu��L�g�޿�)�Q�rGf��?�q��0<O��~���ry����h������ƹsY����׫NѦ<�z��5h���'�_M����pG~�H��P�Xp�{��+��c>_C�� PR ���:{�W���$g瞖�nX%y��8ps���/Uq�������M��*N �'oG�L�*T�Z���T���J��q�s%͏f�Q�z�R���3��������7��;�Fӟ�>��}�U�'���| ��4S�)۬qa��V9���d�.i�.T�=E��}�MCI��BhZ����:�r��5V�,Qs+$�L�a�7.������jna����y�u�R�I��Ϊ�@�U�6�t�&�fZ��&44<��;54V��%�C��#,��,�w���I��dR(G�������������������������5+ �7^���o2�hh�a�U���o�4�k'E��0 ����F�����Z�An� ��Ձ9so�� up���Ê��?E��.����@�ƹ�7{C�A>|�ѧ��Aώ�k�6 X͏7��Bb�9�W5ۤ��A�Ǐ��Yi�ŀc\�{�h���� 4��������������������������(� U�MI���wf�F�@@(dE��j�Z���Sp� @.=J�y�H��[e��t��$���#gg͐y��Qi���^,�Į��)-��Tg%��N���< �A�0�I��"�h�5'��P ��Thy��l�n�մ� �hR���L+��������&��������� 1!"0ABQ����?�tʡKoM�T&Q4F��� �����EV�b��bq2�i����$�)i����ۈ�t'��ض��K�%��8)p��чʖ6�f,�[�5������Ȫ���|�/T4�����NM�<O��<���c�O�;�l��V�ȭ1qhK�KL�K�4g��C����7Hϕ���I�n���)m�dŻ����=Q�nj�'�䌚C�|�����GH̱�(b��Z� ii��. o��f��9�7�I�aI�1i��P�<��fK#��R+��I��[u\�E��C���%�L�lE�}N�&��K�x��Zb��3� J��l����!�Sw������G"/O�1u�+T-� ��B�!�^�'-�P��3E|,������/aeɅ�n�̌�M�����Ƭ�_D��b�n�ⅲr�TbNR"�(�xԌ�IA>����,��J4�C4'�/K����E[��9z���f)�-�[B#����E!-���m��(�<2�уʎD����¶��%�����d�f&��4��z�<�I1��-d���CFL_��(Y�(;L�|�:L�B�zb\d$J��<h�HX�QD�1cR�QKr�l�xJF\�%�TY�2i I��E�=�r���a�.,��'�J̘\D�Ly�dOVY{��$���ḟ�I�!shKm���t��Heh�;��"��.7�=�! GꈣEm�3CnM�=��|�yR��-�d¥t��� J Ș�����}���bʤ6'�ԥQl���g8ŏ���~����%�dQ�1O� �jN��܅�ި������0�_Yz|q�EY9�3Nj;=E�������޿�R�Ƌ�8��cV,i1��f|��f�9��'�,�:�b��"�!�Z���c�.���x�����C�7Eސ��������3 [�Ŷ���UK���T���{fY#b��}���<HɁ����f�9�) |(Ɏ�"�%Š�<v�C�|^���#.�%Q����[˕c�0e��j�'�Qm��R#5*�zd[�����&%#&+���DG5̳y�I�1�E�ʳ7�v�d'��tc�P����֭ ���;�J<p�J��e���g�����Y�r��:d��K�.h���I�Ȥ��^���T�[e 0�0���j!H�7�0�I�HPQH�4����8)|[v��&&��_d��Z��Z�p�!�(&e���H� H���J��pQ���Ӑ�%�2! t���C%���4fΠ�[�M�9j���6$vG�=���T!��(h�3�d>��e��c��;dc��´Ћ�C#���,f/)M֓�Ly���M1=Ȳ/m��j��S'7�%.�ÍA!�&>b+i[:#ˋ��ƃsT$�Ʌ2P�He�HdR�gc��ؙz�;�L�W׻�/MLl������a��-J FL- ����؋�Ս �f�c��;bT��w��Š/mY� �J$2��ȥ����Xĉ$��G��ެl_Y� +I��uL�7$�s�0��N&<����jƫK�����ݑT��B����5fL���C3��m�KI[lOMil���L\���ܔ#4O��(��'ެ�^�tz��+|�~����I����O��f�Ժz�q��1�bC�T"���=Nn,�#4O��&<�ZL��m�L�,���OK�H�[�eZ�f�O���M�HL\��g�-="Dvֿ���(��������1 !A"0a#3BQR���?�dϸ����0^���k<��q�� m��:ʟ�\6����A������bu���W�5dD�飽 �k�����"'Y�Q��Ȋ��a���A�;�{Ġy0κh"s�R��l��oЕ�$17��f�<t��B5�62<��V�����Qҷ1����#c2#Gȁ�фv�ٳ��F�8Aq?&�/E�Pa.F�\��<��P5���Cy���������Bh\f�z���;ɐ,���"l���I���ؽ���G � @.*)T�q{�Y؄wa�(� �ql�< +�+��Wc'�b\� %� X�����L&�LY��cT48��?���k�{3;�� �3'�m&?�d=/�W�ߑ��rb/H�5��U��a?��:���FT��n�1���?C aDL���z�b��>/�=�q��C�́[�.F��s��0����@{������%��������� !1A0"Rq���?���� �7��P�^R�KW1r#����us��:��e�D�G �E�'��3#ЇTvRbu�؈�}��4v;{z�P9:��稬"��p����E��uiN�&@@ +�QhG��� ���D�F������4�w> �w>3����#J��Qo���֞��VP�y��xK�YD�Q�C�50<4��,��� ���寍�ۣ<��Q��Z��ىЈ��cN��2�e~��Qsҹsg��Ź� H>*�P�M�1� �B4�ƕ/a�k\���FB5�Z��5FoQ�5�QBq�Șг@(A�e'�`˵��V'�:���fTLWV2�����zL�](O�Q��5����� �z���2��B��d��{@��k{Cbf)������5�ip��VSQ�]n:��ڢ]���� ------MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io---- Content-Type: image/png Content-Transfer-Encoding: binary Content-Location: https://lh3.google.com/u/0/d/1l0frEmdXyaOzgdSdyzEFLxHRz8nZsme1xNv0ZMbsDI0=w100

�PNG ��� IHDR���d�������H_:����sBIT��O���mIDATx��׽n1@�k{�*����" �X�<A���P�(HBA��/%��Hl6�kg,y���L��П��{W���c��0,3����G�K,��7�<�}��r�]�=��Q|�c��l�o������m�q�����g�{���2���vY��˚���1���o'wh��Jm���f�k[6�.�d��}� 7x�eأ�ٷ=��b�5Y����)V۲�u�:_��pF�$Vdf��'~f�}���u���͟��������DZJ-���PJk��2= #w{�������m�n���;����o�8�w��;�����������)����ۯ�?�:]�ki�>���c�fEd_w�����a�ү���0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X���c��0,�X�3S�Ί�ۀ����IEND�B� ------MultipartBoundary--J8xKpN36lJfxaKBGhSRMsLjDmcVpLBb0Qx2TQla6Io------

--00000000000021c301062a8f6eed--

Xtgdominated avatar Dec 31 '24 11:12 Xtgdominated

@nikola-jokic Hi 😢

kahirokunn avatar Jan 16 '25 05:01 kahirokunn

Hey @kahirokunn, sorry for the delay!

Thinking about this change, we might want to do this for all resources. For example, EphemeralRunnerSet is owned by the AutoscalingRunnerSet, then each EphemeralRunner is owned by the EphemeralRunnerSet, and each runner pod is owned by the EphemeralRunner. Furthermore, we should also set the UID.

One suggestion, can we use GroupVersionKind.String() instead of hardcoding it?

Would you be interested in applying these changes and testing them out?

nikola-jokic avatar Jan 16 '25 08:01 nikola-jokic

Hi @nikola-jokic,

Thank you for your suggestion! I've implemented the changes and tested them out, but I've encountered an important limitation with Kubernetes OwnerReferences.

The Issue

OwnerReferences in Kubernetes cannot cross namespace boundaries. In the current architecture:

  • AutoscalingRunnerSet exists in user namespaces
  • AutoscalingListener is created in the controller's namespace (ControllerNamespace)

This means we can't establish a proper OwnerReference between these resources across different namespaces.

Verification

I've built and tested a custom image with these changes (published at quay.io/kahirokunn/gha-runner-scale-set:0.10.1) and documented the integration with ArgoCD here: https://dev.to/kahirokunn/actions-runner-controller-and-argocd-integration-guide-3a81 The test confirms that the cross-namespace OwnerReference doesn't work as expected.

Possible Solutions

I see three potential approaches to address this:

  1. Make AutoscalingRunnerSet cluster-scoped: This would allow it to own resources across namespaces, but it's a significant architectural change.

  2. Create AutoscalingListener in the same namespace as AutoscalingRunnerSet: This would enable proper OwnerReferences, but would require changing how the controller manages these resources.

  3. Don't use OwnerReferences for cross-namespace relationships: Instead, use labels or other mechanisms to track relationships between resources in different namespaces.

I believe option 2 or 3 might be more practical for the current architecture. Option 2 would require changing where AutoscalingListener is created, while option 3 would maintain the current design but use alternative tracking mechanisms.

What are your thoughts on these approaches? I'm happy to continue working on this based on your preferred direction.

Best regards, Kahiro

kahirokunn avatar Mar 06 '25 08:03 kahirokunn

Hey @kahirokunn,

First of all, I want to thank you for doing all this hard work! Since the owner reference has a namespace limitation, and we have to create resources in different namespaces, I'm wondering if this comment from ArgoCD maintainer would solve it without setting the owner reference completely.

I have also created a PR allowing custom annotations which should be applied to top level resources: https://github.com/actions/actions-runner-controller/pull/3934. Based on the previous work done here, custom annotations should resolve the issue.

As a followup, with the namespace issue, the only thing we can do properly that would make sense now is set the listener pod owner to the AutoscalingListener, and the runner pod owner to the ephemeral runner. If we proceed with that approach, we should probably set the owner reference to all resources created for the AutoscalingListener, and the EphemeralRunner.

Right now, can you please let us know if the custom annotations/labels is good enough approach?

nikola-jokic avatar Mar 06 '25 11:03 nikola-jokic

Hi @nikola-jokic ,

Yes, that approach works perfectly for me. Regarding the owner reference, I want to point out that everything has been fully implemented, tested, and verified in this PR. I believe all necessary preparations for merging are complete. You can reproduce the behavior by following the guide here: https://dev.to/kahirokunn/actions-runner-controller-and-argocd-integration-guide-3a81.

I've been working on this since the early stages, so I'd really appreciate it if you could consider merging my changes related to the OwnerReference. It would mean a lot to me!

Thanks for your consideration,

Best regards, Kahiro

kahirokunn avatar Mar 07 '25 00:03 kahirokunn

Hello @kahirokunn,

I'm happy to see that my code helped you improve your own PR. May I suggest you to also use ptr.To from k8s.io/utils/ptr (https://pkg.go.dev/k8s.io/utils/ptr#To) rather than your had-hoc function ?

Regarding this solution:

"Create AutoscalingListener in the same namespace as AutoscalingRunnerSet: This would enable proper OwnerReferences, but would require changing how the controller manages these resources."

I can confirm that it run without any issue since two months in my environment.

I hope to see a solution merged soon, I will keep my own PR (https://github.com/actions/actions-runner-controller/pull/3902) open until then. Feel free to inspire yourself from it if needed.

Best Regards.

foyerunix avatar Mar 18 '25 11:03 foyerunix

"Create AutoscalingListener in the same namespace as AutoscalingRunnerSet: This would enable proper OwnerReferences, but would require changing how the controller manages these resources."

https://github.com/actions/actions-runner-controller/pull/3575#issuecomment-2703191490

Yes, we have thought about this, but if users have set NetworkPolicy etc., an error will occur, so we think it will be a breaking change. Therefore, we can either do it gradually or all at once, but we think that the most user-friendly and fastest way is to merge it as it is now and then do additional work in a phased release.

kahirokunn avatar Mar 18 '25 12:03 kahirokunn