Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: updated dependencies #35

Merged
merged 1 commit into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
132 changes: 64 additions & 68 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,96 +2,92 @@ name: Release to Production

on:
push:
branches: [ main ]
branches: [main]

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PALETTE_VERSION: 4.0.2
PALETTE_CLI_VERSION: 4.0.1
PALETTE_EDGE_VERSION: 3.4.3
PALETTE_CLI_VERSION: 4.2.2
PALETTE_EDGE_VERSION: 4.2.3
PACKER_VERSION: 1.9.4
ORAS_VERSION: 1.0.0
TERRAFORM_VERSION: 1.6.5
TERRAFORM_VERSION: 1.7.0
PALETTE_REGISTRY_CLI_VERSION: 4.2.0


jobs:
jobs:
docker:
name: "Release Docker image"
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get-version.outputs.version }}
steps:
- name: Setup nodeJs
uses: actions/[email protected]
with:
node-version: "18"

- name: Check out code into the Go module directory
uses: actions/checkout@v4

- name: Setup nodeJs
uses: actions/[email protected]
with:
node-version: '18'

- name: Check out code into the Go module directory
uses: actions/checkout@v4

-
name: "Get dependencies"
id: dependencies
run: |
- name: "Get dependencies"
id: dependencies
run: |
npm ci
npx semantic-release --dry-run
cat VERSION.env
source VERSION.env
echo "version=$VERSION" >> $GITHUB_OUTPUT

- name: Set up QEMU
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/setup-qemu-action@v2

- name: "Set up Docker Buildx"
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/setup-buildx-action@v2

- name: Set up QEMU
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/setup-qemu-action@v2

- name: Login to GHCR
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}


- name: Build and push
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/build-push-action@v2
id: build-and-push
with:
context: .
build-args: |
PALETTE_VERSION=${{env.PALETTE_VERSION}}
PALETTE_CLI_VERSION=${{env.PALETTE_CLI_VERSION}}
PALETTE_EDGE_VERSION=${{env.PALETTE_EDGE_VERSION}}
PACKER_VERSION=${{env.PACKER_VERSION}}
ORAS_VERSION=${{env.ORAS_VERSION}}
TERRAFORM_VERSION=${{env.TERRAFORM_VERSION}}
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/${{ github.repository }}:${{steps.dependencies.outputs.VERSION}}

- uses: sigstore/[email protected]

- name: Image Signing
run: |
cosign sign --yes \
-a "repo=${{ github.repository }}" \
-a "workflow=${{ github.workflow }}" \
-a "ref=${{ github.sha }}" \
-a "owner=Spectro Cloud" \
--key env://COSIGN_PRIVATE_KEY --recursive "${TAGS}@${DIGEST}"
env:
TAGS: ghcr.io/${{ github.repository }}:${{steps.dependencies.outputs.VERSION}}
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
DIGEST: ${{ steps.build-and-push.outputs.digest }}
- name: "Set up Docker Buildx"
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/setup-buildx-action@v2

- name: Login to GHCR
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
if: ${{ steps.dependencies.outputs.VERSION != ''}}
uses: docker/build-push-action@v2
id: build-and-push
with:
context: .
build-args: |
PALETTE_VERSION=${{env.PALETTE_VERSION}}
PALETTE_CLI_VERSION=${{env.PALETTE_CLI_VERSION}}
PALETTE_EDGE_VERSION=${{env.PALETTE_EDGE_VERSION}}
PACKER_VERSION=${{env.PACKER_VERSION}}
ORAS_VERSION=${{env.ORAS_VERSION}}
TERRAFORM_VERSION=${{env.TERRAFORM_VERSION}}
PALETTE_REGISTRY_CLI_VERSION=${{env.PALETTE_REGISTRY_CLI_VERSION}}
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/${{ github.repository }}:${{steps.dependencies.outputs.VERSION}}

- uses: sigstore/[email protected]

- name: Image Signing
if: ${{ steps.dependencies.outputs.VERSION != ''}}
run: |
cosign sign --yes \
-a "repo=${{ github.repository }}" \
-a "workflow=${{ github.workflow }}" \
-a "ref=${{ github.sha }}" \
-a "owner=Spectro Cloud" \
--key env://COSIGN_PRIVATE_KEY --recursive "${TAGS}@${DIGEST}"
env:
TAGS: ghcr.io/${{ github.repository }}:${{steps.dependencies.outputs.VERSION}}
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
DIGEST: ${{ steps.build-and-push.outputs.digest }}

