Skip to content

Commit

Permalink
Deployed fbefcca with MkDocs version: 1.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
akshaysngupta committed Sep 13, 2024
1 parent e6226bf commit 1a47490
Show file tree
Hide file tree
Showing 35 changed files with 2,276 additions and 2,121 deletions.
1,338 changes: 736 additions & 602 deletions annotations/index.html

Large diffs are not rendered by default.

139 changes: 75 additions & 64 deletions developers/build/index.html

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions developers/design/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -254,23 +254,23 @@ <h3 id="2-worker">2. Worker</h3>
<h3 id="3-application-gateway-config-builder">3. Application Gateway Config Builder</h3>
<p>This <a href="../../pkg/appgw/configbuilder.go">component</a> is responsible for using the information in the local kubernetes cache and generating the corresponding Application Gateway configuration as an output.</p>
<p>Worker invokes the <code>Build</code> on this component which then generates various gateways sub-resources starting from leaf sub-resources like <code>probes</code>, <code>http settings</code> up to the <code>request routing rules</code>.</p>
<p><code>go
func (c *appGwConfigBuilder) Build(cbCtx *ConfigBuilderContext) (*n.ApplicationGateway, error) {
...
err := c.HealthProbesCollection(cbCtx)
...
err = c.BackendHTTPSettingsCollection(cbCtx)
...
err = c.BackendAddressPools(cbCtx)
...
// generates SSL certificate, frontend ports and http listeners
err = c.Listeners(cbCtx)
...
// generates URL path maps and request routing rules
err = c.RequestRoutingRules(cbCtx)
...
return &amp;c.appGw, nil
}</code></p>
<div class="highlight"><pre><span></span><code><span class="kd">func</span><span class="w"> </span><span class="p">(</span><span class="nx">c</span><span class="w"> </span><span class="o">*</span><span class="nx">appGwConfigBuilder</span><span class="p">)</span><span class="w"> </span><span class="nx">Build</span><span class="p">(</span><span class="nx">cbCtx</span><span class="w"> </span><span class="o">*</span><span class="nx">ConfigBuilderContext</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="nx">n</span><span class="p">.</span><span class="nx">ApplicationGateway</span><span class="p">,</span><span class="w"> </span><span class="kt">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="o">...</span>
<span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">HealthProbesCollection</span><span class="p">(</span><span class="nx">cbCtx</span><span class="p">)</span>
<span class="o">...</span>
<span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">BackendHTTPSettingsCollection</span><span class="p">(</span><span class="nx">cbCtx</span><span class="p">)</span>
<span class="o">...</span>
<span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">BackendAddressPools</span><span class="p">(</span><span class="nx">cbCtx</span><span class="p">)</span>
<span class="o">...</span>
<span class="w"> </span><span class="c1">// generates SSL certificate, frontend ports and http listeners</span>
<span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">Listeners</span><span class="p">(</span><span class="nx">cbCtx</span><span class="p">)</span>
<span class="o">...</span>
<span class="w"> </span><span class="c1">// generates URL path maps and request routing rules</span>
<span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">RequestRoutingRules</span><span class="p">(</span><span class="nx">cbCtx</span><span class="p">)</span>
<span class="o">...</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">&amp;</span><span class="nx">c</span><span class="p">.</span><span class="nx">appGw</span><span class="p">,</span><span class="w"> </span><span class="kc">nil</span>
<span class="p">}</span>
</code></pre></div>

</div>
</div>
Expand Down
20 changes: 10 additions & 10 deletions developers/nightly/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -200,25 +200,25 @@ <h1 id="install-the-latest-nightly-build">Install the latest nightly build</h1>
<ol>
<li>
<p>Add the nightly helm repository</p>
<p><code>bash
helm repo add agic-nightly https://appgwingress.blob.core.windows.net/ingress-azure-helm-package-staging/
helm repo update</code></p>
<div class="highlight"><pre><span></span><code>helm<span class="w"> </span>repo<span class="w"> </span>add<span class="w"> </span>agic-nightly<span class="w"> </span>https://appgwingress.blob.core.windows.net/ingress-azure-helm-package-staging/
helm<span class="w"> </span>repo<span class="w"> </span>update
</code></pre></div>
</li>
<li>
<p>Check the available version</p>
<p><strong>Latest version</strong>: <img alt="nightly release (latest by date)" src="https://img.shields.io/badge/dynamic/yaml?url=https://appgwingress.blob.core.windows.net/ingress-azure-helm-package-staging/index.yaml&amp;label=nightly&amp;query=entries[%22ingress-azure%22][0].appVersion&amp;color=green" /> </p>
<p>or </p>
<p>You can look up the version in the repo using helm.</p>
<p><code>bash
helm search repo agic-nightly</code></p>
<div class="highlight"><pre><span></span><code>helm<span class="w"> </span>search<span class="w"> </span>repo<span class="w"> </span>agic-nightly
</code></pre></div>
</li>
<li>
<p>Install using the same helm command by using the staging repository.</p>
<p><code>bash
helm install ingress-azure \
-f helm-config.yaml \
agic-nightly/ingress-azure \
--version &lt;version&gt;</code></p>
<div class="highlight"><pre><span></span><code>helm<span class="w"> </span>install<span class="w"> </span>ingress-azure<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-f<span class="w"> </span>helm-config.yaml<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>agic-nightly/ingress-azure<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--version<span class="w"> </span>&lt;version&gt;
</code></pre></div>
</li>
</ol>

Expand Down
51 changes: 25 additions & 26 deletions developers/test/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -211,43 +211,42 @@ <h2 id="unit-tests">Unit Tests</h2>
<p>As is the convention in go, unit tests for the <code>.go</code> file you want to test live in the same folder and end with <code>_test.go</code>.
We use the <code>ginkgo</code>/<code>gomega</code> testing framework for writing the tests.</p>
<p>To execute the tests, use</p>
<p><code>bash
go test -v -tags unittest ./...</code></p>
<div class="highlight"><pre><span></span><code>go<span class="w"> </span><span class="nb">test</span><span class="w"> </span>-v<span class="w"> </span>-tags<span class="w"> </span>unittest<span class="w"> </span>./...
</code></pre></div>
<h2 id="e2e-tests">E2E Tests</h2>
<p>E2E tests are going to test the specific scenarios with a real AKS and App Gateway setup with AGIC installed on it.</p>
<p>E2E tests are automatically run every day 3 AM in the morning using an <a href="https://dev.azure.com/azure/application-gateway-kubernetes-ingress/_release?_a=releases&amp;view=mine&amp;definitionId=14">E2E pipeline</a>.</p>
<p>If you have cluster with AGIC installed, you can run e2e tests simply by:</p>
<p><code>bash
go test -v -tags e2e ./...</code></p>
<div class="highlight"><pre><span></span><code>go<span class="w"> </span><span class="nb">test</span><span class="w"> </span>-v<span class="w"> </span>-tags<span class="w"> </span>e2e<span class="w"> </span>./...
</code></pre></div>
<p>You can also execute the <code>run-e2e.sh</code> which is used in the E2E pipeline to invoke the tests. This script will install AGIC with the version provided.</p>
<p>```bash
export version="<agic-version>"
export applicationGatewayId="<resource-id>"
export identityResourceId="<agic-identity-resource-id>"
export identityClientId="<agic-identity-client-id>"</p>
<p>./scripts/e2e/run-e2e.sh
```</p>
<div class="highlight"><pre><span></span><code><span class="nb">export</span><span class="w"> </span><span class="nv">version</span><span class="o">=</span><span class="s2">&quot;&lt;agic-version&gt;&quot;</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">applicationGatewayId</span><span class="o">=</span><span class="s2">&quot;&lt;resource-id&gt;&quot;</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">identityResourceId</span><span class="o">=</span><span class="s2">&quot;&lt;agic-identity-resource-id&gt;&quot;</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">identityClientId</span><span class="o">=</span><span class="s2">&quot;&lt;agic-identity-client-id&gt;&quot;</span>

./scripts/e2e/run-e2e.sh
</code></pre></div>
<h2 id="testing-tips">Testing Tips</h2>
<ul>
<li>
<p>If you just want to run a specific set of tests, then an easy way is add <code>F</code> (Focus) to the <code>It</code>, <code>Context</code>, <code>Describe</code> directive in the test.
For example:</p>
<p>```go
FContext("Test obtaining a single certificate for an existing host", func() {
cb := newConfigBuilderFixture(nil)
ingress := tests.NewIngressFixture()
hostnameSecretIDMap := cb.newHostToSecretMap(ingress)
actualSecret, actualSecretID := cb.getCertificate(ingress, host1, hostnameSecretIDMap)</p>
<pre><code>It("should have generated the expected secret", func() {
Expect(*actualSecret).To(Equal("eHl6"))
})
<div class="highlight"><pre><span></span><code><span class="nx">FContext</span><span class="p">(</span><span class="s">&quot;Test obtaining a single certificate for an existing host&quot;</span><span class="p">,</span><span class="w"> </span><span class="kd">func</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">cb</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">newConfigBuilderFixture</span><span class="p">(</span><span class="kc">nil</span><span class="p">)</span>
<span class="w"> </span><span class="nx">ingress</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">tests</span><span class="p">.</span><span class="nx">NewIngressFixture</span><span class="p">()</span>
<span class="w"> </span><span class="nx">hostnameSecretIDMap</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">cb</span><span class="p">.</span><span class="nx">newHostToSecretMap</span><span class="p">(</span><span class="nx">ingress</span><span class="p">)</span>
<span class="w"> </span><span class="nx">actualSecret</span><span class="p">,</span><span class="w"> </span><span class="nx">actualSecretID</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">cb</span><span class="p">.</span><span class="nx">getCertificate</span><span class="p">(</span><span class="nx">ingress</span><span class="p">,</span><span class="w"> </span><span class="nx">host1</span><span class="p">,</span><span class="w"> </span><span class="nx">hostnameSecretIDMap</span><span class="p">)</span>

<span class="w"> </span><span class="nx">It</span><span class="p">(</span><span class="s">&quot;should have generated the expected secret&quot;</span><span class="p">,</span><span class="w"> </span><span class="kd">func</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">Expect</span><span class="p">(</span><span class="o">*</span><span class="nx">actualSecret</span><span class="p">).</span><span class="nx">To</span><span class="p">(</span><span class="nx">Equal</span><span class="p">(</span><span class="s">&quot;eHl6&quot;</span><span class="p">))</span>
<span class="w"> </span><span class="p">})</span>

It("should have generated the correct secretID struct", func() {
Expect(*actualSecretID).To(Equal(expectedSecret))
})
</code></pre>
<p>})
```</p>
<span class="w"> </span><span class="nx">It</span><span class="p">(</span><span class="s">&quot;should have generated the correct secretID struct&quot;</span><span class="p">,</span><span class="w"> </span><span class="kd">func</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">Expect</span><span class="p">(</span><span class="o">*</span><span class="nx">actualSecretID</span><span class="p">).</span><span class="nx">To</span><span class="p">(</span><span class="nx">Equal</span><span class="p">(</span><span class="nx">expectedSecret</span><span class="p">))</span>
<span class="w"> </span><span class="p">})</span>
<span class="p">})</span>
</code></pre></div>
</li>
</ul>

Expand Down
14 changes: 7 additions & 7 deletions features/agic-reconcile/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -209,13 +209,13 @@ <h3 id="configure-inside-helm-valuesyaml">Configure inside helm values.yaml</h3>
Acceptable values are between 30 and 300.</p>
<h3 id="configure-from-helm-command-line">Configure from helm command line</h3>
<p>Configure from helm install command(first time install) and helm upgrade command, helm version is v3</p>
<p>```bash</p>
<h1 id="helm-fresh-install">helm fresh install</h1>
<p>helm intall <releaseName> -f helm-config.yaml oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --version 1.2.0-rc3 --set reconcilePeriodSeconds=30 </p>
<h1 id="help-upgrade">help upgrade</h1>
<h1 id="-reuse-values-when-upgrading-reuse-the-last-releases-values-and-merge-in-any-overrides-from-the-command-line-via-set-and-f">--reuse-values, when upgrading, reuse the last release's values and merge in any overrides from the command line via --set and -f.</h1>
<p>helm upgrade <releaseName> oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --reuse-values --version 1.2.0-rc3 --set reconcilePeriodSeconds=30
```</p>
<div class="highlight"><pre><span></span><code><span class="c1"># helm fresh install</span>
helm<span class="w"> </span>intall<span class="w"> </span>&lt;releaseName&gt;<span class="w"> </span>-f<span class="w"> </span>helm-config.yaml<span class="w"> </span>oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure<span class="w"> </span>--version<span class="w"> </span><span class="m">1</span>.2.0-rc3<span class="w"> </span>--set<span class="w"> </span><span class="nv">reconcilePeriodSeconds</span><span class="o">=</span><span class="m">30</span><span class="w"> </span>

<span class="c1"># help upgrade</span>
<span class="c1"># --reuse-values, when upgrading, reuse the last release&#39;s values and merge in any overrides from the command line via --set and -f.</span>
helm<span class="w"> </span>upgrade<span class="w"> </span>&lt;releaseName&gt;<span class="w"> </span>oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure<span class="w"> </span>--reuse-values<span class="w"> </span>--version<span class="w"> </span><span class="m">1</span>.2.0-rc3<span class="w"> </span>--set<span class="w"> </span><span class="nv">reconcilePeriodSeconds</span><span class="o">=</span><span class="m">30</span>
</code></pre></div>

</div>
</div>
Expand Down
Loading

0 comments on commit 1a47490

Please sign in to comment.