Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
0a67367
feat: adding device type sync using config map and remove git
abhimanyu003 Nov 17, 2025
f97f9fc
fix: remove git repo water
abhimanyu003 Nov 17, 2025
1bf414f
add: status report to operator manifest
abhimanyu003 Nov 19, 2025
290981d
add: response body to logs
abhimanyu003 Nov 19, 2025
b3440bc
add: deviceTypes - manufacturers and powerPortTemplate
abhimanyu003 Nov 19, 2025
03b6fa7
fix: lint fix
abhimanyu003 Nov 24, 2025
f5cdaac
Merge branch 'main' into nautobotOperator
abhimanyu003 Nov 24, 2025
150d761
fix: lint fix
abhimanyu003 Nov 24, 2025
140ba63
fix: lint fix
abhimanyu003 Nov 24, 2025
cf9b373
fix: simply function
abhimanyu003 Nov 24, 2025
1238b31
fix: renaming rax to nautobotop
abhimanyu003 Nov 27, 2025
1d120a3
feat: adding build-nautobotop for building image
abhimanyu003 Nov 27, 2025
45a836b
fix: lint fix add new line at the end of file
abhimanyu003 Nov 27, 2025
2a39cc6
fix: updating helm files to .tpl
abhimanyu003 Nov 27, 2025
c748513
fix: lint fix updating .yaml to .tpl
abhimanyu003 Nov 27, 2025
a8b325c
fix: removing test-connection.yaml
abhimanyu003 Nov 27, 2025
3dd558b
fix: updating to operator-sdk
abhimanyu003 Nov 27, 2025
dff021c
fix: updating to operator-sdk
abhimanyu003 Nov 27, 2025
d7229c8
fix: lint fix
abhimanyu003 Nov 27, 2025
465b3a1
fix: readme license and typo fix
abhimanyu003 Nov 27, 2025
6286145
fix: typo and build file
abhimanyu003 Nov 27, 2025
108a0da
fix: updating manifests
abhimanyu003 Nov 27, 2025
177e982
feat: adding org opencontainers labels
abhimanyu003 Nov 27, 2025
b9fffae
fix: new line lint fix
abhimanyu003 Nov 27, 2025
c09e0d8
fix: removing .devcontainer and github workflow
abhimanyu003 Nov 27, 2025
b133346
lint: go formatting update
abhimanyu003 Nov 27, 2025
431c346
lint: new line fix
abhimanyu003 Nov 27, 2025
9aa9c71
ci: updating github helm chart
abhimanyu003 Nov 27, 2025
3cd52cf
fix: dir path update
abhimanyu003 Nov 27, 2025
99b2eb9
fix: updating working-dir
abhimanyu003 Nov 27, 2025
b2c5757
fix: blank line fix
abhimanyu003 Nov 28, 2025
35f33ee
fix: updating global apps
abhimanyu003 Nov 28, 2025
ae1b3e8
fix: add namespace to helm
abhimanyu003 Nov 28, 2025
679397d
fix: add namespace
abhimanyu003 Nov 28, 2025
7e86a71
fix: moving files to operators
abhimanyu003 Nov 28, 2025
295566a
fix: update appVersion one release
abhimanyu003 Nov 28, 2025
0d10cba
fix: build for both amd and arm
abhimanyu003 Nov 28, 2025
e986548
fix: lint fix
abhimanyu003 Nov 28, 2025
981affe
fix: use goreleaser for release
abhimanyu003 Nov 28, 2025
ab52b86
fix: build fix
abhimanyu003 Nov 28, 2025
cb155ff
fix: build fix
abhimanyu003 Nov 28, 2025
5cf26e8
fix: install golang and build
abhimanyu003 Nov 28, 2025
8809583
fix: add goreleaser and docker file
abhimanyu003 Nov 28, 2025
1131365
fix: newline at the end of file
abhimanyu003 Nov 28, 2025
e44e32c
fix: newline at the end of file
abhimanyu003 Nov 28, 2025
e789386
fix: goreleaser for build
abhimanyu003 Nov 29, 2025
727a59b
fix: lint fix
abhimanyu003 Nov 29, 2025
087402f
fix: work dir update
abhimanyu003 Nov 29, 2025
8eb5c8c
fix: remove mac build
abhimanyu003 Nov 29, 2025
cfb035f
fix: cache go module
abhimanyu003 Nov 29, 2025
25fbb0e
fix: typo fix
abhimanyu003 Nov 29, 2025
532c1a4
fix: updating permissions
abhimanyu003 Nov 29, 2025
7cb5b6b
fix: updating permissions
abhimanyu003 Nov 29, 2025
da2ea27
feat: enabled signs using cosign
abhimanyu003 Nov 29, 2025
afabe68
feat: add service account and sync time tweak
abhimanyu003 Nov 29, 2025
186a68d
fix: lint fix and updating .gitignore
abhimanyu003 Nov 29, 2025
e426acd
feat: upgrade to OpenStack 2025.2
cardoe Oct 13, 2025
4ff06bc
drop pynautobot and pin urllib3 to openstack upper-constraints
cardoe Oct 21, 2025
f7169d0
switch ironic to uwsgi
cardoe Oct 21, 2025
2db8674
cinder: drop patch 961436
skrobul Nov 18, 2025
d1645be
octavia: bump the chart to 2025.2
skrobul Nov 18, 2025
d59d400
ironic: bump openstack helm chart
skrobul Nov 18, 2025
f9c31d5
fix(neutron): increase workers and set start-time
cardoe Nov 20, 2025
398e035
fix(ironic): increase the number of workers
cardoe Nov 24, 2025
5f601af
fix(nova): bump the number of workers
cardoe Nov 20, 2025
ad66cdb
fix(neutron): increase startup time for neutron
cardoe Nov 20, 2025
ce08d7e
fix(ironic): fix issue with image downloading without deep image inspect
cardoe Nov 24, 2025
9e15c1f
chore(cinder): remove unnecessary depend
cardoe Nov 17, 2025
9942169
chore(deps): update dependency python-keystoneclient to v5.7.0
renovate[bot] Oct 8, 2025
fad7bca
fix(neutron): read physical_network from port binding if able
cardoe Nov 18, 2025
0bd788b
feat(openstack-svc-users): Adds new automation user role for tenant a…
nicholaskuechler Nov 25, 2025
5e4f1ed
chore(deps): update actions/checkout action to v6
renovate[bot] Nov 25, 2025
4b447b1
chore(deps): update actions/setup-python digest to 83679a8
renovate[bot] Nov 25, 2025
04d2cb7
chore(deps): update helm release openstack-helm/ironic to v2025.2.3+2…
renovate[bot] Nov 25, 2025
3c0ac34
sync Ironic portgroups as LAG interfaces to Nautobot via Oslo event h…
syedhaseebahmed Nov 19, 2025
3314278
chore: update OpenStack container builds to shrink them
cardoe Nov 4, 2025
52d8f2d
chore(ironic): remove unnecessary sushy-oem-idrac install
cardoe Nov 26, 2025
e256097
chore(deps): lock file maintenance
renovate[bot] Nov 25, 2025
8c9c79a
chore(deps): update helm release sealed-secrets to v2.17.9
renovate[bot] Nov 24, 2025
cf7c3a2
chore(deps): update docker/metadata-action digest to c299e40
renovate[bot] Nov 27, 2025
32d1168
chore(deps): update crate-ci/typos action to v1.40.0
renovate[bot] Nov 28, 2025
07b3193
chore(deps): update dependency diskimage-builder to v3.40.0
renovate[bot] Nov 28, 2025
308c3f4
chore(deps): update helm release openstack-helm/octavia to v2025.2.6+…
renovate[bot] Nov 27, 2025
ffe35cd
chore(deps): update dependency ansible-runner to v2.4.2
renovate[bot] Nov 14, 2025
e8de2fe
chore(deps): update dependency openstacksdk to v4.8.0
renovate[bot] Nov 28, 2025
df1c477
chore(deps): update dependency pytest to v9
renovate[bot] Nov 28, 2025
ad6cb17
chore(deps): update helm release openstack-helm/placement to v2025.2.…
renovate[bot] Nov 28, 2025
173e136
chore(deps): update helm release openstack-helm/horizon to v2025.2.2+…
renovate[bot] Nov 28, 2025
79b0c61
chore(deps): update helm release openstack-helm/glance to v2025.2.5+9…
renovate[bot] Nov 28, 2025
0880e25
chore(deps): update dependency openstack.cloud to v2.5.0
renovate[bot] Nov 28, 2025
cf53826
chore(deps): update dependency ironic-python-agent-builder to v6.2.0
renovate[bot] Nov 28, 2025
313f2f4
Merge branch 'main' into nautobotOperator
abhimanyu003 Nov 29, 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
91 changes: 91 additions & 0 deletions .github/workflows/build-nautobotop.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
name: build-nautobotop-images