release:
name: "Release"
Expand All @@ -113,4 +109,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
npx semantic-release
npx semantic-release
20 changes: 8 additions & 12 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,17 @@ on:
env:
GITHUB_TOKEN: ${{ github.token }}
PALETTE_VERSION: 4.0.2
PALETTE_CLI_VERSION: 4.0.1
PALETTE_EDGE_VERSION: 3.4.3
PALETTE_CLI_VERSION: 4.2.2
PALETTE_EDGE_VERSION: 4.2.3
PACKER_VERSION: 1.9.4
ORAS_VERSION: 1.0.0
TERRAFORM_VERSION: 1.6.5
TERRAFORM_VERSION: 1.7.0
PALETTE_REGISTRY_CLI_VERSION: 4.2.0

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



jobs:
run-ci:
runs-on: ubuntu-latest
Expand All @@ -27,9 +26,9 @@ jobs:
shell: bash
if: ${{ !github.event.pull_request.draft }}
steps:
# If the condition above is not met, aka, the PR is not in draft status, then this step is skipped.
# Because this step is part of the critical path, omission of this step will result in remaining CI steps not gettinge executed.
# As of 8/8/2022 there is now way to enforce this beahvior in GitHub Actions CI.
# If the condition above is not met, aka, the PR is not in draft status, then this step is skipped.
# Because this step is part of the critical path, omission of this step will result in remaining CI steps not gettinge executed.
# As of 8/8/2022 there is now way to enforce this beahvior in GitHub Actions CI.
- run: exit 0

docker:
Expand All @@ -50,14 +49,12 @@ jobs:
- name: Install dependencies
run: npm ci


- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2


- name: Login to GHCR
uses: docker/login-action@v1
with:
Expand All @@ -79,5 +76,4 @@ jobs:
PACKER_VERSION=${{env.PACKER_VERSION}}
ORAS_VERSION=${{env.ORAS_VERSION}}
TERRAFORM_VERSION=${{env.TERRAFORM_VERSION}}


PALETTE_REGISTRY_CLI_VERSION=${{env.PALETTE_REGISTRY_CLI_VERSION}}
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ ADD static/defaults/registry-config.yml etc/spectro/config.yml

ARG PALETTE_CLI_VERSION
ARG PALETTE_EDGE_VERSION
ARG PALETTE_REGISTRY_CLI_VERSION
ARG PACKER_VERSION
ARG ORAS_VERSION
ARG TERRAFORM_VERSION
Expand All @@ -36,7 +37,7 @@ RUN adduser -H -u 1002 -D appuser appuser && \
apk update && \
apk add --no-cache bash curl git openssl jq bind-tools wget ca-certificates nano aws-cli xorriso govc podman

RUN wget https://software.spectrocloud.com/spectro-registry/cli/v$PALETTE_CLI_VERSION/linux/spectro && \
RUN wget https://spectro-cli.s3.amazonaws.com/v$PALETTE_REGISTRY_CLI_VERSION/linux/spectro && \
mv spectro /usr/local/bin/spectro && \
chmod +x /usr/local/bin/spectro && \
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz && \
Expand Down
62 changes: 29 additions & 33 deletions docs/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,37 +12,35 @@ You can start the container using the following command.
docker run -p 5000:5000 --rm -it ghcr.io/spectrocloud/tutorials:1.0.12 bash
```


> The Docker file is build for a Linux environment. You can use this on a Mac and Windows. Windows users will require the usage of WSL2.


The Docker image includes the following tools.

| Tool | Description |
|---------------|----------------------------------------------------------------|
| `terraform` | Infrastructure as code tool |
| `palette cli` | The offical Palette CLI |
| `spectro cli` | Spectro Cloud command-line interface |
| `palette edge cli`| The Edge Installer CLU |
| `spectro registry server` | Spectro Cloud Registry Server |
| `ngrok` | Secure tunnels to localhost |
| `kubectl` | Kubernetes command-line tool |
| `bash` | Unix shell |
| `curl` | Command line tool and library for transferring data with URLs |
| `git` | Distributed version control system |
| `openssl` | Toolkit for the Transport Layer Security (TLS) protocol |
| `jq` | Lightweight and flexible command-line JSON processor |
| `bind-tools` | Collection of DNS utilities, including dig, nslookup, and host |
| `wget` | Free utility for non-interactive download of files from the Web|
| `nano` | A text editior alternative to Vi. |
| `ca-certificates` | Common set of CA certificates |
| `canvos` | A utility for creating Edge artifacts |
| `nano` | A text editior for Unix-like computing systems or operating environments using a command line interface|
| `packer` | Hashicorp Image Builder for building Edge Native images |
| `GOVC` | Tool for interracting with VMware Vsphere via API |
| `aws-cli` | AWS command-line interface |
| `oras` | Tool for pushing and pulling OCI artifacts to and from OCI registries|
| `podman` | Tool for building and deploying OCI images |
| Tool | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------- |
| `terraform` | Infrastructure as code tool |
| `palette cli` | The offical Palette CLI |
| `spectro cli` | Spectro Cloud command-line interface |
| `palette edge cli` | The Edge Installer CLU |
| `spectro registry server` | Spectro Cloud Registry Server |
| `ngrok` | Secure tunnels to localhost |
| `kubectl` | Kubernetes command-line tool |
| `bash` | Unix shell |
| `curl` | Command line tool and library for transferring data with URLs |
| `git` | Distributed version control system |
| `openssl` | Toolkit for the Transport Layer Security (TLS) protocol |
| `jq` | Lightweight and flexible command-line JSON processor |
| `bind-tools` | Collection of DNS utilities, including dig, nslookup, and host |
| `wget` | Free utility for non-interactive download of files from the Web |
| `nano` | A text editior alternative to Vi. |
| `ca-certificates` | Common set of CA certificates |
| `canvos` | A utility for creating Edge artifacts |
| `nano` | A text editior for Unix-like computing systems or operating environments using a command line interface |
| `packer` | Hashicorp Image Builder for building Edge Native images |
| `GOVC` | Tool for interracting with VMware Vsphere via API |
| `aws-cli` | AWS command-line interface |
| `oras` | Tool for pushing and pulling OCI artifacts to and from OCI registries |
| `podman` | Tool for building and deploying OCI images |

### Spectro Cloud Pack Registry Server

Expand All @@ -52,19 +50,17 @@ The Spectro Cloud registry server has the following credentials:

- `password`: `admin`

You can start the registry server by issuing the following command.
You can start the registry server by issuing the following command.
Keep in mind that the registry server is started in HTTP mode. For additional guidance, review the [Registry Server documentation](https://docs.spectrocloud.com/registries-and-packs/adding-a-custom-registry).

```shell
registry serve /etc/spectro/config.yml > /var/log/registry.log 2>&1 &
```


# Local Builds

If you are wanting to build the docker image locally you must provide the the build arguments for `PALETTE_VERSION`, `PALETTE_CLI_VERSION`, `PALETTE_EDGE_VERSION`, `PACKER_VERSION`, `ORAS_VERSION` and `TERRAFORM_VERSION`. Use the following command to build a local image. Replace the versions as needed.

If you are wanting to build the docker image locally you must provide the the build arguments for `PALETTE_VERSION`, `PALETTE_CLI_VERSION`, `PALETTE_EDGE_VERSION`, `PACKER_VERSION`, `ORAS_VERSION` and `TERRAFORM_VERSION`. Use the following command to build a local image. Replace the versions as needed.

```shell
docker build --build-arg PALETTE_VERSION=4.0.2 --build-arg PALETTE_CLI_VERSION=4.0.1 --build-arg PALETTE_EDGE_VERSION=3.4.3 --build-arg PACKER_VERSION=1.9.4 --build-arg ORAS_VERSION=1.0.0 --build-arg TERRAFORM_VERSION=1.6.5 -t tutorials .
```
docker build --build-arg PALETTE_VERSION=4.0.2 --build-arg PALETTE_CLI_VERSION=4.2.2 --build-arg PALETTE_EDGE_VERSION=4.2.3 --build-arg PACKER_VERSION=1.9.4 --build-arg ORAS_VERSION=1.0.0 --build-arg PALETTE_REGISTRY_CLI_VERSION=4.2.0 --build-arg TERRAFORM_VERSION=1.7.0 -t tutorials .
```
Loading