-
Notifications
You must be signed in to change notification settings - Fork 150
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* attempt to add cassandra Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * cassandra fixes Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * testing with new chanegs Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * using cassandra -f Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * adding workdir Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * fixes in tests Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * removes bash Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * adds k8s manifest and tests Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * terraform fmts Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * fixes template file Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * uses kubectl manifest Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * uses stateful_set resource and makes k8s provider to root main tf Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * testing with k8s provider in tests/main.tf Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * refactors namespace and services Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * removes readiness probe Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> * minor refactors Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev> --------- Signed-off-by: Mritunjay <mritunjay.sharma@chainguard.dev>
- Loading branch information
1 parent
bcfcc4e
commit 4128e35
Showing
7 changed files
with
324 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<!--monopod:start--> | ||
# cassandra | ||
| | | | ||
| - | - | | ||
| **Status** | stable | | ||
| **OCI Reference** | `cgr.dev/chainguard/cassandra` | | ||
|
||
|
||
* [View Image in Chainguard Academy](https://edu.chainguard.dev/chainguard/chainguard-images/reference/cassandra/overview/) | ||
* [View Image Catalog](https://console.enforce.dev/images/catalog) for a full list of available tags. | ||
*[Contact Chainguard](https://www.chainguard.dev/chainguard-images) for enterprise support, SLAs, and access to older tags.* | ||
|
||
--- | ||
<!--monopod:end--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
contents: | ||
packages: | ||
- cassandra | ||
- python3 | ||
- busybox | ||
- cassandra-compat | ||
- bash | ||
accounts: | ||
groups: | ||
- groupname: cassandra | ||
gid: 999 | ||
users: | ||
- username: cassandra | ||
uid: 999 | ||
run-as: 999 | ||
|
||
work-dir: / | ||
|
||
entrypoint: | ||
command: cassandra -f | ||
environment: | ||
LANG: en_US.UTF-8 | ||
CASSANDRA_HOME: /opt/cassandra | ||
PATH: /usr/sbin:/sbin:/usr/bin:/bin:/opt/cassandra/bin/ | ||
|
||
paths: | ||
- path: /var/lib/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
- path: /opt/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
- path: /var/lib/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
- path: /var/log/cassandra | ||
type: directory | ||
permissions: 0o777 | ||
uid: 999 | ||
gid: 999 | ||
recursive: true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
versions: | ||
- apko: | ||
config: configs/latest.apko.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
terraform { | ||
required_providers { | ||
apko = { source = "chainguard-dev/apko" } | ||
} | ||
} | ||
|
||
variable "target_repository" { | ||
description = "The docker repo into which the image and attestations should be published." | ||
} | ||
|
||
module "latest" { | ||
source = "../../tflib/publisher" | ||
|
||
name = basename(path.module) | ||
|
||
target_repository = var.target_repository | ||
config = file("${path.module}/configs/latest.apko.yaml") | ||
} | ||
|
||
module "dev" { source = "../../tflib/dev-subvariant" } | ||
|
||
module "latest-dev" { | ||
source = "../../tflib/publisher" | ||
|
||
name = basename(path.module) | ||
|
||
target_repository = var.target_repository | ||
# Make the dev variant an explicit extension of the | ||
# locked original. | ||
config = jsonencode(module.latest.config) | ||
extra_packages = module.dev.extra_packages | ||
} | ||
|
||
module "version-tags" { | ||
source = "../../tflib/version-tags" | ||
package = "cassandra" | ||
config = module.latest.config | ||
} | ||
|
||
module "test-latest" { | ||
source = "./tests" | ||
digest = module.latest.image_ref | ||
} | ||
|
||
module "tagger" { | ||
source = "../../tflib/tagger" | ||
|
||
depends_on = [module.test-latest] | ||
|
||
tags = merge( | ||
{ for t in toset(concat(["latest"], module.version-tags.tag_list)) : t => module.latest.image_ref }, | ||
{ for t in toset(concat(["latest"], module.version-tags.tag_list)) : "${t}-dev" => module.latest-dev.image_ref }, | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
terraform { | ||
required_providers { | ||
oci = { source = "chainguard-dev/oci" } | ||
kubernetes = { | ||
source = "hashicorp/kubernetes" | ||
version = "~> 2.11.0" | ||
} | ||
} | ||
} | ||
|
||
variable "digest" { | ||
description = "The image digest to run tests over." | ||
} | ||
|
||
data "oci_string" "ref" { input = var.digest } | ||
|
||
resource "kubernetes_namespace" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
} | ||
} | ||
|
||
resource "kubernetes_service" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
namespace = "cassandra" | ||
|
||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
port { | ||
port = 9042 | ||
} | ||
|
||
selector = { | ||
app = "cassandra" | ||
} | ||
|
||
cluster_ip = "None" | ||
} | ||
} | ||
|
||
resource "kubernetes_stateful_set" "cassandra" { | ||
metadata { | ||
name = "cassandra" | ||
namespace = kubernetes_namespace.cassandra.metadata[0].name | ||
|
||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
replicas = 1 | ||
|
||
selector { | ||
match_labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
template { | ||
metadata { | ||
labels = { | ||
app = "cassandra" | ||
} | ||
} | ||
|
||
spec { | ||
container { | ||
name = "cassandra" | ||
image = "${data.oci_string.ref.registry_repo}:${data.oci_string.ref.pseudo_tag}" | ||
|
||
port { | ||
name = "intra-node" | ||
container_port = 7000 | ||
} | ||
|
||
port { | ||
name = "tls-intra-node" | ||
container_port = 7001 | ||
} | ||
|
||
port { | ||
name = "jmx" | ||
container_port = 7199 | ||
} | ||
|
||
port { | ||
name = "cql" | ||
container_port = 9042 | ||
} | ||
|
||
env { | ||
name = "MAX_HEAP_SIZE" | ||
value = "512M" | ||
} | ||
|
||
env { | ||
name = "HEAP_NEWSIZE" | ||
value = "100M" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_SEEDS" | ||
value = "cassandra-0.cassandra.default.svc.cluster.local" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_CLUSTER_NAME" | ||
value = "K8Demo" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_DC" | ||
value = "DC1-K8Demo" | ||
} | ||
|
||
env { | ||
name = "CASSANDRA_RACK" | ||
value = "Rack1-K8Demo" | ||
} | ||
|
||
env { | ||
name = "POD_IP" | ||
|
||
value_from { | ||
field_ref { | ||
field_path = "status.podIP" | ||
} | ||
} | ||
} | ||
|
||
resources { | ||
limits = { | ||
cpu = "500m" | ||
|
||
memory = "1Gi" | ||
} | ||
|
||
requests = { | ||
cpu = "500m" | ||
|
||
memory = "1Gi" | ||
} | ||
} | ||
|
||
volume_mount { | ||
name = "cassandra-data" | ||
mount_path = "/cassandra_data" | ||
} | ||
|
||
lifecycle { | ||
pre_stop { | ||
exec { | ||
command = ["/bin/sh", "-c", "nodetool drain"] | ||
} | ||
} | ||
} | ||
|
||
image_pull_policy = "Always" | ||
|
||
security_context { | ||
capabilities { | ||
add = ["IPC_LOCK"] | ||
} | ||
} | ||
} | ||
|
||
termination_grace_period_seconds = 1800 | ||
} | ||
} | ||
|
||
volume_claim_template { | ||
metadata { | ||
name = "cassandra-data" | ||
} | ||
|
||
spec { | ||
access_modes = ["ReadWriteOnce"] | ||
|
||
resources { | ||
requests = { | ||
storage = "1Gi" | ||
} | ||
} | ||
|
||
storage_class_name = "standard" | ||
} | ||
} | ||
|
||
service_name = kubernetes_service.cassandra.metadata[0].name | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters