Skip to content

Commit

Permalink
fix: updated dependencies (#35)
Browse files Browse the repository at this point in the history
  • Loading branch information
karl-cardenas-coding authored Feb 1, 2024
1 parent 0557096 commit 606c9d6
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 114 deletions.
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 .
```

0 comments on commit 606c9d6

Please sign in to comment.