From 881a6d0a37f0399f258eca96bb213a7ac466575e Mon Sep 17 00:00:00 2001 From: Sarah Funkhouser <11655165+sfunkhouser@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:47:41 -0600 Subject: [PATCH] Migrate to metal-toolbox (#42) * Some cleanup * docker login for ghcr Signed-off-by: Sarah Funkhouser <11655165+sfunkhouser@users.noreply.github.com> --- .buildkite/pipeline.yml | 70 +--------- .gitignore | 1 - README.md | 8 +- chart/gov-slack-addon/.helmignore | 23 ++++ chart/gov-slack-addon/Chart.lock | 6 + chart/gov-slack-addon/Chart.yaml | 13 ++ chart/gov-slack-addon/charts/common-2.4.0.tgz | Bin 0 -> 12479 bytes chart/gov-slack-addon/templates/_helpers.tpl | 6 + .../gov-slack-addon/templates/configmap.yaml | 18 +++ .../gov-slack-addon/templates/deployment.yaml | 122 ++++++++++++++++++ chart/gov-slack-addon/templates/ingress.yaml | 31 +++++ chart/gov-slack-addon/templates/service.yaml | 13 ++ chart/gov-slack-addon/values.yaml | 114 ++++++++++++++++ cmd/serve.go | 18 +-- go.mod | 16 +-- go.sum | 87 +++---------- internal/natssrv/msg_handlers.go | 4 +- internal/natssrv/msg_handlers_test.go | 2 +- internal/natssrv/nats.go | 2 +- internal/natssrv/server.go | 2 +- internal/reconciler/reconciler.go | 10 +- internal/reconciler/reconciler_test.go | 2 +- internal/reconciler/usergroups.go | 6 +- main.go | 2 +- scripts/ci_entrypoint.sh | 6 - 25 files changed, 407 insertions(+), 175 deletions(-) create mode 100644 chart/gov-slack-addon/.helmignore create mode 100644 chart/gov-slack-addon/Chart.lock create mode 100644 chart/gov-slack-addon/Chart.yaml create mode 100644 chart/gov-slack-addon/charts/common-2.4.0.tgz create mode 100644 chart/gov-slack-addon/templates/_helpers.tpl create mode 100644 chart/gov-slack-addon/templates/configmap.yaml create mode 100644 chart/gov-slack-addon/templates/deployment.yaml create mode 100644 chart/gov-slack-addon/templates/ingress.yaml create mode 100644 chart/gov-slack-addon/templates/service.yaml create mode 100644 chart/gov-slack-addon/values.yaml delete mode 100755 scripts/ci_entrypoint.sh diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 434ba5a..50f3f8e 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -1,12 +1,7 @@ env: - # APP_NAME is normally the same as your pipeline slug - # if that isn't true, update here APP_NAME: ${BUILDKITE_PIPELINE_SLUG} - DEPLOYMENT_REPO: ${OVERRIDE_DEPLOY_REPO:-k8s-$APP_NAME} - QUAY_REPO: quay.io/equinixmetal/${APP_NAME} - GOPRIVATE: github.com/equinixmetal/*,go.equinixmetal.net + IMAGE_REPO: ghcr.io/metal-toolbox/${APP_NAME} IMAGE_TAG: ${BUILDKITE_BUILD_NUMBER}-${BUILDKITE_COMMIT:0:8} - COSIGN_KEY_PATH: cosign.key steps: - label: ":golangci-lint: lint :lint-roller:" @@ -14,39 +9,24 @@ steps: plugins: - docker#v5.7.0: image: "registry.hub.docker.com/golangci/golangci-lint:v1.51-alpine" - command: ["golangci-lint", "run", "-v"] - volumes: - - "/var/lib/buildkite-agent/.gitconfig/:/root/.gitconfig/" + command: ["golangci-lint", "run", "-v", "--timeout", "5m"] - label: ":test_tube: test" key: "test" plugins: - - ssh://git@github.com/packethost/ssm-buildkite-plugin#v1.0.3: - parameters: - GITHUB_TOKEN: /buildkite/github/personal-access-token/v1 - docker#v5.7.0: image: "golang:1.20" - environment: - - "GOPRIVATE" - - "GITHUB_TOKEN" - entrypoint: ./scripts/ci_entrypoint.sh command: ["go", "test", "-cover" ,"-race", "./..."] - label: ":golang: build" key: "gobuild" artifact_paths: "bin/${APP_NAME}" plugins: - - ssh://git@github.com/packethost/ssm-buildkite-plugin#v1.0.3: - parameters: - GITHUB_TOKEN: /buildkite/github/personal-access-token/v1 - docker#v5.7.0: image: "golang:1.20" environment: - - GOPRIVATE - - GITHUB_TOKEN - CGO_ENABLED=0 - GOOS=linux - entrypoint: ./scripts/ci_entrypoint.sh command: ["go", "build", "-buildvcs=false", "-mod=mod", "-a", "-o", "bin/$APP_NAME"] - label: ":docker: docker build and publish" @@ -61,58 +41,22 @@ steps: # make sure it is executable chmod +x bin/${APP_NAME} - - ls -la - - # Save COSIGN_KEY_SECRET to a file - echo "\$COSIGN_KEY_SECRET" > ${COSIGN_KEY_PATH} plugins: - - ssh://git@github.com/packethost/ssm-buildkite-plugin#v1.0.3: - parameters: - # Buildkite redacts secrets from the logs as long as - # they have the *_SECRET, *_PASSWORD and *_TOKEN suffixes. - COSIGN_KEY_SECRET: /buildkite/cosign/cosign-priv-key/v1 - # COSIGN_PASSWORD is an environment variable that's - # expected by cosign - COSIGN_PASSWORD: /buildkite/cosign/cosign-priv-key-pass/v1 + - docker-login#v2.1.0: + username: metal-buildkite + password-env: SECRET_GHCR_PUBLISH_TOKEN + server: ghcr.io - equinixmetal-buildkite/docker-metadata#v1.0.0: images: - - "${QUAY_REPO}" + - "${IMAGE_REPO}" extra_tags: - "${IMAGE_TAG}" - equinixmetal-buildkite/docker-build#v1.1.0: push: true build-args: - NAME=${APP_NAME} - - equinixmetal-buildkite/cosign#main: - image: "${QUAY_REPO}:${IMAGE_TAG}" - keyless: false - keyed_config: - key: "${COSIGN_KEY_PATH}" - equinixmetal-buildkite/trivy#v1.18.2: severity: CRITICAL,HIGH ignore-unfixed: true security-checks: config,secret,vuln skip-files: 'cosign.key' - - # For main commits, pull-requests will be created to bump the image in the deployment manifest - - label: "Bump image tag for main branch builds" - depends_on: "build" - if: build.branch == 'main' - plugins: - - first-aml/git-clone: - repository: git@github.com:equinixmetal/$DEPLOYMENT_REPO.git - - ssh://git@github.com/packethost/ssm-buildkite-plugin#v1.0.3: - parameters: - GITHUB_TOKEN: /buildkite/github/personal-access-token/v1 - - ssh://git@github.com/packethost/yaml-update-buildkite-plugin#v1.0.1: - dir: $DEPLOYMENT_REPO - file: values.yaml - values: - - .deployment.image.tag=$IMAGE_TAG - - ssh://git@github.com/equinixmetal/github-pr-template-buildkite-plugin#v0.2.0: {} - # Create Pull Request to main using commit from previous step - - envato/github-pull-request#v0.4.0: - title: "[buildkite] bump image tag to $IMAGE_TAG" - head: buildkite-yaml-update-$BUILDKITE_BUILD_NUMBER - base: main diff --git a/.gitignore b/.gitignore index d473e9b..175e4ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ bin/* -gov-slack-addon coverage.out *.exe *.exe~ diff --git a/README.md b/README.md index 4c8fd65..67022fe 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This addon handles the create/delete/update of Slack user groups in Slack Enterprise Grid. -`gov-slack-addon` subscribes to the Governor event stream where change events are published. The events published by Governor contain the group id that changed and the type of action. Events are published on NATS subjects dedicated to the resource type ie. `equinixmetal.governor.events.groups` for group events. When `gov-slack-addon` receives an event, it first checks that it's associated with a `slack` application in Governor, and then requests additional information from Governor about the included resource IDs and tries to match them to corresponding groups in Slack. +`gov-slack-addon` subscribes to the Governor event stream where change events are published. The events published by Governor contain the group id that changed and the type of action. Events are published on NATS subjects dedicated to the resource type ie. `governor.events.groups` for group events. When `gov-slack-addon` receives an event, it first checks that it's associated with a `slack` application in Governor, and then requests additional information from Governor about the included resource IDs and tries to match them to corresponding groups in Slack. Slack Enterprise Grid acts as a parent organization for multiple workspaces (also called teams in Slack). For this reason `gov-slack-addon` needs a Slack token with organization-level permissions, and it also needs to be explicitly allowed in any workspaces that should be managed by the addon. In Governor, for each Slack workspace where you want to manage groups you need to create an application with type `slack` and a name that exactly matches the name of the Slack workspace, then associate that app with any Governor groups which should exist in Slack. You can associate one group with multiple slack applications and it will be created in all of the corresponding workspaces (with a `[Governor]` prefix). @@ -16,7 +16,7 @@ As a side-note, users in Slack Enterprise Grid exist at the organization level b ### Pre-requisites for running locally -Follow the directions [here](https://github.com/equinixmetal/governor/blob/main/README.md#running-governor-locally) for starting the governor-api devcontainer. +Follow the directions [here](https://github.com/metal-toolbox/governor-api/blob/main/README.md#running-governor-locally) for starting the governor-api devcontainer. The **first time** you'll need to create a local hydra client for `gov-slack-addon-governor` and copy the nats creds file. After that you can just export the env variables. @@ -92,3 +92,7 @@ Start the addon (adjust the flags as needed): ```sh go run . serve --audit-log-path=audit.log --nats-creds-file user.local.creds --pretty --debug --dry-run ``` + +## License + +[Apache License, Version 2.0](LICENSE) diff --git a/chart/gov-slack-addon/.helmignore b/chart/gov-slack-addon/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/chart/gov-slack-addon/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/chart/gov-slack-addon/Chart.lock b/chart/gov-slack-addon/Chart.lock new file mode 100644 index 0000000..532ccab --- /dev/null +++ b/chart/gov-slack-addon/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + version: 2.4.0 +digest: sha256:215af03467c0fc41346b62755c5b96f40f71f9b0877205a0f970605c306c1846 +generated: "2023-06-26T19:44:24.743629002Z" diff --git a/chart/gov-slack-addon/Chart.yaml b/chart/gov-slack-addon/Chart.yaml new file mode 100644 index 0000000..92822f5 --- /dev/null +++ b/chart/gov-slack-addon/Chart.yaml @@ -0,0 +1,13 @@ +apiVersion: v2 +appVersion: "1.0" +description: A Helm chart for deploying gov-slack-addon +name: gov-slack-addon +version: 1.0.0 +kubeVersion: ">=1.21" + +dependencies: + - name: common + repository: https://charts.bitnami.com/bitnami + tags: + - bitnami-common + version: 2.4.0 diff --git a/chart/gov-slack-addon/charts/common-2.4.0.tgz b/chart/gov-slack-addon/charts/common-2.4.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e00031feea603d2ecac5d1a17ff98a879823b662 GIT binary patch literal 12479 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 literal 0 HcmV?d00001 diff --git a/chart/gov-slack-addon/templates/_helpers.tpl b/chart/gov-slack-addon/templates/_helpers.tpl new file mode 100644 index 0000000..fab0ec3 --- /dev/null +++ b/chart/gov-slack-addon/templates/_helpers.tpl @@ -0,0 +1,6 @@ +{{/* +Template ingress hostname +*/}} +{{- define "ingress.hostname.rendered" -}} +{{- printf "%s" (tpl .Values.ingress.host $) -}} +{{- end -}} \ No newline at end of file diff --git a/chart/gov-slack-addon/templates/configmap.yaml b/chart/gov-slack-addon/templates/configmap.yaml new file mode 100644 index 0000000..4e370ca --- /dev/null +++ b/chart/gov-slack-addon/templates/configmap.yaml @@ -0,0 +1,18 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "common.names.fullname" . }}-config + labels: {{- include "common.labels.standard" . | nindent 4 }} +data: + GSA_DRYRUN: "{{ .Values.dryrun }}" + GSA_LOGGING_DEBUG: "{{ .Values.debug }}" + GSA_LOGGING_PRETTY: "{{ .Values.pretty }}" + GSA_GOVERNOR_AUDIENCE: "{{ .Values.governor.audience }}" + GSA_GOVERNOR_CLIENT_ID: "{{ .Values.governor.clientId }}" + GSA_GOVERNOR_URL: "{{ .Values.governor.url }}" + GSA_GOVERNOR_TOKEN_URL: "{{ .Values.hydra.url }}" + GSA_NATS_URL: "{{ .Values.nats.url }}" + GSA_NATS_CREDS_FILE: "{{ .Values.nats.credsPath }}/{{ template "common.names.fullname" . }}-nats-client-creds" + GSA_RECONCILER_INTERVAL: "{{ .Values.reconciler.interval }}" + GSA_RECONCILER_LOCKING: "{{ .Values.reconciler.locking }}" diff --git a/chart/gov-slack-addon/templates/deployment.yaml b/chart/gov-slack-addon/templates/deployment.yaml new file mode 100644 index 0000000..da42192 --- /dev/null +++ b/chart/gov-slack-addon/templates/deployment.yaml @@ -0,0 +1,122 @@ +apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} +kind: Deployment +metadata: + name: {{ template "common.names.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.deployment.replicas }} + {{- end }} + revisionHistoryLimit: 3 + selector: + matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} + template: + metadata: + labels: {{- include "common.labels.standard" . | nindent 8 }} + annotations: + checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} + spec: + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.audit.enabled }} + initContainers: + # Optional: Pre-creates the `/app-audit/audit.log` named pipe. + - image: "{{ .Values.audit.auditImage.registry }}/{{ .Values.audit.auditImage.repository }}:{{ .Values.audit.auditImage.tag | default .Chart.AppVersion }}" + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 10 }} + {{- end }} + args: + - 'init' + - '-f' + - '/app-audit/audit.log' + name: init-audit-logs + imagePullPolicy: Always + volumeMounts: + - mountPath: /app-audit + name: audit-logs + {{- with .Values.audit.init.resources }} + resources: + {{- toYaml . | nindent 10 }} + {{- end }} + {{- end }} + containers: + - name: {{ template "common.names.fullname" . }} + args: + - serve + envFrom: + - configMapRef: + name: {{ template "common.names.fullname" . }}-config + - secretRef: + name: {{ template "common.names.fullname" . }}-creds + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + image: "{{ .Values.deployment.image.registry }}/{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag | default .Chart.AppVersion }}" + {{- with .Values.deployment.image.pullPolicy }} + imagePullPolicy: {{ . }} + {{- end }} + {{- with .Values.deployment.ports }} + ports: + {{- toYaml . | nindent 12 }} + {{- end }} + livenessProbe: + httpGet: + path: /healthz/liveness + port: http + readinessProbe: + httpGet: + path: /healthz/readiness + port: http + {{- with .Values.deployment.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + - name: natscreds + mountPath: "/nats" + readOnly: true + {{- if .Values.audit.enabled }} # Begin audittail toggle + # This is mounted in the 1st container + - name: audit-logs + mountPath: /app-audit + # This is the audit container + - name: {{ template "common.names.fullname" . }}-audit + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + args: + - -f + - /app-audit/audit.log + image: "{{ .Values.audit.auditImage.registry }}/{{ .Values.audit.auditImage.repository }}:{{ .Values.audit.auditImage.tag | default .Chart.AppVersion }}" + volumeMounts: + - name: audit-logs + mountPath: /app-audit + {{- with .Values.audit.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- end }} # End audittail toggle + restartPolicy: Always + terminationGracePeriodSeconds: 30 + volumes: + - name: natscreds + secret: + secretName: {{ template "common.names.fullname" . }}-nats-creds + defaultMode: 0444 + {{- if .Values.audit.enabled }} + - name: audit-logs + emptyDir: {} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/chart/gov-slack-addon/templates/ingress.yaml b/chart/gov-slack-addon/templates/ingress.yaml new file mode 100644 index 0000000..896b403 --- /dev/null +++ b/chart/gov-slack-addon/templates/ingress.yaml @@ -0,0 +1,31 @@ +{{- if .Values.ingress.enabled -}} +apiVersion: {{ include "common.capabilities.ingress.apiVersion" . }} +kind: Ingress +metadata: + name: {{ template "common.names.fullname" . }} + {{- with .Values.ingress.labels }} + labels: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (include "common.ingress.supportsIngressClassname" .) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + rules: + - host: {{ include "ingress.hostname.rendered" . | quote }} + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }} + {{- if .Values.ingress.tls }} + tls: + - hosts: + - {{ include "ingress.hostname.rendered" . | quote }} + secretName: {{include "ingress.hostname.rendered" . | quote }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/chart/gov-slack-addon/templates/service.yaml b/chart/gov-slack-addon/templates/service.yaml new file mode 100644 index 0000000..c0318e8 --- /dev/null +++ b/chart/gov-slack-addon/templates/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "common.names.fullname" . }} + labels: {{- include "common.labels.standard" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: {{ include "common.labels.matchLabels" . | nindent 4 }} diff --git a/chart/gov-slack-addon/values.yaml b/chart/gov-slack-addon/values.yaml new file mode 100644 index 0000000..3fd8522 --- /dev/null +++ b/chart/gov-slack-addon/values.yaml @@ -0,0 +1,114 @@ +debug: false +dryrun: false +pretty: false +hydra: + url: +governor: + url: + clientId: + audience: +nats: + url: + credsPath: /nats + subjectPrefix: governor.events +reconciler: + interval: 1h + locking: true +secrets: + governorClientSecret: + slackToken: + natsCreds: +deployment: + enabled: true + image: + registry: ghcr.io + repository: metal-toolbox/gov-slack-addon + tag: "152-27e415f5" + pullPolicy: IfNotPresent + replicas: 1 + ports: + - name: http + containerPort: 8000 + # -- (dict) resource limits & requests + # ref: https://kubernetes.io/docs/user-guide/compute-resources/ + resources: + limits: + cpu: 500m + memory: 500Mi + requests: + cpu: 250m + memory: 500Mi +# -- Security context to be added to the deployment +securityContext: + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + runAsUser: 1000 +# -- include an ingress resource +# -- ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress +ingress: + # -- (bool) Set to true to generate Ingress resource + enabled: false + # -- (string) options are typically nginx or nginx-external, if omited the cluster default is used + className: nginx + # -- (dict) Custom Ingress annotations + annotations: {} + # some examples! + # cert-manager.io/cluster-issuer: letsencrypt-prod + # nginx.ingress.kubernetes.io/backend-protocol: HTTPS + # nginx.ingress.kubernetes.io/rewrite-target: / + # -- (dict) Custom Ingress labels + labels: {} + # -- (tpl/string) Set custom host name. (DNS name convention) + # @notationType -- tpl + host: 'CHANGEME.FQDN' + tls: + # -- (bool) Set to true to enable HTTPS + enabled: true + # -- (string) You must provide a secret name where the TLS cert is stored + secretName: your-ingress-tls +# -- ServiceMonitor is how you get metrics into prometheus! +serviceMonitor: + # -- (bool) Set to true to create a default ServiceMonitor for your application + enabled: true + # -- Labels to add to ServiceMonitor + labels: {} + # -- Annotations to add to ServiceMonitor + annotations: {} + # -- Interval for scrape metrics. + interval: 10s + # -- time out interval when scraping metrics + scrapeTimeout: 10s +service: + port: 80 +autoscaling: + enabled: false +# -- (dict) configures metal-toolbox/audittail +audit: + # -- (bool) toggles audittail + enabled: true + # -- (dict) Infomation about the audittail image + auditImage: + registry: ghcr.io + repository: metal-toolbox/audittail + tag: v0.8.0 + pullPolicy: IfNotPresent + # -- (dict) Resources for the audittail container + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 100m + memory: 128Mi + init: + # -- (dict) Resources for the audittail init container + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi diff --git a/cmd/serve.go b/cmd/serve.go index 93b12be..a757deb 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -16,13 +16,13 @@ import ( "github.com/spf13/viper" "golang.org/x/oauth2/clientcredentials" - governor "go.equinixmetal.net/governor-api/pkg/client" - events "go.equinixmetal.net/governor-api/pkg/events/v1alpha1" + governor "github.com/metal-toolbox/governor-api/pkg/client" + events "github.com/metal-toolbox/governor-api/pkg/events/v1alpha1" - "github.com/equinixmetal/gov-slack-addon/internal/natslock" - "github.com/equinixmetal/gov-slack-addon/internal/natssrv" - "github.com/equinixmetal/gov-slack-addon/internal/reconciler" - "github.com/equinixmetal/gov-slack-addon/internal/slack" + "github.com/metal-toolbox/gov-slack-addon/internal/natslock" + "github.com/metal-toolbox/gov-slack-addon/internal/natssrv" + "github.com/metal-toolbox/gov-slack-addon/internal/reconciler" + "github.com/metal-toolbox/gov-slack-addon/internal/slack" ) // serveCmd starts the gov-slack-addon service @@ -69,7 +69,7 @@ func init() { viperBindFlag("slack.usergroup-prefix", serveCmd.Flags().Lookup("slack-usergroup-prefix")) // Governor related flags - serveCmd.Flags().String("governor-url", "https://api.iam.equinixmetal.net", "url of the governor api") + serveCmd.Flags().String("governor-url", "", "url of the governor api") viperBindFlag("governor.url", serveCmd.Flags().Lookup("governor-url")) serveCmd.Flags().String("governor-client-id", "gov-slack-addon-governor", "oauth client ID for client credentials flow") viperBindFlag("governor.client-id", serveCmd.Flags().Lookup("governor-client-id")) @@ -85,9 +85,9 @@ func init() { viperBindFlag("nats.url", serveCmd.Flags().Lookup("nats-url")) serveCmd.Flags().String("nats-creds-file", "", "Path to the file containing the NATS credentials file") viperBindFlag("nats.creds-file", serveCmd.Flags().Lookup("nats-creds-file")) - serveCmd.Flags().String("nats-subject-prefix", "equinixmetal.governor.events", "prefix for NATS subjects") + serveCmd.Flags().String("nats-subject-prefix", "governor.events", "prefix for NATS subjects") viperBindFlag("nats.subject-prefix", serveCmd.Flags().Lookup("nats-subject-prefix")) - serveCmd.Flags().String("nats-queue-group", "equinixmetal.governor.addons.gov-slack-addon", "queue group for load balancing messages across NATS consumers") + serveCmd.Flags().String("nats-queue-group", "governor.addons.gov-slack-addon", "queue group for load balancing messages across NATS consumers") viperBindFlag("nats.queue-group", serveCmd.Flags().Lookup("nats-queue-group")) serveCmd.Flags().Int("nats-queue-size", 3, "queue size for load balancing messages across NATS consumers") //nolint: gomnd viperBindFlag("nats.queue-size", serveCmd.Flags().Lookup("nats-queue-size")) diff --git a/go.mod b/go.mod index 33d454d..8a16ec1 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/equinixmetal/gov-slack-addon +module github.com/metal-toolbox/gov-slack-addon go 1.20 @@ -11,6 +11,7 @@ require ( github.com/gin-gonic/gin v1.9.1 github.com/gofrs/uuid v4.4.0+incompatible github.com/metal-toolbox/auditevent v0.8.0 + github.com/metal-toolbox/governor-api v0.1.0 github.com/mitchellh/go-homedir v1.1.0 github.com/nats-io/nats-server/v2 v2.9.14 github.com/nats-io/nats.go v1.27.1 @@ -20,14 +21,13 @@ require ( github.com/spf13/viper v1.15.0 github.com/stretchr/testify v1.8.4 github.com/zsais/go-gin-prometheus v0.1.0 - go.equinixmetal.net/governor-api v0.24.0 go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.40.0 go.opentelemetry.io/otel v1.16.0 go.opentelemetry.io/otel/exporters/jaeger v1.16.0 go.opentelemetry.io/otel/sdk v1.16.0 go.uber.org/zap v1.24.0 - golang.org/x/net v0.11.0 - golang.org/x/oauth2 v0.6.0 + golang.org/x/net v0.12.0 + golang.org/x/oauth2 v0.10.0 ) require ( @@ -106,13 +106,13 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.10.0 // indirect - golang.org/x/sys v0.9.0 // indirect - golang.org/x/text v0.10.0 // indirect + golang.org/x/crypto v0.11.0 // indirect + golang.org/x/sys v0.10.0 // indirect + golang.org/x/text v0.11.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index d66f55e..ad92ce3 100644 --- a/go.sum +++ b/go.sum @@ -80,8 +80,6 @@ github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmV github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH19w= -github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= github.com/avast/retry-go/v4 v4.3.4 h1:pHLkL7jvCvP317I8Ge+Km2Yhntv3SdkJm7uekkqbKhM= github.com/avast/retry-go/v4 v4.3.4/go.mod h1:rv+Nla6Vk3/ilU0H51VHddWHiwimzX66yZ0JT6T+UvE= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= @@ -92,8 +90,6 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.7 h1:d3sry5vGgVq/OpgozRUNP6xBsSo0mtNdwliApw+SAMQ= -github.com/bytedance/sonic v1.8.7/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -154,8 +150,8 @@ github.com/ericlagergren/decimal v0.0.0-20221120152707-495c53812d05/go.mod h1:M9 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/friendsofgo/errors v0.9.2 h1:X6NYxef4efCBdwI7BgS820zFaN7Cphrmb+Pljdzjtgk= github.com/friendsofgo/errors v0.9.2/go.mod h1:yCvFW5AkDIL9qn7suHVLiI/gH228n7PC4Pn44IGoTOI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= @@ -171,8 +167,6 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-contrib/zap v0.1.0 h1:RMSFFJo34XZogV62OgOzvrlaMNmXrNxmJ3bFmMwl6Cc= github.com/gin-contrib/zap v0.1.0/go.mod h1:hvnZaPs478H1PGvRP8w89ZZbyJUiyip4ddiI/53WG3o= github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= -github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= -github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= @@ -186,7 +180,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= @@ -204,8 +197,6 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= -github.com/go-playground/validator/v10 v10.12.0 h1:E4gtWgxWxp8YSxExrQFv5BpCahla0PVF2oTTEYaWQGI= -github.com/go-playground/validator/v10 v10.12.0/go.mod h1:hCAPuzYvKdP33pxWa+2+6AIKXEKqjIUyqsNCtbsSJrA= github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -428,8 +419,6 @@ github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= -github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= @@ -443,8 +432,8 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -452,8 +441,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/leodido/go-urn v1.2.2 h1:7z68G0FCGvDk646jz1AelTYNYWrTNm0bEcFAo147wt4= -github.com/leodido/go-urn v1.2.2/go.mod h1:kUaIbLZWttglzwNuG0pgsh5vuV6u2YcGBYz1hIPjtOQ= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -461,8 +448,6 @@ github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= @@ -483,8 +468,6 @@ github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOA github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= @@ -493,10 +476,10 @@ github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJK github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/metal-toolbox/auditevent v0.7.0 h1:jLLnM1uBgNmxGpe06yqTqeKfgEyXCMA7O2OFZ5vtYik= -github.com/metal-toolbox/auditevent v0.7.0/go.mod h1:JeaoaxONjY0amUWfTnv0Z9werBvlI9kWG5sIrJIuVKc= github.com/metal-toolbox/auditevent v0.8.0 h1:uKEwwYnxAEgvFNpleZzIblLymCDK44WwpsKi36mznVQ= github.com/metal-toolbox/auditevent v0.8.0/go.mod h1:yladFT4ayNx+4wrNczvUjYFsg7Qvq+G8YBIDvjeeiLw= +github.com/metal-toolbox/governor-api v0.1.0 h1:LqrqY2vWrC+vUkDDM3wHNa9JtUeqMvsjoPLqO/HovtY= +github.com/metal-toolbox/governor-api v0.1.0/go.mod h1:KBl24DzMatMlD1xoRkMruAG7xoScGwkNDAICzqSGH2w= github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= @@ -530,8 +513,6 @@ github.com/nats-io/jwt/v2 v2.3.0 h1:z2mA1a7tIf5ShggOFlR1oBPgd6hGqcDYsISxZByUzdI= github.com/nats-io/jwt/v2 v2.3.0/go.mod h1:0tqz9Hlu6bCBFLWAASKhE5vUA4c24L9KPUUgvwumE/k= github.com/nats-io/nats-server/v2 v2.9.14 h1:n2GscWVgXpA14vQSRP/MM1SGi4wyazR9l19/gWxqgXQ= github.com/nats-io/nats-server/v2 v2.9.14/go.mod h1:40ZwFm4npKdFBhOdY7rkh3YyI1oI91FzLvlYyB7HfzM= -github.com/nats-io/nats.go v1.25.0 h1:t5/wCPGciR7X3Mu8QOi4jiJaXaWM8qtkLu4lzGZvYHE= -github.com/nats-io/nats.go v1.25.0/go.mod h1:D2WALIhz7V8M0pH8Scx8JZXlg6Oqz5VG+nQkK8nJdvg= github.com/nats-io/nats.go v1.27.1 h1:OuYnal9aKVSnOzLQIzf7554OXMCG7KbaTkCSBHRcSoo= github.com/nats-io/nats.go v1.27.1/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= @@ -544,8 +525,6 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= -github.com/pelletier/go-toml/v2 v2.0.7 h1:muncTPStnKRos5dpVKULv2FVd4bMOhNePj9CjgDb8Us= -github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= @@ -565,8 +544,6 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_golang v1.15.0 h1:5fCgGYogn0hFdhyhLbw7hEsWxufKtY9klyvdNfFlFhM= github.com/prometheus/client_golang v1.15.0/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -598,7 +575,6 @@ github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/rwtodd/Go.Sed v0.0.0-20210816025313-55464686f9ef/go.mod h1:8AEUvGVi2uQ5b24BIhcr0GCcpd/RNAFWaN2CJFrWIIQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.6.0/go.mod h1:U8+INwJo3nBv1m6A/8OBXAq7Jnpspk5AxSgDyEQcea8= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= @@ -619,7 +595,6 @@ github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcD github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= @@ -649,9 +624,7 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -688,10 +661,6 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= github.com/zsais/go-gin-prometheus v0.1.0 h1:bkLv1XCdzqVgQ36ScgRi09MA2UC1t3tAB6nsfErsGO4= github.com/zsais/go-gin-prometheus v0.1.0/go.mod h1:Slirjzuz8uM8Cw0jmPNqbneoqcUtY2GGjn2bEd4NRLY= -go.equinixmetal.net/governor-api v0.20.0 h1:uxekByKju7EjAtqEaEv73fmzEXFxwFUCdEXLEJY+tlg= -go.equinixmetal.net/governor-api v0.20.0/go.mod h1:+gs315mQXcCuncSNk9PBR5oQ3FFddllWtfpGwpEL2Vc= -go.equinixmetal.net/governor-api v0.24.0 h1:dPgB/06PISNDhCp2sC0gnjrvpVSS9tR77yQE/9dTGoc= -go.equinixmetal.net/governor-api v0.24.0/go.mod h1:6478oyqfT9nhHvlastLicngm0z1Sb4S9Yjn5kZbCXWU= go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.4/go.mod h1:Ud+VUwIi9/uQHOMA+4ekToJ12lTxlv0zB/+DHwTGEbU= @@ -709,23 +678,15 @@ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0. go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin v0.40.0/go.mod h1:A8+gHkpqTfMKxdKWq1pp360nAs096K26CH5Sm2YHDdA= go.opentelemetry.io/contrib/propagators/b3 v1.15.0 h1:bMaonPyFcAvZ4EVzkUNkfnUHP5Zi63CIDlA3dRsEg8Q= go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= -go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= -go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= -go.opentelemetry.io/otel/exporters/jaeger v1.14.0 h1:CjbUNd4iN2hHmWekmOqZ+zSCU+dzZppG8XsV+A3oc8Q= -go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA= go.opentelemetry.io/otel/exporters/jaeger v1.16.0 h1:YhxxmXZ011C0aDZKoNw+juVWAmEfv/0W2XBOv9aHTaA= go.opentelemetry.io/otel/exporters/jaeger v1.16.0/go.mod h1:grYbBo/5afWlPpdPZYhyn78Bk04hnvxn2+hvxQhKIQM= go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= -go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= -go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4= go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= -go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= -go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -780,12 +741,8 @@ golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= -golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= -golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -875,12 +832,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -902,8 +855,8 @@ golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk= -golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= -golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1009,12 +962,8 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1031,12 +980,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1286,8 +1231,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/natssrv/msg_handlers.go b/internal/natssrv/msg_handlers.go index 01e315a..bb4be43 100644 --- a/internal/natssrv/msg_handlers.go +++ b/internal/natssrv/msg_handlers.go @@ -4,10 +4,10 @@ import ( "context" "encoding/json" - "github.com/equinixmetal/gov-slack-addon/internal/auctx" "github.com/metal-toolbox/auditevent" + "github.com/metal-toolbox/gov-slack-addon/internal/auctx" + "github.com/metal-toolbox/governor-api/pkg/events/v1alpha1" "github.com/nats-io/nats.go" - "go.equinixmetal.net/governor-api/pkg/events/v1alpha1" "go.uber.org/zap" ) diff --git a/internal/natssrv/msg_handlers_test.go b/internal/natssrv/msg_handlers_test.go index 663e40c..81c2873 100644 --- a/internal/natssrv/msg_handlers_test.go +++ b/internal/natssrv/msg_handlers_test.go @@ -3,9 +3,9 @@ package natssrv import ( "testing" + "github.com/metal-toolbox/governor-api/pkg/events/v1alpha1" "github.com/nats-io/nats.go" "github.com/stretchr/testify/assert" - "go.equinixmetal.net/governor-api/pkg/events/v1alpha1" "go.uber.org/zap" ) diff --git a/internal/natssrv/nats.go b/internal/natssrv/nats.go index fc8e359..4dc05ac 100644 --- a/internal/natssrv/nats.go +++ b/internal/natssrv/nats.go @@ -6,7 +6,7 @@ import ( "github.com/nats-io/nats.go" "go.uber.org/zap" - events "go.equinixmetal.net/governor-api/pkg/events/v1alpha1" + events "github.com/metal-toolbox/governor-api/pkg/events/v1alpha1" ) // NATSClient is a NATS client with some configuration diff --git a/internal/natssrv/server.go b/internal/natssrv/server.go index 5688eb4..97e1d72 100644 --- a/internal/natssrv/server.go +++ b/internal/natssrv/server.go @@ -17,7 +17,7 @@ import ( "go.opentelemetry.io/otel" "go.uber.org/zap" - "github.com/equinixmetal/gov-slack-addon/internal/reconciler" + "github.com/metal-toolbox/gov-slack-addon/internal/reconciler" ) // Server implements the HTTP Server diff --git a/internal/reconciler/reconciler.go b/internal/reconciler/reconciler.go index dbfa6ae..1bd54c3 100644 --- a/internal/reconciler/reconciler.go +++ b/internal/reconciler/reconciler.go @@ -9,12 +9,12 @@ import ( "github.com/metal-toolbox/auditevent" "go.uber.org/zap" - "go.equinixmetal.net/governor-api/pkg/api/v1alpha1" - governor "go.equinixmetal.net/governor-api/pkg/client" + "github.com/metal-toolbox/governor-api/pkg/api/v1alpha1" + governor "github.com/metal-toolbox/governor-api/pkg/client" - "github.com/equinixmetal/gov-slack-addon/internal/auctx" - "github.com/equinixmetal/gov-slack-addon/internal/natslock" - "github.com/equinixmetal/gov-slack-addon/internal/slack" + "github.com/metal-toolbox/gov-slack-addon/internal/auctx" + "github.com/metal-toolbox/gov-slack-addon/internal/natslock" + "github.com/metal-toolbox/gov-slack-addon/internal/slack" ) type govClientIface interface { diff --git a/internal/reconciler/reconciler_test.go b/internal/reconciler/reconciler_test.go index 329673e..d86441f 100644 --- a/internal/reconciler/reconciler_test.go +++ b/internal/reconciler/reconciler_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "go.equinixmetal.net/governor-api/pkg/api/v1alpha1" + "github.com/metal-toolbox/governor-api/pkg/api/v1alpha1" "go.uber.org/zap" ) diff --git a/internal/reconciler/usergroups.go b/internal/reconciler/usergroups.go index 2eb89f6..d3631a0 100644 --- a/internal/reconciler/usergroups.go +++ b/internal/reconciler/usergroups.go @@ -7,9 +7,9 @@ import ( "strings" "time" - "github.com/equinixmetal/gov-slack-addon/internal/auctx" - "github.com/equinixmetal/gov-slack-addon/internal/slack" - "go.equinixmetal.net/governor-api/pkg/api/v1alpha1" + "github.com/metal-toolbox/gov-slack-addon/internal/auctx" + "github.com/metal-toolbox/gov-slack-addon/internal/slack" + "github.com/metal-toolbox/governor-api/pkg/api/v1alpha1" "go.uber.org/zap" ) diff --git a/main.go b/main.go index 7b47ed9..4466fc8 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,7 @@ // package main is the main package package main -import "github.com/equinixmetal/gov-slack-addon/cmd" +import "github.com/metal-toolbox/gov-slack-addon/cmd" func main() { cmd.Execute() diff --git a/scripts/ci_entrypoint.sh b/scripts/ci_entrypoint.sh deleted file mode 100755 index 6cb10b6..0000000 --- a/scripts/ci_entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -set -e - -git config --global url."https://${GITHUB_TOKEN}:x-oauth-basic@github.com/equinixmetal".insteadOf "https://github.com/equinixmetal" - -exec "$@"