Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
185 commits
Select commit Hold shift + click to select a range
652dd36
Support for acls with >255 IPs
tchinmai7 Feb 16, 2024
a6bd616
fix loop var, handle case where len >25
tchinmai7 Feb 16, 2024
dfe239a
fix adding labels to node
Feb 20, 2024
2e2a2fd
Merge pull request #181 from linode/fix-node-label-update
rahulait Feb 21, 2024
53a5848
Merge pull request #180 from linode/feat/enhanced-firewall
tchinmai7 Feb 29, 2024
0a3730f
refactor into distinct packages to prep for adding firewall support t…
AshleyDumaine Mar 8, 2024
0295e50
Merge pull request #186 from linode/fw-nodes
AshleyDumaine Mar 11, 2024
acb82b8
feat: add route-controller to linode ccm (#184)
rahulait Mar 13, 2024
cab85c7
disable conn-throttle by default (#189)
tchinmai7 Mar 14, 2024
918806c
don't error out with empty vpc name if routecontroller is disabled (#…
rahulait Mar 14, 2024
9b6ebcf
Auto add private ip annotation to nodes (#182)
rahulait Mar 21, 2024
2728144
revert PR 184, PR 190 and PR 182
Mar 21, 2024
1b6fb3b
allow linodego-debug to be set by helm
Mar 21, 2024
5cb4d18
Merge pull request #195 from linode/revert-route-controller
tchinmai7 Mar 21, 2024
b7ecd57
Use Go 1.22 HTTP router in fake API (#173)
okokes-akamai Apr 8, 2024
4899055
Fixing the nodebalancer config rebuilds to include ids of preexisting…
akaokunc Apr 9, 2024
939bdb0
fix-readme: firewall-acl invalid json
Michkov Apr 12, 2024
10276f1
Merge pull request #203 from linode/fix-readme-firewall-acl
Michkov Apr 12, 2024
cb5d740
Lookup linode by IP instead if label or providerID do not match (#198)
eljohnson92 Apr 17, 2024
1e9005a
Adding --webhook-secure-port=0 to helmchart since it is needed workar…
akaokunc Apr 19, 2024
e4a2ad5
feat: Add route_controller to linode CCM (#199)
rahulait Apr 24, 2024
488d8e5
Fix Test Badge (#205)
zliang-akamai Apr 24, 2024
c1ad3ad
Set toolchain go1.22.2 go.mod
Apr 26, 2024
3332b2a
Merge pull request #206 from linode/go-toolchain
mhmxs Apr 29, 2024
69975b4
update client to work for v4beta API
AshleyDumaine May 7, 2024
a3d86de
Merge pull request #210 from linode/api-version
AshleyDumaine May 7, 2024
46c52d8
handle LoadBalancer deletion if service type changes to no longer be …
AshleyDumaine May 21, 2024
58731f5
Merge pull request #211 from linode/handle-type-change
AshleyDumaine May 21, 2024
72421ec
Update linodego (#212)
okokes-akamai May 23, 2024
bb92185
add support for cilium-backed loadbalancers
AshleyDumaine Apr 29, 2024
42c4b26
create cilium BGPPeeringPolicy automatically
AshleyDumaine May 13, 2024
4d68700
check cilium lb pools for ips to share, ensure new nodes get ips shared
AshleyDumaine May 14, 2024
aae6701
fix tests
AshleyDumaine May 15, 2024
b3a8cff
can only handle one kind of LoadBalancerClass in a cluster due to clo…
AshleyDumaine May 16, 2024
25b9c4e
use ptr since k8s.io/utils already exists
AshleyDumaine May 16, 2024
fdedb7f
make the ip-holder per region
AshleyDumaine May 20, 2024
e43350d
update readme
AshleyDumaine May 21, 2024
acebeba
add more comments
AshleyDumaine May 23, 2024
74db96c
move LBPool error check up
AshleyDumaine May 23, 2024
836eec0
Merge pull request #208 from linode/shared-ip
AshleyDumaine Jun 3, 2024
268bf3c
update helm templating for loadBalancerType
AshleyDumaine Jun 4, 2024
4ad57e6
Merge pull request #213 from linode/helm-template
AshleyDumaine Jun 4, 2024
860a66f
fix: remove firewall device by device ID not entity ID (#214)
rl0nergan Jun 6, 2024
0aa195c
don't try to share IPs that may have been removed on the ip-holder ou…
AshleyDumaine Jun 6, 2024
e417a32
fix tests and a bug
AshleyDumaine Jun 6, 2024
5439d9f
Merge pull request #215 from linode/ip-holder-ip-check
AshleyDumaine Jun 7, 2024
71e7855
fix: use tag ref for helm-release so the release workflow can start i…
rl0nergan Jun 7, 2024
44c8f84
include ipv6 address for node IPs
AshleyDumaine Jun 17, 2024
43db50f
need to trim /128 on ipv6 addresses
AshleyDumaine Jun 17, 2024
4cda99a
Merge pull request #217 from linode/dual-stack-support
AshleyDumaine Jun 20, 2024
6a4e482
add timeout for linodego http client (#219)
rahulait Jun 20, 2024
9ed6a0e
update linodego to v1.36.2 (#222)
rahulait Jul 10, 2024
0c600bb
Add support for codecov reporting (#223)
eljohnson92 Jul 11, 2024
7bc2eea
feat: Support high performance ingress with no label selector
bcmendoza280 Aug 8, 2024
b00cd63
fix: Default BGP peering for worker nodes
bcmendoza280 Aug 12, 2024
af045d1
feat: Support high performance ingress with no label selector
bcmendoza820 Aug 12, 2024
f2b7e2a
fix: resync and add automatic resync period (#225)
shanduur Aug 15, 2024
80ccbba
Do not use a custom http.Transport due to Resty incompatibility (#227)
okokes-akamai Aug 15, 2024
6155084
udpate helm chart for excluding bgp node selector
AshleyDumaine Aug 29, 2024
a13fc1c
Merge pull request #228 from linode/helm-chart-update
AshleyDumaine Aug 29, 2024
7137f14
don't assume the IP holder immediately reflects the new IP to share
AshleyDumaine Aug 29, 2024
708ee98
Merge pull request #229 from linode/shared-ip-check-fix
AshleyDumaine Aug 29, 2024
c0d1520
log IPs of nodes
rpotla-akam Sep 19, 2024
373793c
log nodes when setting IP address
rpotla-akam Sep 20, 2024
95aebc6
log instancemetadata
rpotla-akam Sep 20, 2024
0568585
[fix] getExistingSharedIPs should get Public IPs from the holder
dthorsen Sep 20, 2024
76dea77
Merge pull request #230 from rammanoj/log-bug-fix
rammanoj Sep 24, 2024
4c94969
Allow mark internal network as external
Michkov Sep 25, 2024
0d0f7e5
use net.IPNet and add test
Michkov Sep 25, 2024
fab127d
fix empty value in readme
Michkov Sep 26, 2024
291e46f
Merge pull request #235 from linode/external-network-definition
Michkov Sep 26, 2024
42e3341
Merge pull request #232 from dthorsen/fix-getExistingSharedIPs
dthorsen Oct 1, 2024
b31756e
handle cases where the internal-ip is already set (e.g. kubelet)
AshleyDumaine Oct 1, 2024
ff4c10f
add test for existing internal IP on node
AshleyDumaine Oct 2, 2024
d37c425
Merge pull request #236 from linode/internal-ip
AshleyDumaine Oct 2, 2024
0611c45
remove deprecated types
AshleyDumaine Oct 4, 2024
54beb05
Merge pull request #237 from linode/paged-response
AshleyDumaine Oct 7, 2024
f4fdb50
make volume and volume mounts configurable through helm (#238)
eljohnson92 Oct 21, 2024
1b046af
fix: Dockerfile to reduce vulnerabilities (#239)
unn Oct 30, 2024
165f9d3
add support for devbox
AshleyDumaine Nov 8, 2024
3dd71d0
Merge pull request #242 from linode/devbox
AshleyDumaine Nov 13, 2024
dc407dd
remove duplicate ip's to avoid patching error (#243)
rahulait Nov 13, 2024
e3c2045
manage routes for instances in multiple vpcs in a single region (#241)
rahulait Nov 14, 2024
1926559
Return back order to follow documentation page
mjurosz Nov 15, 2024
be99548
Add missing DCs that are documented as having "IP Sharing" feature
mjurosz Nov 15, 2024
f67f48b
Merge pull request #244 from mjurosz/LKE-5839-update-dcs
mjurosz Nov 15, 2024
9212805
fix expired cert (#245)
rahulait Nov 15, 2024
66afcae
[fix] : fix internal ip ordering (#247)
rahulait Nov 21, 2024
b14d4a1
create ip holder per cluster + tests, update docs
rosskirkpat Nov 18, 2024
3510bc4
Merge pull request #246 from linode/lke5823-ip-holder-per-cluster
rosskirkpat Nov 26, 2024
b4ee2af
[repo-ci-improvement] : update GHA to run e2e tests (#248)
rahulait Nov 27, 2024
5426f27
[fix] : fix template for linode ccm (#251)
rahulait Dec 4, 2024
155acd1
[testing] : convert existing e2e tests to chainsaw tests (#253)
rahulait Dec 11, 2024
f423ffe
add dependabot support (#254)
rahulait Dec 11, 2024
10a3321
Bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#255)
dependabot[bot] Dec 11, 2024
7b72542
:seedling: Bump golang.org/x/crypto from 0.24.0 to 0.31.0 (#268)
dependabot[bot] Dec 11, 2024
b1a0fcd
:seedling: Bump k8s.io/klog/v2 in the kubernetes group (#262)
dependabot[bot] Dec 11, 2024
b3845d5
:seedling: Bump helm/chart-testing-action from 2.6.0 to 2.6.1 (#260)
dependabot[bot] Dec 11, 2024
200cd03
:seedling: Bump actions/setup-python from 4 to 5 (#259)
dependabot[bot] Dec 11, 2024
b9a9dd7
:seedling: Bump docker/build-push-action from 5 to 6 (#258)
dependabot[bot] Dec 11, 2024
8af60b6
:seedling: Bump azure/setup-helm from 3 to 4 (#256)
dependabot[bot] Dec 11, 2024
75fd9c4
:seedling: Bump go.opentelemetry.io/contrib/instrumentation/google.go…
dependabot[bot] Dec 12, 2024
ccfbf05
:seedling: Bump softprops/action-gh-release from 1 to 2 (#257)
dependabot[bot] Dec 12, 2024
2375179
:seedling: Bump alpine from 3.20.3 to 3.21.0 (#261)
dependabot[bot] Dec 12, 2024
9511657
:seedling: Bump github.com/getsentry/sentry-go from 0.4.0 to 0.30.0 (…
dependabot[bot] Dec 12, 2024
99e221f
add release-drafter to ccm (#269)
rahulait Dec 12, 2024
7d15844
bump golang to 1.23 (#270)
rahulait Dec 12, 2024
8124d66
update linodego to v1.43.0 (#271)
rahulait Dec 12, 2024
3f99b0f
:seedling: Bump codecov/codecov-action from 4 to 5 (#275)
dependabot[bot] Dec 16, 2024
476303f
:seedling: Bump actions/checkout from 2.3.4 to 4.2.2 (#274)
dependabot[bot] Dec 16, 2024
39c6292
:seedling: Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#273)
dependabot[bot] Dec 16, 2024
a82417c
[deps] : update cilium and k8s dependencies (#272)
rahulait Dec 17, 2024
6b6064a
pin golangci-lint version (#278)
rahulait Dec 18, 2024
162a835
[fix] : use single copy of instances cache (#276)
rahulait Dec 18, 2024
e3e4997
Add option for global NodeBalancer tags (Closes #220) (#221)
glennpratt Dec 18, 2024
51eaadd
[testing] E2E test case for VPC route controller (#280)
komer3 Dec 19, 2024
9d6203b
[test] : add unittests for vpc.go file (#281)
rahulait Dec 19, 2024
07dda6e
:seedling: Bump github.com/linode/linodego from 1.43.0 to 1.44.0 (#283)
dependabot[bot] Dec 23, 2024
b1b9af7
:seedling: Bump github.com/cilium/cilium from 1.16.4 to 1.16.5 (#282)
dependabot[bot] Dec 23, 2024
24f1387
add unittest for service controller (#285)
rahulait Dec 26, 2024
1e46ca0
[test] : add unittests for node_controller (#284)
rahulait Dec 26, 2024
57c5261
:seedling: Bump github.com/getsentry/sentry-go from 0.30.0 to 0.31.1 …
dependabot[bot] Jan 6, 2025
8c67954
fix random failures due to curl error (#287)
rahulait Jan 6, 2025
ab98d88
[test] : add more unittests to increase code-coverage (#286)
rahulait Jan 6, 2025
1b2351c
[feat] add support for custom BGP environment overrides via environme…
eljohnson92 Jan 9, 2025
b6af5a7
Add Cilium BGP LB e2e test
komer3 Jan 9, 2025
bd9cb3f
Makefile fix
komer3 Jan 9, 2025
104f1a5
Adding nanode cleanup
komer3 Jan 9, 2025
275cfc0
nit fix: adding eod
komer3 Jan 9, 2025
bf4ed94
Adding right kubeconfig path for patchs in Makefile
komer3 Jan 9, 2025
8c81c32
ignore if env vars are empty (#289)
rahulait Jan 9, 2025
4efe366
fix up the test
komer3 Jan 10, 2025
0359ebd
debug
komer3 Jan 10, 2025
fce1d2a
Handle multiple nodes for labeling
komer3 Jan 10, 2025
827b153
fix?
komer3 Jan 10, 2025
b1ad112
Syntax fix
komer3 Jan 10, 2025
422b7ca
fix?
komer3 Jan 10, 2025
fa28e56
test
komer3 Jan 10, 2025
6190572
fix
komer3 Jan 10, 2025
4c3ef44
Using bash/shell script to patch to make thing reabable and fix issue…
komer3 Jan 10, 2025
738fb4b
Enable old tests back and some clean up
komer3 Jan 10, 2025
b7f520e
:seedling: Bump alpine from 3.21.0 to 3.21.2 (#292)
dependabot[bot] Jan 13, 2025
d3152f0
:seedling: Bump github.com/linode/linodego from 1.44.0 to 1.44.1 (#291)
dependabot[bot] Jan 13, 2025
1f3acdf
Address comments
komer3 Jan 13, 2025
5ceecb0
fixes
komer3 Jan 13, 2025
130e5be
Delete nanode incase we hit some error case
komer3 Jan 13, 2025
6a2893a
Merge branch 'main' into cilium-bgp-lb-e2e
komer3 Jan 13, 2025
9a20380
Change the dir structure
komer3 Jan 13, 2025
0b6ab0d
Merge pull request #290 from linode/cilium-bgp-lb-e2e
komer3 Jan 13, 2025
ec8a70a
[test] Add unit test cases for Sentry (#294)
komer3 Jan 14, 2025
8125c46
Refactor docs into a mdbook
komer3 Jan 17, 2025
02f3c8d
Add missing links in the Readme
komer3 Jan 17, 2025
748ae33
Add GHA for publishing mdbook
komer3 Jan 17, 2025
9054e12
testing the mdbook deploy
komer3 Jan 17, 2025
41a6cd0
Update Makefile
komer3 Jan 17, 2025
ddd2049
GHA: do not run CI flow if we are just updating docs. Its unneccessary
komer3 Jan 17, 2025
bce787e
address comments
komer3 Jan 17, 2025
3726716
fix typo
komer3 Jan 17, 2025
b12952d
Removing the temp PR gh-pages push
komer3 Jan 17, 2025
f25bc66
Add rate limits link
komer3 Jan 17, 2025
855b407
Update based on PR comment
komer3 Jan 17, 2025
f49c9b3
:seedling: Bump github.com/linode/linodego from 1.44.1 to 1.46.0 (#300)
dependabot[bot] Jan 20, 2025
441aec9
:seedling: Bump the kubernetes group with 5 updates (#299)
dependabot[bot] Jan 20, 2025
4eb0f62
Address a commet
komer3 Jan 21, 2025
5e1fe99
Remove mdbook implementation
komer3 Jan 22, 2025
71e7de2
clean up
komer3 Jan 22, 2025
41c8727
address comments
komer3 Jan 22, 2025
a1ff960
clean up
komer3 Jan 22, 2025
0db7edb
Switch the pages rendered to GFM
komer3 Jan 22, 2025
98a8494
Address comments
komer3 Jan 22, 2025
01f5841
:seedling: Bump github.com/cilium/cilium from 1.16.5 to 1.16.6 (#301)
dependabot[bot] Jan 22, 2025
2870b71
address comments
komer3 Jan 22, 2025
934c984
Merge pull request #298 from linode/docs-update
komer3 Jan 22, 2025
d032a93
:seedling: Bump helm/chart-testing-action from 2.6.1 to 2.7.0 (#305)
dependabot[bot] Jan 27, 2025
bd983e7
:seedling: Bump jetify-com/devbox-install-action from 0.11.0 to 0.12.…
dependabot[bot] Jan 27, 2025
7002e39
:seedling: Bump helm/chart-releaser-action from 1.6.0 to 1.7.0 (#303)
dependabot[bot] Jan 27, 2025
1f644a0
fix ACL update bug and add e2e test for it (#306)
rahulait Jan 28, 2025
8b1e8df
[feat] add linode token health check
ficap-akamai Dec 9, 2024
c044e45
Merge pull request #296 from linode/more-robust-healthcheck
ficap-akamai Jan 29, 2025
8d34ded
[fix] : delete fw if provisioned by CCM with ACL (#307)
rahulait Jan 29, 2025
d2d1c76
Expose Linode Client Prometheus metrics (#302)
rsienko Jan 30, 2025
56d6d9b
add environment for e2e tests (#311)
rahulait Feb 3, 2025
ce685ee
:seedling: Bump github.com/spf13/pflag (#313)
dependabot[bot] Feb 3, 2025
6c1aadf
:seedling: Bump github.com/linode/linodego from 1.46.0 to 1.47.0 (#312)
dependabot[bot] Feb 3, 2025
1b9f2e7
use pull_request_target for CI workflows (#314)
rahulait Feb 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .chainsaw.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/kyverno/chainsaw/main/.schemas/json/configuration-chainsaw-v1alpha1.json
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Configuration
metadata:
name: configuration
spec:
timeouts:
assert: 5m0s
cleanup: 5m0s
delete: 5m0s
error: 5m0s
exec: 5m0s
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
<!-- If this is your first PR, welcome! Please make sure you read the [contributing guidelines](.github/CONTRIBUTING.md). -->
<!-- Ensure your PR title complies with the following guidelines
1. All PRs titles should start with one of the following prefixes
- `[fix]` for PRs related to bug fixes and patches
- `[feat]` for PRs related to new features
- `[improvement]` for PRs related to improvements of existing features
- `[test]` for PRs related to tests
- `[CI]` for PRs related to repo CI improvements
- `[docs]` for PRs related to documentation updates
- `[deps]` for PRs related to dependency updates
2. if a PR introduces a breaking change it should include `[breaking]` in the title
3. if a PR introduces a deprecation it should include `[deprecation]` in the title
-->
### General:

* [ ] Have you removed all sensitive information, including but not limited to access keys and passwords?
Expand Down
38 changes: 38 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
version: 2
updates:

# Go - root directory
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
## group all dependencies with a k8s.io prefix into a single PR.
groups:
kubernetes:
patterns: [ "k8s.io/*", "sigs.k8s.io/*" ]
otel:
patterns: ["go.opentelemetry.io/*"]
commit-message:
prefix: ":seedling:"
labels:
- "dependencies"

# Docker
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: ":seedling:"
labels:
- "dependencies"

# github-actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: ":seedling:"
labels:
- "dependencies"
3 changes: 3 additions & 0 deletions .github/filters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Any file that is not a doc *.md file
src:
- "!**/*.md"
51 changes: 31 additions & 20 deletions .github/labels.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,35 @@
- name: added-feature
# PR Labels
- name: new-feature
description: for new features in the changelog.
color: a2eeef
- name: changed
description: for changes in existing functionality in the changelog.
color: a2eeef
- name: deprecated
description: for soon-to-be removed features in the changelog.
color: e4e669
- name: removed
description: for now removed features in the changelog.
color: e4e669
color: 225fee
- name: improvement
description: for improvements in existing functionality in the changelog.
color: 22ee47
- name: repo-ci-improvement
description: for improvements in the repository or CI workflow in the changelog.
color: c922ee
- name: bugfix
description: for any bug fixes in the changelog.
color: d73a4a
- name: security
description: for vulnerabilities in the changelog.
color: dd4739
- name: bug
description: Something isn't working in this issue.
color: d73a4a
color: ed8e21
- name: documentation
description: for updates to the documentation in the changelog.
color: d3e1e6
- name: dependencies
description: dependency updates including security fixes
color: 5c9dff
- name: testing
description: for updates to the testing suite in the changelog.
color: 933ac9
- name: breaking-change
description: for breaking changes in the changelog.
color: ff0000
- name: ignore-for-release
description: PRs you do not want to render in the changelog.
color: 7b8eac
# Issue Labels
- name: enhancement
description: New feature request in this issue.
color: a2eeef
description: issues that request a enhancement.
color: 22ee47
- name: bug
description: issues that report a bug.
color: ed8e21
67 changes: 67 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name-template: 'v$NEXT_PATCH_VERSION'
tag-template: 'v$NEXT_PATCH_VERSION'
exclude-labels:
- ignore-for-release
categories:
- title: ⚠️ Breaking Change
labels:
- breaking-change
- title: 🐛 Bug Fixes
labels:
- bugfix
- title: 🚀 New Features
labels:
- new-feature
- title: 💡 Improvements
labels:
- improvement
- title: 🧪 Testing Improvements
labels:
- testing
- title: ⚙️ Repo/CI Improvements
labels:
- repo-ci-improvement
- title: 📖 Documentation
labels:
- documentation
- title: 📦 Dependency Updates
labels:
- dependencies
- title: Other Changes
labels:
- "*"
autolabeler:
- label: 'breaking-change'
title:
- '/.*\[breaking\].+/'
- label: 'deprecation'
title:
- '/.*\[deprecation\].+/'
- label: 'bugfix'
title:
- '/.*\[fix\].+/'
- label: 'new-feature'
title:
- '/.*\[feat\].+/'
- label: 'improvement'
title:
- '/.*\[improvement\].+/'
- label: 'testing'
title:
- '/.*\[test\].+/'
- label: 'repo-ci-improvement'
title:
- '/.*\[CI\].+/'
- '/.*\[ci\].+/'
- label: 'documentation'
title:
- '/.*\[docs\].+/'
- label: 'dependencies'
title:
- '/.*\[deps\].+/'

change-template: '- $TITLE by @$AUTHOR in #$NUMBER'
no-changes-template: "- No changes"
template: |
## What's Changed
$CHANGES
140 changes: 127 additions & 13 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,103 @@ on:
push:
branches:
- main
pull_request: null
pull_request_target: null

permissions:
contents: read
pull-requests: read
actions: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
ci:
changes:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 'stable', 'oldstable', '1.20' ]
outputs:
paths: ${{ steps.filter.outputs.changes }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
- uses: actions/setup-go@v4
ref: ${{ github.event.pull_request.head.sha }}
- name: Harden Runner
uses: step-security/harden-runner@v2
with:
go-version: ${{ matrix.go-version }}
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.github.com:443
github.com:443
- uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ github.ref }}
filters: .github/filters.yml

build-test:
runs-on: ubuntu-latest
environment: ${{ github.event.pull_request.head.repo.fork == true && 'prod-external' || 'prod' }}
needs: changes
if: ${{ contains(fromJSON(needs.changes.outputs.paths), 'src') }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@v2
with:
disable-sudo: true
egress-policy: block
allowed-endpoints: >
api.github.com:443
github.com:443
golang.org:443
proxy.golang.org:443
sum.golang.org:443
objects.githubusercontent.com:443
storage.googleapis.com:443
cli.codecov.io:443
api.codecov.io:443
ingest.codecov.io:443
raw.githubusercontent.com:443
get.helm.sh:443

- uses: actions/[email protected]
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
check-latest: true

- name: Vet
run: make vet
- name: Lint
run: make lint

- name: lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.62.2

- name: Helm Lint
run: make helm-lint

- name: Test
run: make test

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.out
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
slug: linode/linode-cloud-controller-manager

- name: Build
run: make build

docker-build:
runs-on: ubuntu-latest
environment: ${{ github.event.pull_request.head.repo.fork == true && 'prod-external' || 'prod' }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
- name: Docker Meta
Expand All @@ -45,11 +113,57 @@ jobs:
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
type=semver,pattern={{raw}},value=${{ github.ref_name }}
- name: Build Dockerfile
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
push: false
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
REV=${{ github.ref_name }}

e2e-tests:
runs-on: ubuntu-latest
environment: ${{ github.event.pull_request.head.repo.fork == true && 'prod-external' || 'prod' }}
needs: changes
if: ${{ contains(fromJSON(needs.changes.outputs.paths), 'src') }}
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
LINODE_TOKEN: ${{ secrets.LINODE_TOKEN }}
IMG: linode/linode-cloud-controller-manager:${{ github.ref == 'refs/heads/main' && 'latest' || format('pr-{0}', github.event.number) || github.ref_name }}
LINODE_REGION: us-lax
LINODE_CONTROL_PLANE_MACHINE_TYPE: g6-standard-2
LINODE_MACHINE_TYPE: g6-standard-2
WORKER_NODES: '2'
steps:
- uses: actions/[email protected]
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: 'go.mod'
check-latest: true

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Install devbox
uses: jetify-com/[email protected]

- name: Setup CAPL Management Kind Cluster and CAPL Child Cluster For Testing
run: devbox run mgmt-and-capl-cluster

- name: Run E2E Tests
run: devbox run e2e-test

- name: Run Cilium BGP e2e test
run: devbox run e2e-test-bgp

- name: Cleanup Resources
if: always()
run: devbox run cleanup-cluster
Loading
Loading