on:
workflow_dispatch:
push:
tags:
- nautobotop-v*
paths:
- "go/nautobotop/**"

jobs:
build-nautobotop:
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6
with:
fetch-depth: 0

- name: Install Go
uses: actions/setup-go@v6
with:
go-version: '1.24'
cache: true

- name: Install syft
uses: anchore/sbom-action/download-syft@f8bdd1d8ac5e901a77a92f111440fdb1b593736b # v0.20.6

- name: Install Cosign
uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 # v3.10.0

- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

- name: Login to ghcr.io
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3
with:
registry: "ghcr.io"
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract tag name
id: extract_tag
run: echo "tag=${GITHUB_REF#refs/tags/nautobotop-v}" >> $GITHUB_OUTPUT

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --clean --skip=validate
workdir: go/nautobotop
env:
CUSTOM_TAG: ${{ steps.extract_tag.outputs.tag }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

chart:
runs-on: ubuntu-latest
needs:
- build-nautobotop
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: '${{ github.actor }}'
password: '${{ secrets.GITHUB_TOKEN }}'
- name: Package and push Helm chart
working-directory: go/nautobotop
env:
PKG_VER: '${{ github.ref_name }}'
run: |
PKG_VER=${PKG_VER#nautobotop-v}
# update Chart.yaml with tag version
yq -i ".version = \"${PKG_VER}\"" helm/Chart.yaml
yq -i ".appVersion = \"${PKG_VER}\"" helm/Chart.yaml
# package chart
helm package -u -d ${{ github.workspace }} helm
# push chart to ghcr.io
helm push ${{ github.workspace }}/nautobotop-${PKG_VER}.tgz \
oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/charts
2 changes: 2 additions & 0 deletions apps/appsets/project-understack-operators.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ spec:
server: '*'
- namespace: 'external-dns'
server: '*'
- namespace: 'nautobotop'
server: '*'
- namespace: 'external-secrets'
server: '*'
- namespace: 'rook-ceph'
Expand Down
9 changes: 9 additions & 0 deletions apps/operators/nautobotop.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
component: nautobotop
sources:
- repoURL: ghcr.io/rackerlabs/charts
chart: nautobotop
targetRevision: 0.0.1
helm:
releaseName: nautobotop
ignoreMissingValueFiles: true
File renamed without changes.
3 changes: 2 additions & 1 deletion go/rax/.gitignore → go/nautobotop/.gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# Binaries for programs and plugins
*.exe
.DS_Store
*.exe~
*.dll
*.so
*.dylib
bin/*
dist/*
Dockerfile.cross

# Test binary, built with `go test -c`
Expand All @@ -24,5 +26,4 @@ go.work
.vscode
*.swp
*.swo
.DS_Store
*~
52 changes: 52 additions & 0 deletions go/nautobotop/.golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
version: "2"
run:
allow-parallel-runners: true
linters:
default: none
enable:
- copyloopvar
- dupl
- errcheck
- ginkgolinter
- goconst
- gocyclo
- govet
- ineffassign
- lll
- misspell
- nakedret
- prealloc
- revive
- staticcheck
- unconvert
- unparam
- unused
settings:
revive:
rules:
- name: comment-spacings
- name: import-shadowing
exclusions:
generated: lax
rules:
- linters:
- lll
path: api/*
- linters:
- dupl
- lll
path: internal/*
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- goimports
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
5 changes: 5 additions & 0 deletions go/nautobotop/.goreleaser.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# goreleaser is making the binary dynamically linked so can't use the static container
FROM gcr.io/distroless/base-debian12:nonroot
COPY --chmod=555 nautobotop /usr/local/bin/nautobotop
USER 65532:65532
ENTRYPOINT ["/usr/local/bin/nautobotop"]
97 changes: 97 additions & 0 deletions go/nautobotop/.goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
project_name: "nautobotop"
version: 2

before:
hooks:
- go mod tidy

env:
- CUSTOM_TAG={{ .Env.CUSTOM_TAG }}

builds:
- main: main.go
dir: ./cmd
binary: nautobotop
goos: ["linux"]
goarch: ["amd64", "arm64"]
flags:
- -trimpath
ldflags:
- -s
- -w
- -X main.version={{.Version}}
- -X main.commit={{.ShortCommit}}
env:
- CGO_ENABLED=0

changelog:
disable: true

dockers:
- skip_push: false
use: buildx
dockerfile: .goreleaser.Dockerfile
image_templates:
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-amd64
build_flag_templates:
- --platform=linux/amd64
- --label=org.opencontainers.image.version={{ .Env.CUSTOM_TAG }}
- --label=org.opencontainers.image.revision={{ .Commit }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.created={{ .Date }}
- --label=org.opencontainers.image.description=Rackspace Cloud DNS support for cert-manager
- --label=org.opencontainers.image.vendor=rackspace
- --label=org.opencontainers.image.licenses=Apache License 2.0
- --label=org.opencontainers.image.source=https://rackspace.com/
- --label=org.opencontainers.image.authors=Rackspace
- skip_push: false
goarch: arm64
use: buildx
dockerfile: .goreleaser.Dockerfile
image_templates:
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-arm64
build_flag_templates:
- --platform=linux/arm64
- --label=org.opencontainers.image.version={{ .Env.CUSTOM_TAG }}
- --label=org.opencontainers.image.revision={{ .Commit }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.created={{ .Date }}
- --label=org.opencontainers.image.description=Rackspace Cloud DNS support for cert-manager
- --label=org.opencontainers.image.vendor=rackspace
- --label=org.opencontainers.image.licenses=Apache License 2.0
- --label=org.opencontainers.image.source=https://rackspace.com/
- --label=org.opencontainers.image.authors=Rackspace
docker_manifests:
- name_template: ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}
image_templates:
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-amd64
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-arm64
- name_template: ghcr.io/rackerlabs/understack/{{ .ProjectName }}:latest
image_templates:
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-amd64
- ghcr.io/rackerlabs/understack/{{ .ProjectName }}:{{ .Env.CUSTOM_TAG }}-arm64


signs:
- cmd: cosign
signature: "${artifact}.sig"
certificate: "${artifact}.pem"
output: true
artifacts: checksum
args:
- sign-blob
- "--oidc-provider=github-actions"
- "--output-certificate=${certificate}"
- "--output-signature=${signature}"
- "${artifact}"
- --yes

docker_signs:
- cmd: cosign
artifacts: manifests
output: true
args:
- "sign"
- "--oidc-provider=github-actions"
- "${artifact}@${digest}"
- --yes
2 changes: 1 addition & 1 deletion go/rax/Dockerfile → go/nautobotop/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the manager binary
FROM docker.io/golang:1.25 AS builder
FROM golang:1.24 AS builder
ARG TARGETOS
ARG TARGETARCH

Expand Down
Loading
Loading